Move CVS repository into Mercurial filters-cvs-import

Mon, 11 Apr 2011 10:08:48 +1000

author
Dean Jackson <dino@apple.com>
date
Mon, 11 Apr 2011 10:08:48 +1000
changeset 8
916184271e55
parent 7
7a21f97828b9
child 9
f04216487f3b

Move CVS repository into Mercurial

filters/master/Makefile file | annotate | diff | comparison | revisions
filters/master/SVGFilter.html file | annotate | diff | comparison | revisions
filters/master/SVGFilterPrimer.html file | annotate | diff | comparison | revisions
filters/master/SVGFilterReqs.html file | annotate | diff | comparison | revisions
filters/master/definitions-primer.xml file | annotate | diff | comparison | revisions
filters/master/definitions.xml file | annotate | diff | comparison | revisions
filters/master/examples/Forque.svg file | annotate | diff | comparison | revisions
filters/master/examples/enable-background-01.png file | annotate | diff | comparison | revisions
filters/master/examples/enable-background-01.svg file | annotate | diff | comparison | revisions
filters/master/examples/feBlend.png file | annotate | diff | comparison | revisions
filters/master/examples/feBlend.svg file | annotate | diff | comparison | revisions
filters/master/examples/feColorMatrix.png file | annotate | diff | comparison | revisions
filters/master/examples/feColorMatrix.svg file | annotate | diff | comparison | revisions
filters/master/examples/feComponentTransfer.png file | annotate | diff | comparison | revisions
filters/master/examples/feComponentTransfer.svg file | annotate | diff | comparison | revisions
filters/master/examples/feComposite.png file | annotate | diff | comparison | revisions
filters/master/examples/feComposite.svg file | annotate | diff | comparison | revisions
filters/master/examples/feDropShadow.svg file | annotate | diff | comparison | revisions
filters/master/examples/feGaussianBlur-motion-00.png file | annotate | diff | comparison | revisions
filters/master/examples/feGaussianBlur-motion-00.svg file | annotate | diff | comparison | revisions
filters/master/examples/feGaussianBlur-stdDeviation-00.png file | annotate | diff | comparison | revisions
filters/master/examples/feGaussianBlur-stdDeviation-00.svg file | annotate | diff | comparison | revisions
filters/master/examples/feMorphology.png file | annotate | diff | comparison | revisions
filters/master/examples/feMorphology.svg file | annotate | diff | comparison | revisions
filters/master/examples/feTurbulence.png file | annotate | diff | comparison | revisions
filters/master/examples/feTurbulence.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters00.png file | annotate | diff | comparison | revisions
filters/master/examples/filters00.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-0.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-0.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-1.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-1.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-2.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-2.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-3.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-3.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-4.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-4.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-5.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-5.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01-6.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01-6.svg file | annotate | diff | comparison | revisions
filters/master/examples/filters01.png file | annotate | diff | comparison | revisions
filters/master/examples/filters01.svg file | annotate | diff | comparison | revisions
filters/master/examples/filtersubregion00.png file | annotate | diff | comparison | revisions
filters/master/examples/filtersubregion00.svg file | annotate | diff | comparison | revisions
filters/master/examples/forest-small.jpg file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix00.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix01.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix02.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix03.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix04.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feColorMatrix05.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer00.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer01.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer02.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer03.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer04.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer05.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComponentTransfer06.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feComposite00.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix00.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix01.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix02.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix03.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix04.mml file | annotate | diff | comparison | revisions
filters/master/mathml/feConvolveMatrix05.mml file | annotate | diff | comparison | revisions
filters/master/publish-primer.xml file | annotate | diff | comparison | revisions
filters/master/publish-reqs.xml file | annotate | diff | comparison | revisions
filters/master/publish.xml file | annotate | diff | comparison | revisions
filters/master/rng/feBlend file | annotate | diff | comparison | revisions
filters/master/rng/feColorMatrix file | annotate | diff | comparison | revisions
filters/master/rng/feComponentTransfer file | annotate | diff | comparison | revisions
filters/master/rng/feComposite file | annotate | diff | comparison | revisions
filters/master/rng/feConvolveMatrix file | annotate | diff | comparison | revisions
filters/master/rng/feDiffuseLighting file | annotate | diff | comparison | revisions
filters/master/rng/feDisplacementMap file | annotate | diff | comparison | revisions
filters/master/rng/feDistantLight file | annotate | diff | comparison | revisions
filters/master/rng/feDropShadow file | annotate | diff | comparison | revisions
filters/master/rng/feFlood file | annotate | diff | comparison | revisions
filters/master/rng/feGaussianBlur file | annotate | diff | comparison | revisions
filters/master/rng/feImage file | annotate | diff | comparison | revisions
filters/master/rng/feMerge file | annotate | diff | comparison | revisions
filters/master/rng/feMorphology file | annotate | diff | comparison | revisions
filters/master/rng/feOffset file | annotate | diff | comparison | revisions
filters/master/rng/fePointLight file | annotate | diff | comparison | revisions
filters/master/rng/feSpecularLighting file | annotate | diff | comparison | revisions
filters/master/rng/feSpotLight file | annotate | diff | comparison | revisions
filters/master/rng/feTile file | annotate | diff | comparison | revisions
filters/master/rng/feTurbulence file | annotate | diff | comparison | revisions
filters/master/rng/feUnsharpMask file | annotate | diff | comparison | revisions
filters/master/rng/filter file | annotate | diff | comparison | revisions
filters/master/rng/filter-primitive-attr file | annotate | diff | comparison | revisions
filters/master/style/W3C-WD.css file | annotate | diff | comparison | revisions
filters/master/style/expanders.js file | annotate | diff | comparison | revisions
filters/master/style/svg-style-extra.css file | annotate | diff | comparison | revisions
filters/master/style/svg-style.css file | annotate | diff | comparison | revisions
filters/master/style/svgspec.css file | annotate | diff | comparison | revisions
filters/master/svgfilters.idd file | annotate | diff | comparison | revisions
filters/master/svgfilters.idl file | annotate | diff | comparison | revisions
filters/master/xhtml1-transitional+edit.dtd file | annotate | diff | comparison | revisions
filters/publish/SVGFilter.html file | annotate | diff | comparison | revisions
filters/publish/SVGFilterPrimer.html file | annotate | diff | comparison | revisions
filters/publish/SVGFilterReqs.html file | annotate | diff | comparison | revisions
filters/publish/examples/Forque.svg file | annotate | diff | comparison | revisions
filters/publish/examples/enable-background-01.png file | annotate | diff | comparison | revisions
filters/publish/examples/enable-background-01.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feBlend.png file | annotate | diff | comparison | revisions
filters/publish/examples/feBlend.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feColorMatrix.png file | annotate | diff | comparison | revisions
filters/publish/examples/feColorMatrix.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feComponentTransfer.png file | annotate | diff | comparison | revisions
filters/publish/examples/feComponentTransfer.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feComposite.png file | annotate | diff | comparison | revisions
filters/publish/examples/feComposite.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feDropShadow.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feGaussianBlur-stdDeviation-00.png file | annotate | diff | comparison | revisions
filters/publish/examples/feGaussianBlur-stdDeviation-00.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feMorphology.png file | annotate | diff | comparison | revisions
filters/publish/examples/feMorphology.svg file | annotate | diff | comparison | revisions
filters/publish/examples/feTurbulence.png file | annotate | diff | comparison | revisions
filters/publish/examples/feTurbulence.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters00.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters00.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-0.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-0.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-1.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-1.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-2.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-2.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-3.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-3.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-4.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-4.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-5.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-5.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-6.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01-6.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filters01.png file | annotate | diff | comparison | revisions
filters/publish/examples/filters01.svg file | annotate | diff | comparison | revisions
filters/publish/examples/filtersubregion00.png file | annotate | diff | comparison | revisions
filters/publish/examples/filtersubregion00.svg file | annotate | diff | comparison | revisions
filters/publish/rng/feBlend file | annotate | diff | comparison | revisions
filters/publish/rng/feColorMatrix file | annotate | diff | comparison | revisions
filters/publish/rng/feComponentTransfer file | annotate | diff | comparison | revisions
filters/publish/rng/feComposite file | annotate | diff | comparison | revisions
filters/publish/rng/feConvolveMatrix file | annotate | diff | comparison | revisions
filters/publish/rng/feDiffuseLighting file | annotate | diff | comparison | revisions
filters/publish/rng/feDisplacementMap file | annotate | diff | comparison | revisions
filters/publish/rng/feDistantLight file | annotate | diff | comparison | revisions
filters/publish/rng/feDropShadow file | annotate | diff | comparison | revisions
filters/publish/rng/feFlood file | annotate | diff | comparison | revisions
filters/publish/rng/feGaussianBlur file | annotate | diff | comparison | revisions
filters/publish/rng/feImage file | annotate | diff | comparison | revisions
filters/publish/rng/feMerge file | annotate | diff | comparison | revisions
filters/publish/rng/feMorphology file | annotate | diff | comparison | revisions
filters/publish/rng/feOffset file | annotate | diff | comparison | revisions
filters/publish/rng/fePointLight file | annotate | diff | comparison | revisions
filters/publish/rng/feSpecularLighting file | annotate | diff | comparison | revisions
filters/publish/rng/feSpotLight file | annotate | diff | comparison | revisions
filters/publish/rng/feTile file | annotate | diff | comparison | revisions
filters/publish/rng/feTurbulence file | annotate | diff | comparison | revisions
filters/publish/rng/feUnsharpMask file | annotate | diff | comparison | revisions
filters/publish/rng/filter file | annotate | diff | comparison | revisions
filters/publish/rng/filter-primitive-attr file | annotate | diff | comparison | revisions
filters/publish/style/W3C-WD.css file | annotate | diff | comparison | revisions
filters/publish/style/expanders.js file | annotate | diff | comparison | revisions
filters/publish/style/svg-style-extra.css file | annotate | diff | comparison | revisions
filters/publish/style/svg-style.css file | annotate | diff | comparison | revisions
filters/publish/style/svgspec.css file | annotate | diff | comparison | revisions
filters/test/resources/SVGFreeSans.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-gauss-201.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-morph-201.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-region-201.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-region-202.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-region-203.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-turb-201.svg file | annotate | diff | comparison | revisions
filters/test/svg/filters-turb-202.svg file | annotate | diff | comparison | revisions
master/Makefile file | annotate | diff | comparison | revisions
master/SVGFilter.html file | annotate | diff | comparison | revisions
master/SVGFilterPrimer.html file | annotate | diff | comparison | revisions
master/SVGFilterReqs.html file | annotate | diff | comparison | revisions
master/definitions-primer.xml file | annotate | diff | comparison | revisions
master/definitions.xml file | annotate | diff | comparison | revisions
master/examples/Forque.svg file | annotate | diff | comparison | revisions
master/examples/enable-background-01.png file | annotate | diff | comparison | revisions
master/examples/enable-background-01.svg file | annotate | diff | comparison | revisions
master/examples/feBlend.png file | annotate | diff | comparison | revisions
master/examples/feBlend.svg file | annotate | diff | comparison | revisions
master/examples/feColorMatrix.png file | annotate | diff | comparison | revisions
master/examples/feColorMatrix.svg file | annotate | diff | comparison | revisions
master/examples/feComponentTransfer.png file | annotate | diff | comparison | revisions
master/examples/feComponentTransfer.svg file | annotate | diff | comparison | revisions
master/examples/feComposite.png file | annotate | diff | comparison | revisions
master/examples/feComposite.svg file | annotate | diff | comparison | revisions
master/examples/feDropShadow.svg file | annotate | diff | comparison | revisions
master/examples/feGaussianBlur-motion-00.png file | annotate | diff | comparison | revisions
master/examples/feGaussianBlur-motion-00.svg file | annotate | diff | comparison | revisions
master/examples/feGaussianBlur-stdDeviation-00.png file | annotate | diff | comparison | revisions
master/examples/feGaussianBlur-stdDeviation-00.svg file | annotate | diff | comparison | revisions
master/examples/feMorphology.png file | annotate | diff | comparison | revisions
master/examples/feMorphology.svg file | annotate | diff | comparison | revisions
master/examples/feTurbulence.png file | annotate | diff | comparison | revisions
master/examples/feTurbulence.svg file | annotate | diff | comparison | revisions
master/examples/filters00.png file | annotate | diff | comparison | revisions
master/examples/filters00.svg file | annotate | diff | comparison | revisions
master/examples/filters01-0.png file | annotate | diff | comparison | revisions
master/examples/filters01-0.svg file | annotate | diff | comparison | revisions
master/examples/filters01-1.png file | annotate | diff | comparison | revisions
master/examples/filters01-1.svg file | annotate | diff | comparison | revisions
master/examples/filters01-2.png file | annotate | diff | comparison | revisions
master/examples/filters01-2.svg file | annotate | diff | comparison | revisions
master/examples/filters01-3.png file | annotate | diff | comparison | revisions
master/examples/filters01-3.svg file | annotate | diff | comparison | revisions
master/examples/filters01-4.png file | annotate | diff | comparison | revisions
master/examples/filters01-4.svg file | annotate | diff | comparison | revisions
master/examples/filters01-5.png file | annotate | diff | comparison | revisions
master/examples/filters01-5.svg file | annotate | diff | comparison | revisions
master/examples/filters01-6.png file | annotate | diff | comparison | revisions
master/examples/filters01-6.svg file | annotate | diff | comparison | revisions
master/examples/filters01.png file | annotate | diff | comparison | revisions
master/examples/filters01.svg file | annotate | diff | comparison | revisions
master/examples/filtersubregion00.png file | annotate | diff | comparison | revisions
master/examples/filtersubregion00.svg file | annotate | diff | comparison | revisions
master/examples/forest-small.jpg file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix00.mml file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix01.mml file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix02.mml file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix03.mml file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix04.mml file | annotate | diff | comparison | revisions
master/mathml/feColorMatrix05.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer00.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer01.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer02.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer03.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer04.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer05.mml file | annotate | diff | comparison | revisions
master/mathml/feComponentTransfer06.mml file | annotate | diff | comparison | revisions
master/mathml/feComposite00.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix00.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix01.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix02.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix03.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix04.mml file | annotate | diff | comparison | revisions
master/mathml/feConvolveMatrix05.mml file | annotate | diff | comparison | revisions
master/publish-primer.xml file | annotate | diff | comparison | revisions
master/publish-reqs.xml file | annotate | diff | comparison | revisions
master/publish.xml file | annotate | diff | comparison | revisions
master/rng/feBlend file | annotate | diff | comparison | revisions
master/rng/feColorMatrix file | annotate | diff | comparison | revisions
master/rng/feComponentTransfer file | annotate | diff | comparison | revisions
master/rng/feComposite file | annotate | diff | comparison | revisions
master/rng/feConvolveMatrix file | annotate | diff | comparison | revisions
master/rng/feDiffuseLighting file | annotate | diff | comparison | revisions
master/rng/feDisplacementMap file | annotate | diff | comparison | revisions
master/rng/feDistantLight file | annotate | diff | comparison | revisions
master/rng/feDropShadow file | annotate | diff | comparison | revisions
master/rng/feFlood file | annotate | diff | comparison | revisions
master/rng/feGaussianBlur file | annotate | diff | comparison | revisions
master/rng/feImage file | annotate | diff | comparison | revisions
master/rng/feMerge file | annotate | diff | comparison | revisions
master/rng/feMorphology file | annotate | diff | comparison | revisions
master/rng/feOffset file | annotate | diff | comparison | revisions
master/rng/fePointLight file | annotate | diff | comparison | revisions
master/rng/feSpecularLighting file | annotate | diff | comparison | revisions
master/rng/feSpotLight file | annotate | diff | comparison | revisions
master/rng/feTile file | annotate | diff | comparison | revisions
master/rng/feTurbulence file | annotate | diff | comparison | revisions
master/rng/feUnsharpMask file | annotate | diff | comparison | revisions
master/rng/filter file | annotate | diff | comparison | revisions
master/rng/filter-primitive-attr file | annotate | diff | comparison | revisions
master/style/W3C-WD.css file | annotate | diff | comparison | revisions
master/style/expanders.js file | annotate | diff | comparison | revisions
master/style/svg-style-extra.css file | annotate | diff | comparison | revisions
master/style/svg-style.css file | annotate | diff | comparison | revisions
master/style/svgspec.css file | annotate | diff | comparison | revisions
master/svgfilters.idd file | annotate | diff | comparison | revisions
master/svgfilters.idl file | annotate | diff | comparison | revisions
master/xhtml1-transitional+edit.dtd file | annotate | diff | comparison | revisions
publish/SVGFilter.html file | annotate | diff | comparison | revisions
publish/SVGFilterPrimer.html file | annotate | diff | comparison | revisions
publish/SVGFilterReqs.html file | annotate | diff | comparison | revisions
publish/examples/Forque.svg file | annotate | diff | comparison | revisions
publish/examples/enable-background-01.png file | annotate | diff | comparison | revisions
publish/examples/enable-background-01.svg file | annotate | diff | comparison | revisions
publish/examples/feBlend.png file | annotate | diff | comparison | revisions
publish/examples/feBlend.svg file | annotate | diff | comparison | revisions
publish/examples/feColorMatrix.png file | annotate | diff | comparison | revisions
publish/examples/feColorMatrix.svg file | annotate | diff | comparison | revisions
publish/examples/feComponentTransfer.png file | annotate | diff | comparison | revisions
publish/examples/feComponentTransfer.svg file | annotate | diff | comparison | revisions
publish/examples/feComposite.png file | annotate | diff | comparison | revisions
publish/examples/feComposite.svg file | annotate | diff | comparison | revisions
publish/examples/feDropShadow.svg file | annotate | diff | comparison | revisions
publish/examples/feGaussianBlur-stdDeviation-00.png file | annotate | diff | comparison | revisions
publish/examples/feGaussianBlur-stdDeviation-00.svg file | annotate | diff | comparison | revisions
publish/examples/feMorphology.png file | annotate | diff | comparison | revisions
publish/examples/feMorphology.svg file | annotate | diff | comparison | revisions
publish/examples/feTurbulence.png file | annotate | diff | comparison | revisions
publish/examples/feTurbulence.svg file | annotate | diff | comparison | revisions
publish/examples/filters00.png file | annotate | diff | comparison | revisions
publish/examples/filters00.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-0.png file | annotate | diff | comparison | revisions
publish/examples/filters01-0.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-1.png file | annotate | diff | comparison | revisions
publish/examples/filters01-1.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-2.png file | annotate | diff | comparison | revisions
publish/examples/filters01-2.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-3.png file | annotate | diff | comparison | revisions
publish/examples/filters01-3.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-4.png file | annotate | diff | comparison | revisions
publish/examples/filters01-4.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-5.png file | annotate | diff | comparison | revisions
publish/examples/filters01-5.svg file | annotate | diff | comparison | revisions
publish/examples/filters01-6.png file | annotate | diff | comparison | revisions
publish/examples/filters01-6.svg file | annotate | diff | comparison | revisions
publish/examples/filters01.png file | annotate | diff | comparison | revisions
publish/examples/filters01.svg file | annotate | diff | comparison | revisions
publish/examples/filtersubregion00.png file | annotate | diff | comparison | revisions
publish/examples/filtersubregion00.svg file | annotate | diff | comparison | revisions
publish/rng/feBlend file | annotate | diff | comparison | revisions
publish/rng/feColorMatrix file | annotate | diff | comparison | revisions
publish/rng/feComponentTransfer file | annotate | diff | comparison | revisions
publish/rng/feComposite file | annotate | diff | comparison | revisions
publish/rng/feConvolveMatrix file | annotate | diff | comparison | revisions
publish/rng/feDiffuseLighting file | annotate | diff | comparison | revisions
publish/rng/feDisplacementMap file | annotate | diff | comparison | revisions
publish/rng/feDistantLight file | annotate | diff | comparison | revisions
publish/rng/feDropShadow file | annotate | diff | comparison | revisions
publish/rng/feFlood file | annotate | diff | comparison | revisions
publish/rng/feGaussianBlur file | annotate | diff | comparison | revisions
publish/rng/feImage file | annotate | diff | comparison | revisions
publish/rng/feMerge file | annotate | diff | comparison | revisions
publish/rng/feMorphology file | annotate | diff | comparison | revisions
publish/rng/feOffset file | annotate | diff | comparison | revisions
publish/rng/fePointLight file | annotate | diff | comparison | revisions
publish/rng/feSpecularLighting file | annotate | diff | comparison | revisions
publish/rng/feSpotLight file | annotate | diff | comparison | revisions
publish/rng/feTile file | annotate | diff | comparison | revisions
publish/rng/feTurbulence file | annotate | diff | comparison | revisions
publish/rng/feUnsharpMask file | annotate | diff | comparison | revisions
publish/rng/filter file | annotate | diff | comparison | revisions
publish/rng/filter-primitive-attr file | annotate | diff | comparison | revisions
publish/style/W3C-WD.css file | annotate | diff | comparison | revisions
publish/style/expanders.js file | annotate | diff | comparison | revisions
publish/style/svg-style-extra.css file | annotate | diff | comparison | revisions
publish/style/svg-style.css file | annotate | diff | comparison | revisions
publish/style/svgspec.css file | annotate | diff | comparison | revisions
test/resources/SVGFreeSans.svg file | annotate | diff | comparison | revisions
test/svg/filters-gauss-201.svg file | annotate | diff | comparison | revisions
test/svg/filters-morph-201.svg file | annotate | diff | comparison | revisions
test/svg/filters-region-201.svg file | annotate | diff | comparison | revisions
test/svg/filters-region-202.svg file | annotate | diff | comparison | revisions
test/svg/filters-region-203.svg file | annotate | diff | comparison | revisions
test/svg/filters-turb-201.svg file | annotate | diff | comparison | revisions
test/svg/filters-turb-202.svg file | annotate | diff | comparison | revisions
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/filters/master/Makefile	Mon Apr 11 10:08:48 2011 +1000
     1.3 @@ -0,0 +1,13 @@
     1.4 +# Makefile for SVG Filters.
     1.5 +
     1.6 +TOOLS=../../../../SVG/tools
     1.7 +
     1.8 +# include $(TOOLS)/common.mk
     1.9 +
    1.10 +all : svgfilters.idlx SVGFilterReqs.html SVGFilterPrimer.html SVGFilter.html definitions.xml definitions-primer.xml publish-reqs.xml publish-primer.xml publish.xml $(TOOLS)/publish.xsl
    1.11 +	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-reqs.xml $(TOOLS)/publish.xsl
    1.12 +	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-primer.xml $(TOOLS)/publish.xsl
    1.13 +	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish.xml $(TOOLS)/publish.xsl
    1.14 +
    1.15 +svgfilters.idlx : svgfilters.idl
    1.16 +	java -classpath $(TOOLS)/idlparser/idlparser.jar au.id.mcc.idlparser.IDLToXML svgfilters.idl > svgfilters.idlx
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/filters/master/SVGFilter.html	Mon Apr 11 10:08:48 2011 +1000
     2.3 @@ -0,0 +1,3774 @@
     2.4 +<?xml version="1.0" encoding="UTF-8"?>
     2.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
     2.6 +<html xmlns="http://www.w3.org/1999/xhtml"
     2.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
     2.8 +<head>
     2.9 +  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    2.10 +  <title>Filter Effects 1.0: Language</title>
    2.11 +  <link rel="stylesheet" type="text/css" href="style/svg-style.css" />
    2.12 +  <link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/>
    2.13 +  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
    2.14 +</head>
    2.15 +
    2.16 +<body>
    2.17 +
    2.18 +<div class="head">
    2.19 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
    2.20 +  <h1 id="pagetitle">Filter Effects 1.0: Language</h1>
    2.21 +  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
    2.22 +  <dl>
    2.23 +    <dt>This version:</dt>
    2.24 +    <dd><edit:thisversion/></dd>
    2.25 +    <dt>Latest version:</dt>
    2.26 +    <dd><edit:latestversion/></dd>
    2.27 +    <dt>Previous version:</dt>
    2.28 +    <dd><edit:previousversion/></dd>
    2.29 +    <dt>Editors:</dt>
    2.30 +    <dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd>
    2.31 +    <dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd>
    2.32 +    <dt>Authors:</dt>
    2.33 +    <dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd>
    2.34 +  </dl>
    2.35 +  <edit:copyright/>
    2.36 +</div>
    2.37 +
    2.38 +<hr/>
    2.39 +
    2.40 +<h2 id="abstract" edit:toc="no">Abstract</h2>
    2.41 +
    2.42 +<p>
    2.43 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
    2.44 +</p>
    2.45 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
    2.46 +</p>
    2.47 +<p>
    2.48 +This document defines the markup used by SVG filters.
    2.49 +</p>
    2.50 +
    2.51 +<h2 id="status" edit:toc="no">Status of This Document</h2>
    2.52 +
    2.53 +<p><em>This section describes the status of this document at the time of its
    2.54 +publication. Other documents may supersede this document. The latest status
    2.55 +of this document series is maintained at the W3C. </em> </p>
    2.56 +
    2.57 +<p>This document is the first public working draft of this specification.
    2.58 +There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part
    2.59 +1: Primer</a> that lists the ways SVG filters may be used. </p>
    2.60 +
    2.61 +<p>This document has been produced by the <a
    2.62 +href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
    2.63 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
    2.64 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
    2.65 +</p>
    2.66 +
    2.67 +<p>We explicitly invite comments on this specification. Please send them to
    2.68 +<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a
    2.69 +href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>).
    2.70 +Acceptance of the archiving policy is requested automatically upon first post to the
    2.71 +list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with
    2.72 +the word subscribe in the subject line. </p>
    2.73 +
    2.74 +<p>The latest information regarding <a
    2.75 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
    2.76 +related to this document is available on the Web. As of this publication, the
    2.77 +SVG Working Group are not aware of any royalty-bearing patents they believe
    2.78 +to be essential to SVG.</p>
    2.79 +
    2.80 +<p>Publication of this document does not imply endorsement by the W3C
    2.81 +membership. A list of current W3C Recommendations and other technical
    2.82 +documents can be found at <a
    2.83 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
    2.84 +be updated, replaced, or obsoleted by other documents at any time. It is
    2.85 +inappropriate to cite a W3C Working Draft as anything other than a <em>work
    2.86 +in progress</em>." </p>
    2.87 +
    2.88 +<h2 id="howto" edit:toc="no">How to read this document and give feedback</h2>
    2.89 +
    2.90 +<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a
    2.91 +href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification
    2.92 +can be re-used more easily by other specifications that want to have filter
    2.93 +effects. Some things that have been changed are: error handling is more
    2.94 +similar to SVG Tiny 1.2, the addition of a <a>'feDropShadow'</a> filter primitive and the
    2.95 +possibility to filter bitmap data with the DOM. </p>
    2.96 +
    2.97 +<p>The main purpose of this document is to encourage public feedback. The
    2.98 +best way to give feedback is by sending an email to <a
    2.99 +href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please
   2.100 +include some kind of keyword that identifies the area of the specification
   2.101 +the comment is referring to in the subject line of your message (e.g "Section
   2.102 +X.Y - the 'filter' property" or "Filtering primitive handling"). If you have
   2.103 +comments on multiple areas of this document, then it is probably best to
   2.104 +split those comments into multiple messages. </p>
   2.105 +
   2.106 +<p>The public are welcome to comment on any aspect in this document, but
   2.107 +there are a few areas in which the SVG Working Group are explicitly
   2.108 +requesting feedback. These areas are noted in place within this document.
   2.109 +There is also a specific area related to the specification that is listed
   2.110 +here: </p>
   2.111 +
   2.112 +<edit:fulltoc/>
   2.113 +
   2.114 +<h2 id="introduction">Introduction</h2>
   2.115 +
   2.116 +<p>This chapter describes a declarative filter effects feature set, which
   2.117 +when combined with the other web technologies, like SVG or HTML, can describe
   2.118 +much of the common artwork on the Web in such a way that client-side
   2.119 +generation and alteration can be performed easily. In addition, the ability
   2.120 +to apply filter effects to SVG <a>graphics elements</a> and <a>container elements</a> helps to
   2.121 +maintain the semantic structure of the document, instead of resorting to
   2.122 +images which aside from generally being a fixed resolution tend to obscure
   2.123 +the original semantics of the elements they replace. This is especially true
   2.124 +for effects applied to text.
   2.125 +</p>
   2.126 +
   2.127 +<p>
   2.128 +
   2.129 +</p>
   2.130 +
   2.131 +<p>Note that even though this specification references parts of <a
   2.132 +href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1
   2.133 +implementation. <span class="note">Add link to conformance classes here.</span>
   2.134 +</p>
   2.135 +
   2.136 +<p>This document is normative. </p>
   2.137 +
   2.138 +<p>This document contains explicit conformance criteria that overlap with
   2.139 +some RNG definitions in requirements. If there is any conflict between the
   2.140 +two, the explicit conformance criteria are the definitive reference. </p>
   2.141 +
   2.142 +<p>A filter effect consists of a series of graphics operations that are
   2.143 +applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical
   2.144 +result. The result of the filter effect is rendered to the target device
   2.145 +instead of the original source graphic. The following illustrates the
   2.146 +process:</p>
   2.147 +
   2.148 +<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400">
   2.149 +	<img alt="Image showing source graphic transformed by filter effect"
   2.150 +	src="examples/filters00.png" width="401" height="78" />
   2.151 +</object></p>
   2.152 +<p class="view-as-svg"><a href="examples/filters00.svg">View this example as
   2.153 +SVG (SVG-enabled browsers only)</a><br />
   2.154 + 	</p>
   2.155 +
   2.156 +<h2 id="FilterDefinitions">Definitions</h2>
   2.157 +  <p>When used in this specification, terms have the meanings assigned in this section.</p>
   2.158 +  <dl>
   2.159 +    <dt id="TermNullFilter"><span
   2.160 +    class="SVG-TermDefine">null filter</span></dt>
   2.161 +    <dd>
   2.162 +      <p>
   2.163 +      The null filter output is all transparent black pixels. If applied to an element it means
   2.164 +    that the element (and children if any) becomes invisible. Note that it does not affect event processing.
   2.165 +      </p>
   2.166 +    </dd>
   2.167 +    <dt id="TermTransferFunctionElements"><span
   2.168 +    class="SVG-TermDefine">transfer function elements</span></dt>
   2.169 +    <dd>
   2.170 +      <p>
   2.171 +      The set of elements,
   2.172 +        <a>'feFuncR'</a>, <a>'feFuncG'</a>, <a>'feFuncB'</a>, <a>'feFuncA'</a>, that define the transfer function for the <a>'feComponentTransfer'</a> filter primitive.
   2.173 +      </p>
   2.174 +    </dd>
   2.175 +  <dt id="TermClientBoundingRect"><span
   2.176 +    class="SVG-TermDefine">bounding client rect</span></dt>
   2.177 +	<dd>
   2.178 +    <p>
   2.179 +    The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 
   2.180 +    <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>].
   2.181 +    </p>
   2.182 +	</dd>
   2.183 +  <dt id="TermCSSBoundingBox"><span
   2.184 +    class="SVG-TermDefine">CSS bounding box</span></dt>
   2.185 +	<dd>
   2.186 +    <p>
   2.187 +    The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>].
   2.188 +    </p>
   2.189 +	</dd>
   2.190 +  <dt id="TermCurrentUserCoordinateSystem"><span
   2.191 +    class="SVG-TermDefine">current user coordinate system</span></dt>
   2.192 +	<dd>
   2.193 +    <p>
   2.194 +    For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 
   2.195 +    <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the
   2.196 +    <a href="#TermClientBoundingRect">bounding client rect</a>.
   2.197 +    </p>
   2.198 +    <p>
   2.199 +    For SVG elements see <a>user coordinate system</a>.
   2.200 +    </p>
   2.201 +	</dd>
   2.202 +  <dt id="TermObjectBoundingBoxUnits"><span
   2.203 +    class="SVG-TermDefine">object bounding box units</span></dt>
   2.204 +	<dd>
   2.205 +    For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 
   2.206 +    <p>
   2.207 +    For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 
   2.208 +    </p>
   2.209 +    <p>
   2.210 +    For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a>object bounding box units</a>.
   2.211 +    </p>
   2.212 +	</dd>
   2.213 +	<dt id="TermFilterPrimitiveReference"><span
   2.214 +    class="SVG-TermDefine">&lt;filter-primitive-reference&gt;</span></dt>
   2.215 +	<dd>
   2.216 +		<p>
   2.217 +    A string that identifies a particular filter primitive's output.
   2.218 +    </p>
   2.219 +	</dd>
   2.220 +	<dt id="TermFilterPrimitiveElements"><span
   2.221 +    class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt>
   2.222 +	<dd>
   2.223 +    <p>
   2.224 +		The set of elements that control the output of a <a>'filter element'</a> element, particularly:  
   2.225 +			<a>'feDistantLight'</a>, 
   2.226 +			<a>'fePointLight'</a>, 
   2.227 +			<a>'feSpotLight'</a>,
   2.228 +			<a>'feBlend'</a>,
   2.229 +			<a>'feColorMatrix'</a>,
   2.230 +			<a>'feComponentTransfer'</a>,
   2.231 +			<a>'feComposite'</a>,
   2.232 +			<a>'feConvolveMatrix'</a>,
   2.233 +			<a>'feDiffuseLighting'</a>,
   2.234 +			<a>'feDisplacementMap'</a>,
   2.235 +			<a>'feFlood'</a>,
   2.236 +			<a>'feGaussianBlur'</a>,
   2.237 +			<a>'feImage'</a>,
   2.238 +			<a>'feMerge'</a>,
   2.239 +			<a>'feMorphology'</a>,
   2.240 +			<a>'feOffset'</a>,
   2.241 +			<a>'feSpecularLighting'</a>,
   2.242 +			<a>'feTile'</a>,
   2.243 +			<a>'feTurbulence'</a>,
   2.244 +			<a>'feDropShadow'</a>,
   2.245 +			<a>'feDiffuseSpecular'</a>,
   2.246 +      <a>'feUnsharpMask'</a>,
   2.247 +			<a>'feCustom'</a>.
   2.248 +      </p>
   2.249 +	</dd>
   2.250 +  </dl>
   2.251 +  <br/>
   2.252 +
   2.253 +<h2 id="FilterElement">The <span class="element-name">'filter'</span>
   2.254 +element</h2>
   2.255 +
   2.256 +<edit:elementsummary name='filter'/>
   2.257 +
   2.258 +<edit:with element='filter'>
   2.259 +
   2.260 +<p>The description of the <a>'filter element'</a> element
   2.261 +follows:</p>
   2.262 +
   2.263 +<div class="adef-list">
   2.264 +<p><em>Attribute definitions:</em></p>
   2.265 +<dl>
   2.266 +  <dt id="FilterElementFilterUnitsAttribute"><span
   2.267 +  class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> |
   2.268 +  <em>objectBoundingBox</em>"</dt>
   2.269 +    <dd>See <a>filter effects region</a>.</dd>
   2.270 +  <dt id="FilterElementPrimitiveUnitsAttribute"><span
   2.271 +  class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> |
   2.272 +  <em>objectBoundingBox</em>"</dt>
   2.273 +    <dd>Specifies the coordinate system for the various length values within
   2.274 +      the <a>filter primitives</a> and for the attributes that define the <a>filter primitive subregion</a>.<br />
   2.275 +      If <span class='attr-value'>primitiveUnits="userSpaceOnUse"</span>, any length values
   2.276 +      within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user
   2.277 +      coordinate system</a> in place at the time when the <a>'filter element'</a>
   2.278 +      element is referenced (i.e., the user coordinate system for the element
   2.279 +      referencing the <a>'filter element'</a> element via a <a>'filter property'</a>
   2.280 +      property).<br />
   2.281 +      If <span class='attr-value'>primitiveUnits="objectBoundingBox"</span>, then any length
   2.282 +      values within the filter definitions represent fractions or percentages
   2.283 +      of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box
   2.284 +      units</a>). Note that if only one number was specified in a <a>&lt;number-optional-number&gt;</a> value
   2.285 +	  this number is expanded out before the <a>'filter/primitiveUnits'</a> computation takes place.
   2.286 +	  <br />
   2.287 +      If attribute <a>'filter/primitiveUnits'</a> is not
   2.288 +      specified, then the effect is as if a value of <span
   2.289 +      class="attr-value">userSpaceOnUse</span> were specified.<br />
   2.290 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.291 +
   2.292 +  <dt id="FilterElementFilterMarginUnitsAttribute"><span
   2.293 +  class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> |
   2.294 +  <em>objectBoundingBox</em>"</dt>
   2.295 +    <dd>See <a>filter effects region</a>.</dd>
   2.296 +  <dt id="FilterElementPrimitiveMarginUnitsAttribute"><span
   2.297 +  class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> |
   2.298 +  <em>objectBoundingBox</em>"</dt>
   2.299 +    <dd>Specifies the coordinate system for the margin attributes within the
   2.300 +      <a>filter primitives</a> which is used for determining the <a>filter primitive subregion</a>.<br />
   2.301 +      If <span class='attr-value'>primitiveMarginUnits="userSpaceOnUse"</span>, any margin
   2.302 +      attribute values within the filter definitions represent values in the
   2.303 +      current user coordinate system in place at the time when the <a>'filter element'</a>
   2.304 +      element is referenced (i.e., the <a>user coordinate system</a> for the element
   2.305 +      referencing the <a>'filter element'</a> element via a <a>'filter property'</a>
   2.306 +      property).<br />
   2.307 +      If <span class='attr-value'>primitiveMarginUnits="objectBoundingBox"</span>, then any
   2.308 +      margin attribute values within the filter definitions represent
   2.309 +      fractions or percentages of the bounding box on the referencing element
   2.310 +      (see <a>object bounding box units</a>).<br />
   2.311 +
   2.312 +	  <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a>lacuna value</a> for <a>'filter/primitiveMarginUnits'</a> is <span
   2.313 +      class="attr-value">userSpaceOnUse</span></span>.<br />
   2.314 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.315 +
   2.316 +  <dt id="FilterElementXAttribute">
   2.317 +  <span class="adef">x</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.318 +    <dd>See <a>filter effects region</a>.</dd>
   2.319 +  <dt id="FilterElementYAttribute">
   2.320 +  <span class="adef">y</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.321 +    <dd>See <a>filter effects region</a>.</dd>
   2.322 +  <dt id="FilterElementWidthAttribute"><span class="adef">width</span> =
   2.323 +  "<em><a>&lt;length&gt;</a></em>"</dt>
   2.324 +    <dd>See <a>filter effects region</a>.</dd>
   2.325 +  <dt id="FilterElementHeightAttribute"><span class="adef">height</span> =
   2.326 +  "<em><a>&lt;length&gt;</a></em>"</dt>
   2.327 +    <dd>See <a>filter effects region</a>.</dd>
   2.328 +
   2.329 +  <dt id="FilterPrimitiveMxAttribute">
   2.330 +  <span class="adef">mx</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.331 +    <dd>The margin delta for the x coordinate of the subregion which
   2.332 +      restricts calculation and rendering of the given filter primitive. If
   2.333 +      this attribute is not specified, the effect is as if a value of <span
   2.334 +      class="attr-value">0</span> were specified. See <a
   2.335 +      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
   2.336 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.337 +  <dt id="FilterPrimitiveMyAttribute">
   2.338 +  <span class="adef">my</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.339 +    <dd>The margin delta for the y coordinate of the subregion which
   2.340 +      restricts calculation and rendering of the given filter primitive. If
   2.341 +      this attribute is not specified, the effect is as if a value of <span
   2.342 +      class="attr-value">0</span> were specified. See <a
   2.343 +      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br />
   2.344 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.345 +  <dt id="FilterPrimitiveMwAttribute">
   2.346 +  <span class="adef">mw</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
   2.347 +    <dd>The margin delta for the width of the subregion which restricts
   2.348 +      calculation and rendering of the given filter primitive. If this
   2.349 +      attribute is not specified, the effect is as if a value of <span
   2.350 +      class="attr-value">0</span> were specified. See <a
   2.351 +      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
   2.352 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.353 +  <dt id="FilterPrimitiveMhAttribute">
   2.354 +  <span class="adef">mh</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
   2.355 +    <dd>The margin delta for the height of the subregion which restricts
   2.356 +      calculation and rendering of the given filter primitive. If this
   2.357 +      attribute is not specified, the effect is as if a value of <span
   2.358 +      class="attr-value">0</span> were specified. See <a
   2.359 +      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
   2.360 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.361 +
   2.362 +<dt id="FilterElementFilterResAttribute"><span
   2.363 +  class="adef">filterRes</span> = "<em><a>&lt;number-optional-number&gt;</a></em>"
   2.364 +  </dt>
   2.365 +    <dd>See <a>filter effects region</a>.</dd>
   2.366 + <dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span>
   2.367 +  = "<span class="attr-value">&lt;IRI&gt;</span>"</dt>
   2.368 +    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
   2.369 +      to another <a>'filter element'</a> element within
   2.370 +      the current <a>SVG document fragment</a>. Any attributes which are defined on
   2.371 +      the referenced <a>'filter element'</a> element which
   2.372 +      are not defined on this element are inherited by this element. If this
   2.373 +      element has no defined filter nodes, and the referenced element has
   2.374 +      defined filter nodes (possibly due to its own <span
   2.375 +      class="attr-name">href</span> attribute), then this element inherits
   2.376 +      the filter nodes defined from the referenced <a>'filter element'</a> element. Inheritance can be
   2.377 +      indirect to an arbitrary level; thus, if the referenced <a>'filter element'</a> element inherits attributes or its
   2.378 +      filter node specification due to its own <span
   2.379 +      class="attr-name">href</span> attribute, then the current element can
   2.380 +      inherit those attributes or filter node specifications. 
   2.381 +
   2.382 +      <div class="note">
   2.383 +      This attribute is deprecated and should not be used, it's included for
   2.384 +      backwards compatibility reasons only.</div>
   2.385 +      <br />
   2.386 +      <span class="anim-target">Animatable: yes.</span></dd>
   2.387 +</dl>
   2.388 +</div>
   2.389 +
   2.390 +<p>Properties inherit into the <a>'filter element'</a>
   2.391 +element from its ancestors; properties do <em>not</em> inherit from the
   2.392 +element referencing the <a>'filter element'</a>
   2.393 +element.</p>
   2.394 +
   2.395 +<p><a>'filter element'</a> elements are never rendered
   2.396 +directly; their only usage is as something that can be referenced using the
   2.397 +<a>'filter property'</a>
   2.398 +property. The <a>'display'</a> property does not
   2.399 +apply to the <a>'filter element'</a> element; thus, <a>'filter element'</a> elements are not directly rendered even
   2.400 +if the <a>'display'</a> property is set to a value
   2.401 +other than <span class="prop-value">none</span>, and <a>'filter element'</a> elements are available for referencing
   2.402 +even when the <a>'display'</a> property on the <a>'filter element'</a> element or any of its ancestors is set
   2.403 +to <span class="prop-value">none</span>.</p>
   2.404 +<br />
   2.405 +
   2.406 +<h2 id="FilterProperty">The <span class="prop-name">'filter'</span>
   2.407 +property</h2>
   2.408 +
   2.409 +<p>The description of the <span class="prop-name">'filter'</span> property is
   2.410 +as follows:</p>
   2.411 +
   2.412 +<div class="propdef">
   2.413 +<dl>
   2.414 +  <dt id='propdef-filter'><span class='propdef-title prop-name'>'filter'</span></dt>
   2.415 +    <dd>
   2.416 +      <table summary="filter property" class="propinfo" cellspacing="0"
   2.417 +      cellpadding="0">
   2.418 +        <tbody>
   2.419 +          <tr valign="baseline">
   2.420 +            <td><em>Value:</em>  </td>
   2.421 +            <td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a> | none | <a class="noxref"
   2.422 +              href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span
   2.423 +              class="value-inst-inherit noxref">inherit</span></a></td>
   2.424 +          </tr>
   2.425 +          <tr valign="baseline">
   2.426 +            <td><em>Initial:</em>  </td>
   2.427 +            <td>none</td>
   2.428 +          </tr>
   2.429 +          <tr valign="baseline">
   2.430 +            <td><em>Applies to:</em>  </td>
   2.431 +            <td>All elements
   2.432 +<!--              For svg: container elements
   2.433 +              and graphics elements-->
   2.434 +              .</td>
   2.435 +          </tr>
   2.436 +          <tr valign="baseline">
   2.437 +            <td><em>Inherited:</em>  </td>
   2.438 +            <td>no</td>
   2.439 +          </tr>
   2.440 +          <tr valign="baseline">
   2.441 +            <td><em>Percentages:</em>  </td>
   2.442 +            <td>N/A</td>
   2.443 +          </tr>
   2.444 +          <tr valign="baseline">
   2.445 +            <td><em>Media:</em>  </td>
   2.446 +            <td>visual</td>
   2.447 +          </tr>
   2.448 +          <tr valign="baseline">
   2.449 +            <td><em>Animatable:</em>  </td>
   2.450 +            <td>yes</td>
   2.451 +          </tr>
   2.452 +        </tbody>
   2.453 +      </table>
   2.454 +    </dd>
   2.455 +</dl>
   2.456 +</div>
   2.457 +
   2.458 +<dl>
   2.459 +  <dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a></span></dt>
   2.460 +    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
   2.461 +      to a <a>'filter element'</a> element which defines the
   2.462 +      filter effects that shall be applied to this element.
   2.463 +    </dd>
   2.464 +  <dt><span class="prop-value">none</span></dt>
   2.465 +    <dd>Do not apply any filter effects to this element.</dd>
   2.466 +</dl>
   2.467 +
   2.468 +<p>If a <a>'filter property'</a> property references a non-existent object or the referenced  
   2.469 +object is not a <a>'filter element'</a> element, then the <a>null filter</a> will be applied instead.
   2.470 +</p>
   2.471 +
   2.472 +<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 
   2.473 +<p>
   2.474 +The application of the <a>'filter property'</a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 
   2.475 +that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 
   2.476 +and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole.
   2.477 +</p>
   2.478 +<p>
   2.479 +The <a>'filter property'</a> property has no effect on the geometry of the target element's CSS boxes, even though <a>'filter property'</a> can cause painting outside of an element's border-box. 
   2.480 +</p>
   2.481 +<p>
   2.482 +The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 
   2.483 +first any filter effect is applied, then any clipping, masking and/or group opacity. 
   2.484 +These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a>'filter property'</a> has no effect on mouse event hit-testing.
   2.485 +</p>
   2.486 +
   2.487 +<br />
   2.488 +
   2.489 +
   2.490 +<h2 id="FilterEffectsRegion">Filter effects region</h2>
   2.491 +
   2.492 +<p>A <a>'filter element'</a>
   2.493 +element can define a region on the canvas to which a given filter effect
   2.494 +applies and can provide a resolution for any intermediate continuous tone
   2.495 +images used to process any raster-based <a>filter primitives</a>. 
   2.496 +
   2.497 +<h3 id="filter-margins">Filter Region extensions</h3>
   2.498 +
   2.499 +<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span>
   2.500 +defines the area upon which it applies. This makes it difficult to develop a
   2.501 +generic filter that can be applied to arbitrary graphics, since the filter
   2.502 +must define a large enough area to cover any graphical object to which it is
   2.503 +applied. An example of this is a generic "drop shadow" filter, which is
   2.504 +commonly specified as a combination of a Gaussian blur <a>'feGaussianBlur'</a>) that is offset <a>'feOffset'</a>) and then composed <a>'feComposite'</a>) with the original source graphic.
   2.505 +Since the shadow has to extend beyond the original graphic's boundaries, the
   2.506 +filter must be defined to have a larger area than the original graphic.
   2.507 +Overestimating this margin has a negative effect on performance, since the
   2.508 +complex filter operation has to touch a larger amount of user space (ie.
   2.509 +pixels). </p>
   2.510 +
   2.511 +<p>In order to solve this problem this spec allows additional control over
   2.512 +the filter region. The outer filter region is expressed by delta to the
   2.513 +<a>'x'</a>, 
   2.514 +<a>'y'</a>, 
   2.515 +<a>'width'</a>, 
   2.516 +<a>'height'</a>
   2.517 + of the input filter region. </p>
   2.518 +
   2.519 +<p>In particular, the <a>'filter/filterMarginUnits'</a>, <a>'filter/primitiveMarginUnits'</a>, 
   2.520 +<a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> are
   2.521 +added to the <a>'filter element'</a> element. The <a>'filter/filterMarginUnits'</a> specifies the coordinate space of
   2.522 +the margin attributes, which are used to increase or decrease the <a>'filter element'</a> element's 
   2.523 +<a>'x'</a>, 
   2.524 +<a>'y'</a>, 
   2.525 +<a>'width'</a> and 
   2.526 +<a>'height'</a>
   2.527 +attributes (once they have been calculated). The <a>'filter/primitiveMarginUnits'</a> specifies the units for the
   2.528 +new margin attributes on the <a>filter primitives</a>, also named 
   2.529 +<a>'mx'</a>, 
   2.530 +<a>'my'</a>, 
   2.531 +<a>'mw'</a>, 
   2.532 +<a>'mh'</a>. 
   2.533 +These margins attribute override those set on the parent <a>'filter element'</a> element. 
   2.534 +Note that this doesn't mean that a <a>'filter primitive'</a> can expand the filter region itself, just that the
   2.535 +coordinate system used for filter primitive's margin attributes can be
   2.536 +different than the one used for the margin attributes on the 
   2.537 +<a>'filter element'</a> element. </p>
   2.538 +
   2.539 +<p>An example of the new attributes, which defines a generic drop shadow
   2.540 +filter: </p>
   2.541 +<pre class="examplesource">	&lt;filter id="dropShadow" x="0" y="0" width="1" height="1"
   2.542 +			  filterMarginUnits="userSpaceOnUse"
   2.543 +			  mx="0" my="0" mw="5" mh="5" &gt;
   2.544 +		  &lt;feGaussianBlur stdDeviation="2" in="SourceAlpha" /&gt;
   2.545 +		  &lt;feOffset dx="2" /&gt;
   2.546 +		  &lt;feMerge&gt;
   2.547 +			   &lt;feMergeNode /&gt;
   2.548 +			   &lt;feMergeNode in="SourceGraphic" /&gt;
   2.549 +		  &lt;/feMerge&gt;
   2.550 +	&lt;/filter&gt; </pre>
   2.551 +
   2.552 +<p>In the above example, the filter region by default covers the entire
   2.553 +bounds of the object (which is not enough to show the shadow). Adding the new
   2.554 +margins extends the width and height by 5 user units each, which is always
   2.555 +enough to display the blur (which has a standard deviation of 2 user units)
   2.556 +and offset (which is another 2 units). </p>
   2.557 +
   2.558 +The <a>'filter element'</a>
   2.559 +element has the following attributes which work together to define the filter
   2.560 +effects region:</p>
   2.561 +
   2.562 + <dl class='definitions unemphasized-names'>
   2.563 +	<dt id="FilterUnitsAttribute"><a>'filterUnits'</a></dt>
   2.564 +	<dd>
   2.565 +	    <p>Defines the coordinate system for attributes <a>'x'</a>, <a>'y'</a>,
   2.566 +	    <a>'width'</a>, <a>'height'</a>.</p>
   2.567 +    
   2.568 +		<p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a>'x'</a>, <a>'y'</a>,
   2.569 +	    <a>'width'</a>, <a>'height'</a> represent values in the current user coordinate
   2.570 +	    system in place at the time when the <a>'filter element'</a> element is referenced (i.e., the
   2.571 +	    user coordinate system for the element referencing the <a>'filter element'</a>
   2.572 +	    element via a <a>'filter property'</a> property).</p>
   2.573 +
   2.574 +	    <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a>'x'</a>, <a>'y'</a>,
   2.575 +	    <a>'width'</a>, <a>'height'</a> represent fractions or percentages of the
   2.576 +	    bounding box on the referencing element (see <a>object bounding box units</a>).</p>
   2.577 +
   2.578 +		<p>The <a>lacuna value</a> for <a>'filterUnits'</a> is <span
   2.579 +	    class="attr-value">objectBoundingBox</span>.</p>
   2.580 +
   2.581 +	    <p><span class="anim-target">Animatable: yes.</span></p>
   2.582 +	</dd>
   2.583 +	<dt id="FilterRegionXYWidthHeightAttributes"><a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a></dt>
   2.584 +    <dd>
   2.585 +		<p>These attributes define a rectangular region on the canvas to which this filter applies.</p>
   2.586 +    	<p>The amount of memory and processing time required to apply the filter are
   2.587 +    	   related to the size of this rectangle and the <a>'filterRes'</a> attribute of the filter.</p>
   2.588 +		<p>The coordinate system for these attributes depends on the value for attribute <a>'filterUnits'</a>.</p>
   2.589 +		<p>The bounds of this rectangle act as a hard clipping region for each <a>filter primitive</a> 
   2.590 +		   included with a given <a>'filter element'</a> element; thus, if the effect of
   2.591 +    	   a given filter primitive would extend beyond the bounds of the rectangle
   2.592 +    	   (this sometimes happens when using a <a>'feGaussianBlur'</a> filter primitive with a
   2.593 +    	   very large <a>'feGaussianBlur/stdDeviation'</a>), parts of the effect will get clipped.</p>
   2.594 +    
   2.595 +		<p>The <a>lacuna value</a> for <a>'x'</a> and <a>'y'</a> is <span class="attr-value">-10%</span>.</p>
   2.596 +		<p>The <a>lacuna value</a> for <a>'width'</a> and <a>'height'</a> is <span class="attr-value">120%</span>.</p>
   2.597 +    	<p>Negative or zero values for <a>'width'</a> or <a>'height'</a> disable rendering of the element which
   2.598 +		   referenced the filter. </p>
   2.599 +		
   2.600 +    	<p><span class="anim-target">Animatable: yes.</span></p>
   2.601 +	</dd>
   2.602 +	<dt id="FilterMarginAttribute"><a>'filterMarginUnits'</a></dt>
   2.603 +    <dd>
   2.604 +		<p>Defines the coordinate system for attributes <a>'mx'</a>, <a>'my'</a>,
   2.605 +    		<a>'mw'</a>, <a>'mh'</a>.</p>
   2.606 +		<p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a>'mx'</a>, <a>'my'</a>,
   2.607 +		    <a>'mw'</a>, <a>'mh'</a> represent values in the current <a>user coordinate system</a>
   2.608 +		    in place at the time when the <a>'filter element'</a> element is referenced (i.e., the
   2.609 +		    <a>user coordinate system</a> for the element referencing the <a>'filter element'</a>
   2.610 +		    element via a <a>'filter property'</a> property).</p>
   2.611 +		<p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a>'mx'</a>, <a>'my'</a>,
   2.612 +	  		<a>'mw'</a>, <a>'mh'</a> represent fractions or percentages of the <a>'bounding box'</a>
   2.613 +    		on the referencing element (see <a>object bounding box units</a>).</p>
   2.614 +    	<p>The <a>lacuna value</a> for <a>'filterMarginUnits'</a> is 
   2.615 +			<span class="attr-value">userSpaceOnUse</span>.</p>
   2.616 +		<p><span class="anim-target">Animatable: yes.</span></p>
   2.617 +	</dd>
   2.618 +  <dt id="FilterRegionMyAttribute"><a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a></dt>
   2.619 +	<dd>
   2.620 +    	<p>Defines the deltas to the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> of the filter region.</p>
   2.621 +	
   2.622 +		<p>After the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> have been calculated for the 
   2.623 +			<a>filter region</a> the <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a> are calculated and added 
   2.624 +			to the <a>filter region</a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 
   2.625 +			<a>filter region</a> has a negative or zero width or height, the rendering of the element which 
   2.626 +			referenced the filter is disabled.</span></p>
   2.627 +	
   2.628 +    	<p>The coordinate system for these attributes depends on the value for
   2.629 +    		attribute <a>'filterMarginUnits'</a>.</p>
   2.630 +
   2.631 +    	<p>The <a>lacuna value</a> for <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> is <span class="attr-value">0</span>.</p>
   2.632 +    	<p><span class="anim-target">Animatable: yes.</span></p>
   2.633 +	</dd>
   2.634 +
   2.635 +	<dt id="FilterRegionFilterRes"><a>'filterRes'</a></dt> 
   2.636 +	<dd>
   2.637 +		<p>Defines the width and height of the intermediate
   2.638 +	    images in pixels. If not provided, then a reasonable default resolution
   2.639 +	    appropriate for the target device will be used. (For displays, an
   2.640 +	    appropriate display resolution, preferably the current display's pixel
   2.641 +	    resolution, is the default. For printing, an appropriate common printer
   2.642 +	    resolution, such as 1200dpi, is the default.)</p>
   2.643 +	    <p>Care should be taken when assigning a non-default value to this
   2.644 +	    attribute. Too small of a value may result in unwanted pixelation in the
   2.645 +	    result. Too large of a value may result in slow processing and large
   2.646 +	    memory usage.</p>
   2.647 +	    <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p>
   2.648 +    	<p><span class="anim-target">Animatable: yes.</span></p>
   2.649 +	</dd>
   2.650 +</dl>
   2.651 +
   2.652 +<p>Note that both of the two possible value for <a>'filterUnits'</a> (i.e., <span
   2.653 +class="attr-value">objectBoundingBox</span> and <span
   2.654 +class="attr-value">userSpaceOnUse</span>) result in a <a>filter region</a> whose
   2.655 +coordinate system has its X-axis and Y-axis each parallel to the X-axis and
   2.656 +Y-axis, respectively, of the <a>user coordinate system</a> for the element to which
   2.657 +the filter will be applied.</p>
   2.658 +
   2.659 +<p class="note implementation">Sometimes implementers can achieve faster performance when the filter
   2.660 +region can be mapped directly to device pixels; thus, for best performance on
   2.661 +display devices, it is suggested that authors define their region such that
   2.662 +the user agent can align the filter region pixel-for-pixel with the
   2.663 +background. In particular, for best filter effects performance, avoid
   2.664 +rotating or skewing the user coordinate system. Explicit values for attribute
   2.665 +<a>'filterRes'</a> can either help or harm performance.
   2.666 +If <a>'filterRes'</a> is smaller than the automatic
   2.667 +(i.e., default) filter resolution, then filter effect might have faster
   2.668 +performance (usually at the expense of quality). If <a>'filterRes'</a> is larger than the automatic (i.e.,
   2.669 +default) filter resolution, then filter effects performance will usually be
   2.670 +slower.</p>
   2.671 +
   2.672 +<p class="note authoring">It is often necessary to provide padding space because the filter effect
   2.673 +might impact bits slightly outside the tight-fitting <a>'bounding box'</a> on a given
   2.674 +object. For these purposes, it is possible to provide negative percentage
   2.675 +values for <a>'x'</a>, <a>'y'</a> and percentages values greater than <span class="attr-value">100%</span> for
   2.676 +<a>'width'</a>, <a>'height'</a>. This, for example, is why the defaults for
   2.677 +the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%"
   2.678 +height="120%"</span>.</p>
   2.679 +
   2.680 +<h2 id="AccessBackgroundImage">Accessing the background image</h2>
   2.681 +
   2.682 +<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a>BackgroundImage</a> and <a>BackgroundAlpha</a>, which each represent an image
   2.683 +snapshot of the canvas under the filter region at the time that the <a
   2.684 +href="#FilterElement"><span class="element-name">'filter'</span></a> element
   2.685 +is invoked. <a>BackgroundImage</a> represents both
   2.686 +the color values and alpha channel of the canvas (i.e., RGBA pixel values),
   2.687 +whereas <a>BackgroundAlpha</a> represents only the
   2.688 +alpha channel.</p>
   2.689 +
   2.690 +<p>Implementations <!--of SVG user agents often-->
   2.691 +will often need to maintain supplemental background image buffers in order to
   2.692 +support the <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images. Sometimes,
   2.693 +the background image buffers will contain an in-memory copy of the
   2.694 +accumulated painting operations on the current canvas.</p>
   2.695 +
   2.696 +<p>Because in-memory image buffers can take up significant system resources, <!--SVG-->
   2.697 +content must explicitly indicate to the <!--SVG-->
   2.698 +user agent that the document needs access to the background image before <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images can be used.
   2.699 +</p>
   2.700 +
   2.701 +A background image is what's been <i>rendered before</i> the current element.
   2.702 +<edit:hostreq>The host language is responsible for defining what <i>rendered before</i> in
   2.703 +this context means
   2.704 +.</edit:hostreq> For SVG, that uses the painter's algorithm, <i>rendered before</i> means
   2.705 +all of the prior elements in pre order traversal previous to the element to
   2.706 +which the filter is applied.
   2.707 +
   2.708 +<p>The property which enables access to the background image is
   2.709 +<a>'enable-background'</a>:</p>
   2.710 +
   2.711 +
   2.712 +<div class="propdef">
   2.713 +<dl>
   2.714 +  <dt id="EnableBackgroundProperty"><span class='propdef-title prop-name'>'enable-background'</span></dt>
   2.715 +    <dd>
   2.716 +      <table summary="enable-background property" class="propinfo"
   2.717 +      cellspacing="0" cellpadding="0">
   2.718 +        <tbody>
   2.719 +          <tr valign="baseline">
   2.720 +            <td><em>Value:</em>  </td>
   2.721 +            <td>accumulate | new [ &lt;x&gt; &lt;y&gt; &lt;width&gt;
   2.722 +              &lt;height&gt; ] | <a class="noxref"
   2.723 +              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
   2.724 +              class="value-inst-inherit noxref">inherit</span></a></td>
   2.725 +          </tr>
   2.726 +          <tr valign="baseline">
   2.727 +            <td><em>Initial:</em>  </td>
   2.728 +            <td>accumulate</td>
   2.729 +          </tr>
   2.730 +          <tr valign="baseline">
   2.731 +            <td><em>Applies to:</em>  </td>
   2.732 +            <td>Typically elements that can contain renderable elements. 
   2.733 +              language is responsible for defining the applicable set of
   2.734 +              elements.
   2.735 +              For SVG: <a>container elements</a></td>
   2.736 +          </tr>
   2.737 +          <tr valign="baseline">
   2.738 +            <td><em>Inherited:</em>  </td>
   2.739 +            <td>no</td>
   2.740 +          </tr>
   2.741 +          <tr valign="baseline">
   2.742 +            <td><em>Percentages:</em>  </td>
   2.743 +            <td>N/A</td>
   2.744 +          </tr>
   2.745 +          <tr valign="baseline">
   2.746 +            <td><em>Media:</em>  </td>
   2.747 +            <td>visual</td>
   2.748 +          </tr>
   2.749 +          <tr valign="baseline">
   2.750 +            <td><em>Animatable:</em>  </td>
   2.751 +            <td>no</td>
   2.752 +          </tr>
   2.753 +        </tbody>
   2.754 +      </table>
   2.755 +    </dd>
   2.756 +</dl>
   2.757 +</div>
   2.758 +<p><a>'enable-background'</a> is only
   2.759 +  applicable to <a>container elements</a>
   2.760 +  and specifies how the <a>SVG user agent</a> manages the accumulation
   2.761 +  of the background image.</p>
   2.762 +
   2.763 +<p>A value of <strong>new</strong> indicates two things:</p>
   2.764 +<ul>
   2.765 +  <li>It enables the ability of children of the current <a>container element</a>
   2.766 +    element to access the background image.</li>
   2.767 +  <li>It indicates that a new (i.e., initially transparent black) background
   2.768 +    image canvas is established and that (in effect) all children of the
   2.769 +    current <a>container element</a>
   2.770 +    element shall be rendered into the new background image canvas in
   2.771 +    addition to being rendered onto the target device.</li>
   2.772 +</ul>
   2.773 +
   2.774 +<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the
   2.775 +initial/default value) depends on context:</p>
   2.776 +<ul>
   2.777 +  <li>If an ancestor <a>container element</a>
   2.778 +    element has a property value of <span class="attr-value">'enable-background:new'</span>, then all
   2.779 +    renderable child elements of the current <a>container element</a>
   2.780 +    element are rendered both onto the parent <a>container element</a>
   2.781 +    element's background image canvas and onto the target device.</li>
   2.782 +  <li>Otherwise, there is no current background image canvas, so it is only
   2.783 +    necessary to render <a>graphics elements</a>
   2.784 +    the renderable elements onto the target device. (No need to render to the
   2.785 +    background image canvas.)</li>
   2.786 +</ul>
   2.787 +
   2.788 +<p>If a filter effect specifies either the <a>BackgroundImage</a> or the 
   2.789 +	<a>BackgroundAlpha</a> pseudo input images and no
   2.790 +ancestor <a>container element</a>
   2.791 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background
   2.792 +image request is technically in error. Processing will proceed without
   2.793 +interruption (i.e., no error message) and a transparent black image shall be
   2.794 +provided in response to the request.</p>
   2.795 +
   2.796 +<p>The optional
   2.797 +<strong>&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt;</strong> 
   2.798 +<span class="specissue">ISSUE: define the type of each of these, probably &lt;number&gt;</span>
   2.799 +	parameters
   2.800 +on the <span class="attr-value">new</span> value indicate the subregion of the <a>container element</a>
   2.801 + element to which <a>'enable-background'</a> applies' user space where access to the
   2.802 +background image is allowed to happen. These parameters enable the user
   2.803 +agent potentially to allocate smaller temporary image buffers than the
   2.804 +default values, which might require the user agent to allocate buffers as
   2.805 +large as the current viewport. Thus, the values
   2.806 +&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt; act as a clipping rectangle
   2.807 +on the background image canvas. If more than zero but less than four of the
   2.808 +values &lt;x&gt;,&lt;y&gt;,&lt;width&gt; and &lt;height&gt; are specified or
   2.809 +if negative or zero values are specified for &lt;width&gt; or &lt;height&gt;,
   2.810 +<a>BackgroundImage</a> and <a>BackgroundAlpha</a> are processed as if background
   2.811 +image processing were not enabled. </p>
   2.812 +
   2.813 +<h3 id="AccessBackgroundImageSVG">Accessing the background image in SVG</h3>
   2.814 +<p>This section only applies to the SVG definition of enable-background.</p>
   2.815 +
   2.816 +<p>Assume you have an element E in the document and that E has a series of
   2.817 +ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note:
   2.818 +A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding
   2.819 +temporary background image offscreen buffer BUF<sub>i</sub>. The contents of
   2.820 +the <em>background image</em> available to a <a href="#FilterElement"><span
   2.821 +class="element-name">'filter'</span></a> referenced by E is defined as
   2.822 +follows:</p>
   2.823 +<ul>
   2.824 +  <li>Find the element A<sub>i</sub> with the smallest subscript i (including
   2.825 +    A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span
   2.826 +    class="prop-name">'enable-background'</span></a> property has the value
   2.827 +    <span class="prop-value">new</span>. (Note: if there is no such ancestor
   2.828 +    element, then there is no background image available to E, in which case
   2.829 +    a transparent black image will be used as E's background image.)</li>
   2.830 +  <li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to
   2.831 +    transparent black. Render all children of A<sub>i</sub> up to but not
   2.832 +    including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted,
   2.833 +    then filtered, clipped, masked and composited using the various painting,
   2.834 +    filtering, clipping, masking and object opacity settings on the given
   2.835 +    child. Any filter effects, masking and group opacity that might be set on
   2.836 +    A<sub>i</sub> do <em>not</em> apply when rendering the children of
   2.837 +    A<sub>i</sub> into BUF<sub>i</sub>.<br />
   2.838 +    (Note that for the case of A<sub>0</sub>=E, the graphical contents of E
   2.839 +    are not rendered into BUF<sub>1</sub> and thus are not part of the
   2.840 +    background image available to E. Instead, the graphical contents of E are
   2.841 +    available via the <a href="#SourceGraphic">SourceGraphic</a> and <a
   2.842 +    href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li>
   2.843 +  <li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite
   2.844 +    BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li>
   2.845 +  <li>The accumulated result (i.e., BUF<sub>n</sub>) represents the
   2.846 +    background image available to E.</li>
   2.847 +</ul>
   2.848 +
   2.849 +<edit:example href="examples/enable-background-01.svg" image="yes" link="yes"/>
   2.850 +
   2.851 +<p>The example above contains five parts, described as follows:</p>
   2.852 +<ol>
   2.853 +  <li>The first set is the reference graphic. The reference graphic consists
   2.854 +    of a red rectangle followed by a 50% transparent <span
   2.855 +    class="element-name">'g'</span>
   2.856 +    element. Inside the <span class="element-name">'g'</span>
   2.857 +    is a green circle that partially overlaps the rectangle and a a blue
   2.858 +    triangle that partially overlaps the circle. The three objects are then
   2.859 +    outlined by a rectangle stroked with a thin blue line. No filters are
   2.860 +    applied to the reference graphic.</li>
   2.861 +  <li>The second set enables background image processing and adds an empty
   2.862 +    <span class="element-name">'g'</span>
   2.863 +    element which invokes the ShiftBGAndBlur filter. This filter takes the
   2.864 +    current accumulated background image (i.e., the entire reference graphic)
   2.865 +    as input, shifts its offscreen down, blurs it, and then writes the result
   2.866 +    to the canvas. Note that the offscreen for the filter is initialized to
   2.867 +    transparent black, which allows the already rendered rectangle, circle
   2.868 +    and triangle to show through after the filter renders its own result to
   2.869 +    the canvas.</li>
   2.870 +  <li>The third set enables background image processing and instead invokes
   2.871 +    the ShiftBGAndBlur filter on the inner <span
   2.872 +    class="element-name">'g'</span>
   2.873 +    element. The accumulated background at the time the filter is applied
   2.874 +    contains only the red rectangle. Because the children of the inner <span
   2.875 +    class="element-name">'g'</span>
   2.876 +    (i.e., the circle and triangle) are not part of the inner <span
   2.877 +    class="element-name">'g'</span>
   2.878 +    element's background and because ShiftBGAndBlur ignores SourceGraphic,
   2.879 +    the children of the inner <span class="element-name">'g'</span>
   2.880 +    do not appear in the result.</li>
   2.881 +  <li>The fourth set enables background image processing and invokes the
   2.882 +    ShiftBGAndBlur on the <span class="element-name">'polygon'</span>
   2.883 +    element that draws the triangle. The accumulated background at the time
   2.884 +    the filter is applied contains the red rectangle plus the green circle
   2.885 +    ignoring the effect of the <span class="prop-name">'opacity'</span>
   2.886 +    property on the inner <span class="element-name">'g'</span>
   2.887 +    element. (Note that the blurred green circle at the bottom does not let
   2.888 +    the red rectangle show through on its left side. This is due to ignoring
   2.889 +    the effect of the <span class="prop-name">'opacity'</span>
   2.890 +    property.) Because the triangle itself is not part of the accumulated
   2.891 +    background and because ShiftBGAndBlur ignores SourceGraphic, the triangle
   2.892 +    does not appear in the result.</li>
   2.893 +  <li>The fifth set is the same as the fourth except that filter
   2.894 +    ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur.
   2.895 +    ShiftBGAndBlur_WithSourceGraphic performs the same effect as
   2.896 +    ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted,
   2.897 +    blurred background image. In this case, SourceGraphic is the blue
   2.898 +    triangle; thus, the result is the same as in the fourth case except that
   2.899 +    the blue triangle now appears.</li>
   2.900 +</ol>
   2.901 +</edit:with>
   2.902 +
   2.903 +<h2 id="FilterPrimitivesOverview">Filter primitives overview</h2>
   2.904 +
   2.905 +<h3 id="FilterPrimitivesOverviewIntro">Overview</h3>
   2.906 +
   2.907 +<p>This section describes the various filter primtives that can be assembled
   2.908 +to achieve a particular filter effect.</p>
   2.909 +
   2.910 +<p>Unless otherwise stated, all image filters operate on premultiplied RGBA
   2.911 +samples. Filters which work more naturally on non-premultiplied data
   2.912 +(<a>'feColorMatrix'</a> and <a>'feComponentTransfer'</a>) will temporarily undo and redo
   2.913 +premultiplication as specified. All raster effect filtering operations take 1
   2.914 +to N input RGBA images, additional attributes as parameters, and produce a
   2.915 +single output RGBA image.</p>
   2.916 +
   2.917 +<p>The RGBA result from each filter primitive will be clamped into the
   2.918 +allowable ranges for colors and opacity values. Thus, for example, the result
   2.919 +from a given <a>filter primitive</a> will have any negative color values or opacity
   2.920 +values adjusted up to color/opacity of zero.</p>
   2.921 +
   2.922 +<p id="filtersColorSpace">The color space in which a particular <a>filter primitive</a> performs its
   2.923 +operations is determined by the value of property <a>'color-interpolation-filters'</a> on the given <a>filter
   2.924 +primitive</a>. A different property, <a>'color-interpolation'</a> determines the color space for
   2.925 +other color operations. Because these two properties have different initial
   2.926 +values (<a>'color-interpolation-filters'</a> has an
   2.927 +initial value of <span class="prop-value">linearRGB</span> whereas <a>'color-interpolation'</a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results
   2.928 +(e.g., when coordinating gradient interpolation with a filtering operation)
   2.929 +it will be necessary to explicitly set <a>'color-interpolation'</a> to <span
   2.930 +class="prop-value">linearRGB</span> or <a>'color-interpolation-filters'</a> to <span
   2.931 +class="prop-value">sRGB</span> on particular elements. Note that the examples
   2.932 +below do not explicitly set either <a>'color-interpolation'</a> or <a>'color-interpolation-filters'</a>, so the initial values for these properties apply to the examples.</p>
   2.933 +
   2.934 +<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a>filter primitives</a> result in undefined pixels. For example,
   2.935 +filter primitive <a>'feOffset'</a> can shift an image down and to the
   2.936 +right, leaving undefined pixels at the top and left. In these cases, the
   2.937 +undefined pixels are set to transparent black.</span></p>
   2.938 +
   2.939 +<h3 id="CommonAttributes">Common attributes</h3>
   2.940 +
   2.941 +<p>The following attributes are available for most of the filter
   2.942 +primitives:</p>
   2.943 +
   2.944 +<div class="adef-list">
   2.945 +<p><em>Attribute definitions:</em></p>
   2.946 +<dl>
   2.947 +  <dt id="FilterPrimitiveXAttribute">
   2.948 +  <span class="adef">x</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.949 +    <dd><p>The minimum x coordinate for the subregion which restricts
   2.950 +      calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
   2.951 +		<p>The <a>lacuna value</a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p>
   2.952 +      	<p><span class="anim-target">Animatable: yes.</span></p>
   2.953 +	</dd>
   2.954 +  <dt id="FilterPrimitiveYAttribute">
   2.955 +  <span class="adef">y</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.956 +    <dd><p>The minimum y coordinate for the subregion which restricts
   2.957 +      calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>. </p>
   2.958 +		<p>The <a>lacuna value</a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p>
   2.959 +      	<p><span class="anim-target">Animatable: yes.</span></p>
   2.960 +	</dd>
   2.961 +  <dt id="FilterPrimitiveWidthAttribute">
   2.962 +  <span class="adef">width</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
   2.963 +    <dd><p>The width of the subregion which restricts calculation and rendering
   2.964 +      of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
   2.965 +      <p>A negative or zero value disables the effect of the given filter
   2.966 +      primitive (i.e., the result is a transparent black image).</p>
   2.967 +	  <p>The <a>lacuna value</a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p>
   2.968 +      <p><span class="anim-target">Animatable: yes.</span></p>
   2.969 +	</dd>
   2.970 +  <dt id="FilterPrimitiveHeightAttribute">
   2.971 +  <span class="adef">height</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
   2.972 +    <dd><p>The height of the subregion which restricts calculation and rendering
   2.973 +      of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
   2.974 +      <p>A negative or zero value disables the effect of the given filter
   2.975 +      primitive (i.e., the result is a transparent black image).</p>
   2.976 +	  <p>The <a>lacuna value</a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p>
   2.977 +      <p><span class="anim-target">Animatable: yes.</span></p>
   2.978 +	</dd>
   2.979 +  <dt id="FilterPrimitiveMxAttribute">
   2.980 +  <span class="adef">mx</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.981 +    <dd><p>The margin delta for the x coordinate of the subregion which
   2.982 +      	restricts calculation and rendering of the given <a>filter primitive</a>, 
   2.983 +		see <a>filter primitive subregion</a>.</p> 
   2.984 +		<p>The <a>lacuna value</a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p>
   2.985 +      	<p><span class="anim-target">Animatable: yes.</span></p>
   2.986 +	</dd>
   2.987 +  <dt id="FilterPrimitiveMyAttribute">
   2.988 +  <span class="adef">my</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
   2.989 +    <dd><p>The margin delta for the y coordinate of the subregion which
   2.990 +      restricts calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p>
   2.991 +		<p>The <a>lacuna value</a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p>
   2.992 +      	<p><span class="anim-target">Animatable: yes.</span></p>
   2.993 +	</dd>
   2.994 +  <dt id="FilterPrimitiveMwAttribute">
   2.995 +  <span class="adef">mw</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
   2.996 +    <dd><p>The margin delta for the width of the subregion which restricts
   2.997 +      calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 
   2.998 +		<p>The <a>lacuna value</a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p>
   2.999 +      	<p><span class="anim-target">Animatable: yes.</span></p>
  2.1000 +	</dd>
  2.1001 +  <dt id="FilterPrimitiveMhAttribute">
  2.1002 +  <span class="adef">mh</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
  2.1003 +    <dd><p>The margin delta for the height of the subregion which restricts
  2.1004 +      calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p>
  2.1005 +		<p>The <a>lacuna value</a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p>
  2.1006 +      	<p><span class="anim-target">Animatable: yes.</span></p>
  2.1007 +	</dd>
  2.1008 +  <dt id="FilterPrimitiveResultAttribute">
  2.1009 +  <span class="adef">result</span> =
  2.1010 +  "<em><a>&lt;filter-primitive-reference&gt;</a></em>"</dt>
  2.1011 +    <dd><p>Assigned name for this <a>filter primitive</a>. If supplied, then graphics
  2.1012 +      that result from processing this <a>filter primitive</a> can be referenced by
  2.1013 +      an <a>'in'</a> attribute on a subsequent filter
  2.1014 +      primitive within the same <a>'filter element'</a> element. If no value is
  2.1015 +      provided, the output will only be available for re-use as the implicit
  2.1016 +      input into the next <a>filter primitive</a> if that <a>filter primitive</a> provides
  2.1017 +      no value for its <a>'in'</a> attribute.</p>
  2.1018 +      <p>Note that a <a>&lt;filter-primitive-reference&gt;</a> is not an XML
  2.1019 +      ID; instead, a <a>&lt;filter-primitive-reference&gt;</a> is only
  2.1020 +      meaningful within a given <a>'filter element'</a> element and thus have only
  2.1021 +      local scope. It is legal for the same
  2.1022 +      <a>&lt;filter-primitive-reference&gt;</a> to appear multiple times
  2.1023 +      within the same <a>'filter element'</a> element. When referenced, the
  2.1024 +      <a>&lt;filter-primitive-reference&gt;</a> will use the closest
  2.1025 +      preceding <a>filter primitive</a> with the given result.</p>
  2.1026 +      <p><span class="anim-target">Animatable: yes.</span></p>
  2.1027 +	</dd>
  2.1028 +  <dt id="FilterPrimitiveInAttribute">
  2.1029 +  <span class="adef">in</span> = "<em><a>SourceGraphic</a> | <a>SourceAlpha</a> | <a>BackgroundImage</a> | <a>BackgroundAlpha</a> | <a>FillPaint</a> | <a>StrokePaint</a> |
  2.1030 +  <a>&lt;filter-primitive-reference&gt;</a></em>"</dt>
  2.1031 +    <dd><p>Identifies input for the given filter primitive. The value can be
  2.1032 +      either one of six keywords or can be a string which matches a previous
  2.1033 +      <a>'feBlend/result'</a> attribute value within the same <a>'filter element'</a>
  2.1034 +      element. If no value is provided and this is the first <a>filter primitive</a>, 
  2.1035 +	then this <a>filter primitive</a> will use <a>SourceGraphic</a>
  2.1036 +      as its input. If no value is provided and this is a subsequent <a>filter primitive</a>, 
  2.1037 +	then this <a>filter primitive</a> will use the result from the
  2.1038 +      previous <a>filter primitive</a> as its input.</p> 
  2.1039 +      <p>If the value for <span class="attr-name">result</span> appears
  2.1040 +      multiple times within a given <a>'filter element'</a> element, then a reference to
  2.1041 +      that result will use the closest preceding <a>filter primitive</a> with the
  2.1042 +      given value for attribute <a>'feBlend/result'</a>.
  2.1043 +      Forward references to results are not allowed, and will be treated as
  2.1044 +      if no result was specified. </p>
  2.1045 +      <p>Definitions for the six keywords: </p>
  2.1046 +      <dl>
  2.1047 +        <dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt>
  2.1048 +          <dd><p>This keyword represents the graphics elements
  2.1049 +            that were the original input into the <a>'filter element'</a> element. For raster
  2.1050 +            effects <a>filter primitives</a>, the graphics elements
  2.1051 +            will be rasterized into an initially clear RGBA raster in image
  2.1052 +            space. Pixels left untouched by the original graphic will be left
  2.1053 +            clear. The image is specified to be rendered in linear RGBA
  2.1054 +            pixels. The alpha channel of this image captures any
  2.1055 +            anti-aliasing specified by SVG. (Since the raster is linear, the
  2.1056 +            alpha channel of this image will represent the exact percent
  2.1057 +            coverage of each pixel.)</p></dd>
  2.1058 +        <dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt>
  2.1059 +          <dd><p>This keyword represents the graphics elements
  2.1060 +            that were the original input into the <a>'filter element'</a> element. 
  2.1061 +			<a>SourceAlpha</a> has all of the same rules
  2.1062 +            as <a>SourceGraphic</a> except that only the
  2.1063 +            alpha channel is used. The input image is an RGBA image
  2.1064 +            consisting of implicitly black color values for the RGB channels,
  2.1065 +            but whose alpha channel is the same as <a>SourceGraphic</a>.</p>
  2.1066 +			<p class="note implementation">If this option is
  2.1067 +            used, then some implementations might need to rasterize the
  2.1068 +            graphics elements
  2.1069 +            in order to extract the alpha channel.</p>
  2.1070 +		</dd>
  2.1071 +        <dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt>
  2.1072 +          <dd><p>This keyword represents an image snapshot of the canvas under
  2.1073 +            the filter region at the time that the <a>'filter element'</a> element was invoked. See
  2.1074 +            <a href="#AccessingBackgroundImage">accessing the background
  2.1075 +            image</a>.</p>
  2.1076 +		  </dd>
  2.1077 +        <dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt>
  2.1078 +          <dd><p>Same as <a>BackgroundImage</a> except
  2.1079 +            only the alpha channel is used. See <a>SourceAlpha</a> and <a
  2.1080 +            href="#AccessingBackgroundImage">accessing the background
  2.1081 +            image</a>.</p>
  2.1082 +		  </dd>
  2.1083 +
  2.1084 +        <dt id="FillPaint"><span class="attr-value">FillPaint</span></dt>
  2.1085 +          <dd>
  2.1086 +      <p>This keyword represents the target element <i>rendered filled</i>.</p>
  2.1087 +			<p>For svg this keyword represents the value of the <a>'fill'</a>
  2.1088 +            property on the target element for the filter effect.</p>
  2.1089 +      <p>For non-SVG cases <a>FillPaint</a> generates a transparent black image. 
  2.1090 +        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span>
  2.1091 +      </p>
  2.1092 +			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
  2.1093 +			<p>The <a>FillPaint</a> image has conceptually infinite extent. 
  2.1094 +			Frequently this image is opaque everywhere, but it might not be if the "paint"
  2.1095 +			itself has alpha, as in the case of a gradient or pattern which
  2.1096 +			itself includes transparent or semi-transparent parts.</p>
  2.1097 +	  	</dd>
  2.1098 +        <dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt>
  2.1099 +          <dd>
  2.1100 +			<p>This keyword represents the target element <i>rendered stroked</i>.</p>
  2.1101 +      <p>For svg this keyword represents the value of the <a>'stroke'</a>
  2.1102 +         on the target element for the filter effect.</p>
  2.1103 +      <p>For non-SVG cases <a>StrokePaint</a> generates a transparent black image. 
  2.1104 +        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span>
  2.1105 +      </p>
  2.1106 +			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
  2.1107 +	  		<p>The <a>StrokePaint</a> image has conceptually infinite extent.
  2.1108 +			Frequently this image is opaque everywhere, but it 
  2.1109 +			might not be if the "paint"
  2.1110 +			itself has alpha, as in the case of a gradient or pattern which
  2.1111 +			itself includes transparent or semi-transparent parts.
  2.1112 +			</p>
  2.1113 +		  </dd>
  2.1114 +        </dl>
  2.1115 +      <p><span class="anim-target">Animatable: yes.</span></p>
  2.1116 +	</dd>
  2.1117 +  </dl>
  2.1118 +</div>
  2.1119 +
  2.1120 +<h3 id="FilterPrimitiveSubRegion">Filter primitive subregion</h3>
  2.1121 +
  2.1122 +<edit:with element="feBlend">
  2.1123 +<p>
  2.1124 +All <a>filter primitives</a> have attributes <a>'x'</a>, <a>'y'</a>,
  2.1125 +<a>'width'</a> and <a>'height'</a>, and <a>'mx'</a>,
  2.1126 +<a>'my'</a>, <a>'mw'</a> and <a>'mh'</a>, which
  2.1127 +together identify a subregion which restricts calculation and rendering of
  2.1128 +the given <a>filter primitive</a>. The <a>'x'</a>, <a>'y'</a>,
  2.1129 +<a>'width'</a> and <a>'height'</a> attributes are defined
  2.1130 +according to the same rules as other <a>filter primitives</a>' coordinate and length
  2.1131 +attributes and thus represent values in the coordinate system established by
  2.1132 +attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element.
  2.1133 +The <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and
  2.1134 +<a>'mh'</a> attributes contain deltas to the corresponding
  2.1135 +<a>'x'</a>, <a>'y'</a>, <a>'width'</a> and
  2.1136 +<a>'height'</a> attributes and contain values in the coordinate
  2.1137 +system established by attribute <a>'filter/primitiveMarginUnits'</a> on the <a>'filter element'</a> element.
  2.1138 +</p>
  2.1139 +
  2.1140 +<p><a>'x'</a>, <a>'y'</a>,
  2.1141 +<a>'width'</a> and <a>'height'</a> default to the union (i.e., tightest fitting bounding
  2.1142 +box) of the subregions defined for all referenced nodes. If there are no
  2.1143 +referenced nodes (e.g., for <a>'feImage'</a> or <a>'feTurbulence'</a>), or one or more of the
  2.1144 +referenced nodes is a standard input (one of <a>SourceGraphic</a>, <a>SourceAlpha</a>, <a>BackgroundImage</a>, <a>BackgroundAlpha</a>,
  2.1145 +<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a
  2.1146 +href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for
  2.1147 +<a href="#feTileElement"><span class="element-name">'feTile'</span></a>
  2.1148 +(which is special because its principal function is to replicate the
  2.1149 +referenced node in X and Y and thereby produce a usually larger result), the
  2.1150 +default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the
  2.1151 +dimensions of the <a>filter region</a>.</p>
  2.1152 +
  2.1153 +<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>,
  2.1154 +<strong>height</strong> have been calculated for the filter primitive
  2.1155 +subregion the margin attributes <strong>mx</strong>, <strong>my</strong>,
  2.1156 +<strong>mw</strong>, <strong>mh</strong> are calculated and added to the
  2.1157 +former to make the <a>filter primitive subregion</a>. If the <a>filter primitive
  2.1158 +subregion</a> has a negative or zero width or height, the effect of the filter
  2.1159 +primitive is disabled. </p>
  2.1160 +
  2.1161 +<p>The <a>filter primitive subregion</a> act as a hard clip clipping rectangle for
  2.1162 +the filter primitive.</p>
  2.1163 +
  2.1164 +<p>All intermediate offscreens are defined to not exceed the intersection of
  2.1165 +the <a>filter primitive subregion</a> with the <a href="#FilterEffectsRegion">filter
  2.1166 +region</a>. The filter region and any of the filter primitive subregions are
  2.1167 +to be set up such that all offscreens are made big enough to accommodate any
  2.1168 +pixels which even partly intersect with either the filter region or the
  2.1169 +filter primitive subregions.</p>
  2.1170 +
  2.1171 +<p><a>'feTile'</a> references a previous filter primitive and then stitches the tiles together
  2.1172 +based on the <a>filter primitive subregion</a> of the referenced filter primitive in
  2.1173 +order to fill its own <a>filter primitive subregion</a>.</p>
  2.1174 +
  2.1175 +<edit:example href="examples/filtersubregion00.svg" image="yes" link="yes"/>
  2.1176 +
  2.1177 +<p>
  2.1178 +In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a>filter primitive subregion</a>. The filter output should be limited to the <a>filter primitive subregion</a>, so you should never see the circles themselves, just the rects that make up the <a>filter primitive subregion</a>. 
  2.1179 +</p>
  2.1180 +<ul>
  2.1181 +<li>
  2.1182 +The upper left rect shows an <a>'feFlood'</a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle.
  2.1183 +</li>
  2.1184 +<li>
  2.1185 +The lower left rect shows an <a>'feMerge'</a> that merges <a>SourceGraphic</a> with <a>FillPaint</a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle.
  2.1186 +</li>
  2.1187 +<li>The upper right rect shows an <a>'feBlend'</a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it.
  2.1188 +</li>
  2.1189 +</ul>
  2.1190 +
  2.1191 +</edit:with>
  2.1192 +
  2.1193 +<h2 id="LightSourceDefinitions">Light source elements and properties</h2>
  2.1194 +
  2.1195 +<h3 id="LightSourceIntro">Introduction</h3>
  2.1196 +
  2.1197 +<p>The following sections define the elements that define a light source, <a>'feDistantLight'</a>, 
  2.1198 +<a>'fePointLight'</a> and <a>'feSpotLight'</a>,
  2.1199 +and property <a>'lighting-color'</a>, which defines the color of the
  2.1200 +light.</p>
  2.1201 +
  2.1202 +<h3 id="feDistantLightElement">Light source <span class="element-name">'feDistantLight'</span></h3>
  2.1203 +
  2.1204 +<edit:elementsummary name='feDistantLight'/>
  2.1205 +
  2.1206 +<div class="adef-list">
  2.1207 +<p><em>Attribute definitions:</em></p>
  2.1208 +<dl>
  2.1209 +  <dt id="feDistantLightAzimuthAttribute"><span
  2.1210 +  class="adef">azimuth</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1211 +    <dd>Direction angle for the light source on the XY plane (clockwise), in
  2.1212 +      degrees.<br />
  2.1213 +      If the attribute is not specified, then the effect is as if a value of
  2.1214 +      <span class="attr-value">0</span> were specified.<br />
  2.1215 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1216 +  <dt id="feDistantLightElevationAttribute"><span
  2.1217 +  class="adef">elevation</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1218 +    <dd>Direction angle for the light source on the YZ plane, in degrees.<br
  2.1219 +      />
  2.1220 +      If the attribute is not specified, then the effect is as if a value of
  2.1221 +      <span class="attr-value">0</span> were specified.<br />
  2.1222 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1223 +</dl>
  2.1224 +</div>
  2.1225 +
  2.1226 +<h3 id="fePointLightElement">Light source <span class="element-name">'fePointLight'</span></h3>
  2.1227 +
  2.1228 +<edit:elementsummary name='fePointLight'/>
  2.1229 +
  2.1230 +<div class="adef-list">
  2.1231 +<p><em>Attribute definitions:</em></p>
  2.1232 +<dl>
  2.1233 +  <dt id="fePointLightXAttribute"><span
  2.1234 +  class="adef">x</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1235 +    <dd>X location for the light source in the coordinate system established
  2.1236 +      by attribute <a>'filter/primitiveUnits'</a> on the <a
  2.1237 +      href="#FilterElement"><span class="element-name">'filter'</span></a>
  2.1238 +      element.<br />
  2.1239 +      If the attribute is not specified, then the effect is as if a value of
  2.1240 +      <span class="attr-value">0</span> were specified.<br />
  2.1241 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1242 +  <dt id="fePointLightYAttribute"><span
  2.1243 +  class="adef">y</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1244 +    <dd>Y location for the light source in the coordinate system established
  2.1245 +      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.1246 +      element.<br />
  2.1247 +      If the attribute is not specified, then the effect is as if a value of
  2.1248 +      <span class="attr-value">0</span> were specified.<br />
  2.1249 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1250 +  <dt id="fePointLightZAttribute"><span
  2.1251 +  class="adef">z</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1252 +    <dd>Z location for the light source in the coordinate system established
  2.1253 +      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.1254 +      element, assuming that, in the <a>initial coordinate system</a>
  2.1255 +      , the positive Z-axis comes out towards the person viewing the content
  2.1256 +      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br />
  2.1257 +      If the attribute is not specified, then the effect is as if a value of
  2.1258 +      <span class="attr-value">0</span> were specified.<br />
  2.1259 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1260 +</dl>
  2.1261 +</div>
  2.1262 +
  2.1263 +<h3 id="feSpotLightElement">Light source <span class="element-name">'feSpotLight'</span></h3>
  2.1264 +
  2.1265 +<edit:elementsummary name='feSpotLight'/>
  2.1266 +
  2.1267 +<div class="adef-list">
  2.1268 +<p><em>Attribute definitions:</em></p>
  2.1269 +<dl>
  2.1270 +  <dt id="feSpotLightXAttribute"><span
  2.1271 +  class="adef">x</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1272 +    <dd>X location for the light source in the coordinate system established
  2.1273 +      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.1274 +      element.<br />
  2.1275 +      If the attribute is not specified, then the effect is as if a value of
  2.1276 +      <span class="attr-value">0</span> were specified.<br />
  2.1277 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1278 +  <dt id="feSpotLightYAttribute"><span
  2.1279 +  class="adef">y</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1280 +    <dd>Y location for the light source in the coordinate system established
  2.1281 +      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.1282 +      element.<br />
  2.1283 +      If the attribute is not specified, then the effect is as if a value of
  2.1284 +      <span class="attr-value">0</span> were specified.<br />
  2.1285 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1286 +  <dt id="feSpotLightZAttribute"><span
  2.1287 +  class="adef">z</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1288 +    <dd>Z location for the light source in the coordinate system established
  2.1289 +      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.1290 +      element, assuming that, in the <a>initial coordinate system</a>
  2.1291 +      , the positive Z-axis comes out towards the person viewing the content
  2.1292 +      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br />
  2.1293 +      If the attribute is not specified, then the effect is as if a value of
  2.1294 +      <span class="attr-value">0</span> were specified.<br />
  2.1295 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1296 +  <dt id="feSpotLightPointsAtXAttribute"><span
  2.1297 +  class="adef">pointsAtX</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1298 +    <dd>X location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 
  2.1299 +    	on the <a>'filter element'</a>
  2.1300 +      element of the point at which the light source is pointing.<br />
  2.1301 +      If the attribute is not specified, then the effect is as if a value of
  2.1302 +      <span class="attr-value">0</span> were specified.<br />
  2.1303 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1304 +  <dt id="feSpotLightPointsAtYAttribute"><span
  2.1305 +  class="adef">pointsAtY</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1306 +    <dd>Y location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 
  2.1307 +    	on the <a>'filter element'</a> element of the point at which the light source is pointing.<br />
  2.1308 +      If the attribute is not specified, then the effect is as if a value of
  2.1309 +      <span class="attr-value">0</span> were specified.<br />
  2.1310 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1311 +  <dt id="feSpotLightPointsAtZAttribute"><span
  2.1312 +  class="adef">pointsAtZ</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1313 +    <dd>Z location in the coordinate system established by the
  2.1314 +		    attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element of
  2.1315 +		    the point at which the light source is pointing, assuming that, in the
  2.1316 +    		<a>initial coordinate system</a>, the positive Z-axis comes out
  2.1317 +         towards the person viewing the content and assuming that
  2.1318 +         one unit along the Z-axis equals 
  2.1319 +         <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">
  2.1320 +         one unit in X and Y</a>.<br />
  2.1321 +      If the attribute is not specified, then the effect is as if a value of
  2.1322 +      <span class="attr-value">0</span> were specified.<br />
  2.1323 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1324 +  <dt id="feSpotLightSpecularExponentAttribute"><span
  2.1325 +  class="adef">specularExponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1326 +    <dd>Exponent value controlling the focus for the light source.<br />
  2.1327 +      If the attribute is not specified, then the effect is as if a value of
  2.1328 +      <span class="attr-value">1</span> were specified.<br />
  2.1329 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1330 +  <dt id="feSpotLightLimitingConeAngleAttribute"><span
  2.1331 +  class="adef">limitingConeAngle</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1332 +    <dd>A limiting cone which restricts the region where the light is
  2.1333 +      projected. No light is projected outside the cone. <span
  2.1334 +      class="attr-name">limitingConeAngle</span> represents the angle in degrees between
  2.1335 +      the spot light axis (i.e. the axis between the light source and the
  2.1336 +      point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents
  2.1337 +      should apply a smoothing technique such as anti-aliasing at the
  2.1338 +      boundary of the cone.</span><br />
  2.1339 +      If no value is specified, then no limiting cone will be applied.<br />
  2.1340 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1341 +</dl>
  2.1342 +</div>
  2.1343 +
  2.1344 +<h3 id="LightingColorProperty">The <span class="prop-name">'lighting-color'</span> property</h3>
  2.1345 +
  2.1346 +<p>The <a>'lighting-color'</a> property defines the
  2.1347 +color of the light source for <a>filter primitives</a> <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>.</p>
  2.1348 +
  2.1349 +<div class="propdef">
  2.1350 +<dl>
  2.1351 +  <dt><span class="index-def" title="'margin-top'"><a
  2.1352 +  id="propdef-lighting-color" name="propdef-lighting-color"
  2.1353 +  class="propdef-title"><span
  2.1354 +  class="prop-name">'lighting-color'</span></a></span></dt>
  2.1355 +    <dd>
  2.1356 +      <table summary="lighting-color property" class="propinfo"
  2.1357 +      cellspacing="0" cellpadding="0">
  2.1358 +        <tbody>
  2.1359 +          <tr valign="baseline">
  2.1360 +            <td><em>Value:</em>  </td>
  2.1361 +            <td>currentColor |<br />
  2.1362 +              <a>&lt;color&gt;</a>
  2.1363 +              [<a>&lt;icccolor&gt;</a>] |<br />
  2.1364 +              <a class="noxref"
  2.1365 +              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
  2.1366 +              class="value-inst-inherit noxref">inherit</span></a></td>
  2.1367 +          </tr>
  2.1368 +          <tr valign="baseline">
  2.1369 +            <td><em>Initial:</em>  </td>
  2.1370 +            <td>white</td>
  2.1371 +          </tr>
  2.1372 +          <tr valign="baseline">
  2.1373 +            <td><em>Applies to:</em>  </td>
  2.1374 +            <td><a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>
  2.1375 +            elements</td>
  2.1376 +          </tr>
  2.1377 +          <tr valign="baseline">
  2.1378 +            <td><em>Inherited:</em>  </td>
  2.1379 +            <td>no</td>
  2.1380 +          </tr>
  2.1381 +          <tr valign="baseline">
  2.1382 +            <td><em>Percentages:</em>  </td>
  2.1383 +            <td>N/A</td>
  2.1384 +          </tr>
  2.1385 +          <tr valign="baseline">
  2.1386 +            <td><em>Media:</em>  </td>
  2.1387 +            <td>visual</td>
  2.1388 +          </tr>
  2.1389 +          <tr valign="baseline">
  2.1390 +            <td><em>Animatable:</em>  </td>
  2.1391 +            <td>yes</td>
  2.1392 +          </tr>
  2.1393 +        </tbody>
  2.1394 +      </table>
  2.1395 +    </dd>
  2.1396 +</dl>
  2.1397 +</div>
  2.1398 +
  2.1399 +<h2 id="feBlendElement">Filter primitive <span class="element-name">'feBlend'</span></h2>
  2.1400 +
  2.1401 +<edit:elementsummary name='feBlend'/>
  2.1402 +
  2.1403 +<p>This filter composites two objects together using commonly used imaging
  2.1404 +software blending modes. It performs a pixel-wise combination of two input
  2.1405 +images.</p>
  2.1406 +
  2.1407 +<div class="adef-list">
  2.1408 +<p><em>Attribute definitions:</em></p>
  2.1409 +<dl>
  2.1410 +  <dt id="feBlendModeAttribute"><span
  2.1411 +  class="adef">mode</span> = "<em>normal | multiply | screen | darken |
  2.1412 +  lighten</em>"</dt>
  2.1413 +    <dd>One of the image blending modes (see <a
  2.1414 +      href="#BlendingTable">table</a> below). Default is: normal.<br />
  2.1415 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1416 +  <dt id="feBlendIn2Attribute"><span
  2.1417 +  class="adef">in2</span> = "<em>(see <a
  2.1418 +  href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
  2.1419 +  attribute)</em>"</dt>
  2.1420 +    <dd>The second input image to the blending operation. This attribute can
  2.1421 +      take on the same values as the <a
  2.1422 +      href="#FilterPrimitiveInAttribute"><span
  2.1423 +      class="attr-name">in</span></a> attribute.<br />
  2.1424 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1425 +</dl>
  2.1426 +</div>
  2.1427 +
  2.1428 +<p>For all feBlend modes, the result opacity is computed as follows:</p>
  2.1429 +<pre>qr = 1 - (1-qa)*(1-qb)</pre>
  2.1430 +
  2.1431 +<p>For the compositing formulas below, the following definitions apply:</p>
  2.1432 +<pre>image A = in
  2.1433 +image B = in2
  2.1434 +cr = Result color (RGB) - premultiplied 
  2.1435 +qa = Opacity value at a given pixel for image A 
  2.1436 +qb = Opacity value at a given pixel for image B 
  2.1437 +ca = Color (RGB) at a given pixel for image A - premultiplied 
  2.1438 +cb = Color (RGB) at a given pixel for image B - premultiplied </pre>
  2.1439 +
  2.1440 +<p id="BlendingTable">The following table
  2.1441 +provides the list of available image blending modes:</p>
  2.1442 +
  2.1443 +<div class="note-editor">
  2.1444 +ED: make table look nicer</div>
  2.1445 +
  2.1446 +<table summary="blending modes" width="500" border="1">
  2.1447 +  <tbody>
  2.1448 +    <tr>
  2.1449 +      <td>Image Blending Mode</td>
  2.1450 +      <td>Formula for computing result color</td>
  2.1451 +    </tr>
  2.1452 +    <tr>
  2.1453 +      <td>normal</td>
  2.1454 +      <td>cr = (1 - qa) * cb + ca</td>
  2.1455 +    </tr>
  2.1456 +    <tr>
  2.1457 +      <td>multiply</td>
  2.1458 +      <td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td>
  2.1459 +    </tr>
  2.1460 +    <tr>
  2.1461 +      <td>screen</td>
  2.1462 +      <td>cr = cb + ca - ca * cb</td>
  2.1463 +    </tr>
  2.1464 +    <tr>
  2.1465 +      <td>darken</td>
  2.1466 +      <td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td>
  2.1467 +    </tr>
  2.1468 +    <tr>
  2.1469 +      <td>lighten</td>
  2.1470 +      <td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td>
  2.1471 +    </tr>
  2.1472 +  </tbody>
  2.1473 +</table>
  2.1474 +
  2.1475 +<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a
  2.1476 +href="#feCompositeOperatorAttribute"><span
  2.1477 +class="attr-value">operator="over"</span></a> on the <a>'feComposite'</a>
  2.1478 +filter primitive, matches the blending method used by <a>'feMerge'</a> and matches
  2.1479 +the <a>simple alpha compositing</a> technique used in SVG for all compositing outside of filter effects.</p>
  2.1480 +
  2.1481 +<edit:example href="examples/feBlend.svg" image="yes" link="yes"/>
  2.1482 +
  2.1483 +<h2 id="feColorMatrixElement">Filter primitive <span class="element-name">'feColorMatrix'</span></h2>
  2.1484 +
  2.1485 +<edit:elementsummary name='feColorMatrix'/>
  2.1486 +
  2.1487 +<p>This filter applies a matrix transformation:</p>
  2.1488 +<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140">
  2.1489 +<pre>| R' |     | a00 a01 a02 a03 a04 |   | R |
  2.1490 +| G' |     | a10 a11 a12 a13 a14 |   | G |
  2.1491 +| B' |  =  | a20 a21 a22 a23 a24 | * | B |
  2.1492 +| A' |     | a30 a31 a32 a33 a34 |   | A |
  2.1493 +| 1  |     |  0   0   0   0   1  |   | 1 |</pre>
  2.1494 +</object>
  2.1495 +
  2.1496 +<p>on the RGBA color and alpha values of every pixel on the input graphics to
  2.1497 +produce a result with a new set of RGBA color and alpha values.</p>
  2.1498 +
  2.1499 +<p>The calculations are performed on non-premultiplied color values. If the
  2.1500 +input graphics consists of premultiplied color values, those values are
  2.1501 +automatically converted into non-premultiplied color values for this
  2.1502 +operation.</p>
  2.1503 +
  2.1504 +<p>These matrices often perform an identity mapping in the alpha channel. If
  2.1505 +that is the case, an implementation can avoid the costly undoing and redoing
  2.1506 +of the premultiplication for all pixels with A = 1.</p>
  2.1507 +
  2.1508 +<div class="adef-list">
  2.1509 +<p><em>Attribute definitions:</em></p>
  2.1510 +<dl>
  2.1511 +  <dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> =
  2.1512 +  "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt>
  2.1513 +    <dd>Indicates the type of matrix operation. The keyword <span
  2.1514 +      class="attr-name">matrix</span> indicates that a full 5x4 matrix of
  2.1515 +      values will be provided. The other keywords represent convenience
  2.1516 +      shortcuts to allow commonly used color operations to be performed
  2.1517 +      without specifying a complete matrix.<br />
  2.1518 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1519 +  <dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> =
  2.1520 +  "<em>list of <a>&lt;number&gt;</a>s</em>"</dt>
  2.1521 +    <dd>The contents of <span class="attr-name">values</span> depends on the
  2.1522 +      value of attribute <a href="#feColorMatrixTypeAttribute"><span
  2.1523 +      class="attr-name">type</span></a>: 
  2.1524 +      <ul>
  2.1525 +        <li>For <span class="attr-value">type="matrix"</span>, <span
  2.1526 +          class="attr-name">values</span> is a list of 20 matrix values (a00
  2.1527 +          a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a
  2.1528 +          comma. For example, the identity matrix could be expressed as: 
  2.1529 +          <pre>type="matrix" 
  2.1530 +values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"</pre>
  2.1531 +        </li>
  2.1532 +        <li>For <span class="attr-value">type="saturate"</span>, <span
  2.1533 +          class="attr-name">values</span> is a single real number value (0 to
  2.1534 +          1). A <span class="attr-value">saturate</span> operation is
  2.1535 +          equivalent to the following matrix operation: 
  2.1536 +		  <p>
  2.1537 +		  <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130">
  2.1538 +          <pre>| R' |     |0.213+0.787s  0.715-0.715s  0.072-0.072s 0  0 |   | R |
  2.1539 +| G' |     |0.213-0.213s  0.715+0.285s  0.072-0.072s 0  0 |   | G |
  2.1540 +| B' |  =  |0.213-0.213s  0.715-0.715s  0.072+0.928s 0  0 | * | B |
  2.1541 +| A' |     |           0            0             0  1  0 |   | A |
  2.1542 +| 1  |     |           0            0             0  0  1 |   | 1 |</pre>
  2.1543 +		  </object>
  2.1544 +		</p>
  2.1545 +        </li>
  2.1546 +        <li>For <span class="attr-value">type="hueRotate"</span>, <span
  2.1547 +          class="attr-name">values</span> is a single one real number value
  2.1548 +          (degrees). A <span class="attr-value">hueRotate</span> operation is
  2.1549 +          equivalent to the following matrix operation: 
  2.1550 +		  <p>
  2.1551 +		  <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130">
  2.1552 +          <pre>| R' |     | a00  a01  a02  0  0 |   | R |
  2.1553 +| G' |     | a10  a11  a12  0  0 |   | G |
  2.1554 +| B' |  =  | a20  a21  a22  0  0 | * | B |
  2.1555 +| A' |     | 0    0    0    1  0 |   | A |
  2.1556 +| 1  |     | 0    0    0    0  1 |   | 1 |</pre>
  2.1557 +		</object>
  2.1558 +		</p>
  2.1559 +
  2.1560 +          where the terms a00, a01, etc. are calculated as follows: 
  2.1561 +		  <p>
  2.1562 +		<object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230">
  2.1563 +          <pre>| a00 a01 a02 |    [+0.213 +0.715 +0.072]
  2.1564 +| a10 a11 a12 | =  [+0.213 +0.715 +0.072] +
  2.1565 +| a20 a21 a22 |    [+0.213 +0.715 +0.072]
  2.1566 +                        [+0.787 -0.715 -0.072]
  2.1567 +cos(hueRotate value) *  [-0.213 +0.285 -0.072] +
  2.1568 +                        [-0.213 -0.715 +0.928]
  2.1569 +                        [-0.213 -0.715+0.928]
  2.1570 +sin(hueRotate value) *  [+0.143 +0.140-0.283]
  2.1571 +                        [-0.787 +0.715+0.072]</pre>
  2.1572 +		</object>
  2.1573 +		</p>
  2.1574 +          Thus, the upper left term of the hue matrix turns out to be:
  2.1575 +		  <p>
  2.1576 +		<object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 
  2.1577 +          <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre>
  2.1578 +		  </object>
  2.1579 +		  </p>
  2.1580 +
  2.1581 +        </li>
  2.1582 +        <li>For <span class="attr-value">type="luminanceToAlpha"</span>,
  2.1583 +          <span class="attr-name">values</span> is not applicable. A <span
  2.1584 +          class="attr-value">luminanceToAlpha</span> operation is equivalent
  2.1585 +          to the following matrix operation: 
  2.1586 +		  <p>
  2.1587 +		  <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130">
  2.1588 +          <pre>   | R' |     |      0        0        0  0  0 |   | R |
  2.1589 +   | G' |     |      0        0        0  0  0 |   | G |
  2.1590 +   | B' |  =  |      0        0        0  0  0 | * | B |
  2.1591 +   | A' |     | 0.2125   0.7154   0.0721  0  0 |   | A |
  2.1592 +   | 1  |     |      0        0        0  0  1 |   | 1 |</pre>
  2.1593 +   </object>
  2.1594 +   </p>
  2.1595 +	      </li>
  2.1596 +      </ul>
  2.1597 +      If the attribute is not specified, then the default behavior depends on
  2.1598 +      the value of attribute <a>'feColorMatrix/type'</a>. If <span
  2.1599 +      class="attr-value">type="matrix"</span>, then this attribute defaults
  2.1600 +      to the identity matrix. If <span
  2.1601 +      class="attr-value">type="saturate"</span>, then this attribute defaults
  2.1602 +      to the value <span class="attr-value">1</span>, which results in the
  2.1603 +      identify matrix. If <span class="attr-value">type="hueRotate"</span>,
  2.1604 +      then this attribute defaults to the value <span
  2.1605 +      class="attr-value">0</span>, which results in the identify matrix.<br />
  2.1606 +      <span class="anim-target">Animatable: yes.</span> </dd>
  2.1607 +</dl>
  2.1608 +</div>
  2.1609 +
  2.1610 +<edit:example href="examples/feColorMatrix.svg" image="yes" link="yes"/>
  2.1611 +
  2.1612 +<h2 id="feComponentTransferElement">Filter primitive <span class="element-name">'feComponentTransfer'</span></h2>
  2.1613 +
  2.1614 +<edit:elementsummary name='feComponentTransfer'/>
  2.1615 +
  2.1616 +<p>This filter primitive performs component-wise remapping of data as
  2.1617 +follows:</p>
  2.1618 +<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R )
  2.1619 +G' = <a href="#feFuncGElement">feFuncG</a>( G )
  2.1620 +B' = <a href="#feFuncBElement">feFuncB</a>( B )
  2.1621 +A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre>
  2.1622 +
  2.1623 +<p>for every pixel. It allows operations like brightness adjustment, contrast
  2.1624 +adjustment, color balance or thresholding.</p>
  2.1625 +
  2.1626 +<p>The calculations are performed on non-premultiplied color values. If the
  2.1627 +input graphics consists of premultiplied color values, those values are
  2.1628 +automatically converted into non-premultiplied color values for this
  2.1629 +operation. (Note that the undoing and redoing of the premultiplication can be
  2.1630 +avoided if <a>'feFuncA'</a> is the identity transform
  2.1631 +and all alpha values on the source graphic are set to 1.)</p>
  2.1632 +
  2.1633 +<p>The child elements of a <a>'feComponentTransfer'</a> element specify the
  2.1634 +transfer functions for the four channels:</p>
  2.1635 +
  2.1636 +<ul id="transferFuncElements">
  2.1637 +  <li><a>'feFuncR'</a> — transfer function for the red component of the input graphic</li> 
  2.1638 +  <li><a>'feFuncG'</a> — transfer function for the green component of the input graphic</li> 
  2.1639 +  <li><a>'feFuncB'</a> — transfer function for the blue component of the input graphic</li> 
  2.1640 +  <li><a>'feFuncA'</a> — transfer function for the alpha component of the input graphic</li> 
  2.1641 +</ul>
  2.1642 +
  2.1643 +<p>The following rules apply to the processing of the <a>'feComponentTransfer'</a> element:</p>
  2.1644 +<ul>
  2.1645 +	<li>If more than one <a>transfer function element</a> of the same kind is specified, the last occurrence is to be used.</li>
  2.1646 +	<li>If any of the <a>transfer function elements</a> are unspecified, the <a>'feComponentTransfer'</a> must be processed as if those <a>transfer function elements</a> were specified with their <a>'type'</a> attributes set to <span class="attr-value">'identity'</span>.</li>
  2.1647 +</ul>
  2.1648 +	
  2.1649 +<edit:with element='feFuncR'>
  2.1650 +
  2.1651 +<div id='feFuncRElement'>
  2.1652 +<edit:elementsummary name='feFuncR'/>
  2.1653 +</div>
  2.1654 +
  2.1655 +<div id='feFuncGElement'>
  2.1656 +<edit:elementsummary name='feFuncG'/>
  2.1657 +</div>
  2.1658 +
  2.1659 +<div id='feFuncBElement'>
  2.1660 +<edit:elementsummary name='feFuncB'/>
  2.1661 +</div>
  2.1662 +
  2.1663 +<div id='feFuncAElement'>
  2.1664 +<edit:elementsummary name='feFuncA'/>
  2.1665 +</div>
  2.1666 +
  2.1667 +<p id="TransferFunctionElementAttributes">The attributes below are the
  2.1668 +<span class='SVG-TermDefine'>transfer function element attributes</span>,
  2.1669 +which apply to the <a>transfer function elements</a>.</p>
  2.1670 +
  2.1671 +<div class="adef-list">
  2.1672 +<p><em>Attribute definitions:</em></p>
  2.1673 +<dl>
  2.1674 +  <dt id="feComponentTransferTypeAttribute"><span class="adef">type</span>
  2.1675 +  = "<em>identity | table | discrete | linear | gamma</em>"</dt>
  2.1676 +    <dd><p>Indicates the type of component transfer function. The type of
  2.1677 +      function determines the applicability of the other attributes.</p>
  2.1678 +      <ul>
  2.1679 +        <li>For <span class="attr-value">identity</span>: 
  2.1680 +          <pre>C' = C</pre>
  2.1681 +        </li>
  2.1682 +        <li>For <span class="attr-value">table</span>, the function is
  2.1683 +          defined by linear interpolation into a lookup table by attribute <a
  2.1684 +          href="#feComponentTransferTableValuesAttribute"><span
  2.1685 +          class="attr-name">tableValues</span></a>, which provides a list of
  2.1686 +          <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order
  2.1687 +          to identify <em>n</em> interpolation ranges. Interpolations use the
  2.1688 +          following formula. 
  2.1689 +          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
  2.1690 +          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
  2.1691 +          <p>The result <code>C'</code> is given by:</p>
  2.1692 +          <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N *
  2.1693 +          (v<sub>k+1</sub> - v<sub>k</sub>)</p>
  2.1694 +        </li>
  2.1695 +        <li>For <span class="attr-value">discrete</span>, the function is
  2.1696 +          defined by the step function defined by attribute <a
  2.1697 +          href="#feComponentTransferTableValuesAttribute"><span
  2.1698 +          class="attr-name">tableValues</span></a>, which provides a list of
  2.1699 +          <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order
  2.1700 +          to identify a step function consisting of <em>n</em> steps. The
  2.1701 +          step function is defined by the following formula. 
  2.1702 +          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
  2.1703 +          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
  2.1704 +          <p>The result <code>C'</code> is given by:</p>
  2.1705 +          <p class="filterformula">C' = v<sub>k</sub></p>
  2.1706 +        </li>
  2.1707 +        <li>For <span class="attr-value">linear</span>, the function is
  2.1708 +          defined by the following linear equation: 
  2.1709 +          <p class="filterformula">C' = <a
  2.1710 +          href="#feComponentTransferSlopeAttribute"><span
  2.1711 +          class="attr-name">slope</span></a> * C + <a
  2.1712 +          href="#feComponentTransferInterceptAttribute"><span
  2.1713 +          class="attr-name">intercept</span></a></p>
  2.1714 +        </li>
  2.1715 +        <li>For <span class="attr-value">gamma</span>, the function is
  2.1716 +          defined by the following exponential function: 
  2.1717 +          <p class="filterformula">C' = <a
  2.1718 +          href="#feComponentTransferAmplitudeAttribute"><span
  2.1719 +          class="attr-name">amplitude</span></a> * pow(C, <a
  2.1720 +          href="#feComponentTransferExponentAttribute"><span
  2.1721 +          class="attr-name">exponent</span></a>) + <a
  2.1722 +          href="#feComponentTransferOffsetAttribute"><span
  2.1723 +          class="attr-name">offset</span></a></p>
  2.1724 +        </li>
  2.1725 +      </ul>
  2.1726 +      <span class="anim-target">Animatable: yes.</span> </dd>
  2.1727 +  <dt id="feComponentTransferTableValuesAttribute"><span
  2.1728 +  class="adef">tableValues</span> = "<em>(list of <a>&lt;number&gt;</a>s)</em>"</dt>
  2.1729 +    <dd>When <span class="attr-value">type="table"</span>, the list of
  2.1730 +      <a>&lt;number&gt;</a>
  2.1731 +      s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which
  2.1732 +      define the lookup table. An empty list results in an identity transfer
  2.1733 +      function. If the attribute is not specified, then the effect is as if
  2.1734 +      an empty list were provided.<br />
  2.1735 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1736 +  <dt id="feComponentTransferSlopeAttribute"><span
  2.1737 +  class="adef">slope</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1738 +    <dd>When <span class="attr-value">type="linear"</span>, the slope of the
  2.1739 +      linear function.<br />
  2.1740 +      If the attribute is not specified, then the effect is as if a value of
  2.1741 +      <span class="attr-value">1</span> were specified.<br />
  2.1742 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1743 +  <dt id="feComponentTransferInterceptAttribute"><span
  2.1744 +  class="adef">intercept</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1745 +    <dd>When <span class="attr-value">type="linear"</span>, the intercept of
  2.1746 +      the linear function.<br />
  2.1747 +      If the attribute is not specified, then the effect is as if a value of
  2.1748 +      <span class="attr-value">0</span> were specified.<br />
  2.1749 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1750 +  <dt id="feComponentTransferAmplitudeAttribute"><span
  2.1751 +  class="adef">amplitude</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1752 +    <dd>When <span class="attr-value">type="gamma"</span>, the amplitude of
  2.1753 +      the gamma function.<br />
  2.1754 +      If the attribute is not specified, then the effect is as if a value of
  2.1755 +      <span class="attr-value">1</span> were specified.<br />
  2.1756 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1757 +  <dt id="feComponentTransferExponentAttribute"><span
  2.1758 +  class="adef">exponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1759 +    <dd>When <span class="attr-value">type="gamma"</span>, the exponent of
  2.1760 +      the gamma function.<br />
  2.1761 +      If the attribute is not specified, then the effect is as if a value of
  2.1762 +      <span class="attr-value">1</span> were specified.<br />
  2.1763 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1764 +  <dt id="feComponentTransferOffsetAttribute"><span
  2.1765 +  class="adef">offset</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1766 +    <dd>When <span class="attr-value">type="gamma"</span>, the offset of the
  2.1767 +      gamma function.<br />
  2.1768 +      If the attribute is not specified, then the effect is as if a value of
  2.1769 +      <span class="attr-value">0</span> were specified.<br />
  2.1770 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1771 +</dl>
  2.1772 +</div>
  2.1773 +</edit:with>
  2.1774 +
  2.1775 +<edit:example href="examples/feComponentTransfer.svg" image="yes" link="yes"/>
  2.1776 +
  2.1777 +<h2 id="feCompositeElement">Filter primitive <span class="element-name">'feComposite'</span></h2>
  2.1778 +
  2.1779 +<edit:elementsummary name='feComposite'/>
  2.1780 +
  2.1781 +<p>This filter performs the combination of the two input images pixel-wise in
  2.1782 +image space using one of the Porter-Duff [<a
  2.1783 +href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in,
  2.1784 +atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em>
  2.1785 +operation (with the result clamped between [0..1]) can be applied.</p>
  2.1786 +
  2.1787 +<p>The <em>arithmetic</em> operation is useful for combining the output from
  2.1788 +the <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> filters with texture
  2.1789 +data. It is also useful for implementing <em>dissolve</em>. If the
  2.1790 +<em>arithmetic</em> operation is chosen, each result pixel is computed using
  2.1791 +the following formula:</p>
  2.1792 +<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre>
  2.1793 +
  2.1794 +<p>For this filter primitive, the extent of the resulting image might grow as
  2.1795 +described in the section that describes the <a
  2.1796 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
  2.1797 +
  2.1798 +<div class="adef-list">
  2.1799 +<p><em>Attribute definitions:</em></p>
  2.1800 +<dl>
  2.1801 +  <dt id="feCompositeOperatorAttribute"><span class="adef">operator</span>
  2.1802 +  = "<em>over | in | out | atop | xor | arithmetic</em>"</dt>
  2.1803 +    <dd>The compositing operation that is to be performed. All of the <span
  2.1804 +      class="attr-name">operator</span> types except <span
  2.1805 +      class="attr-value">arithmetic</span> match the correspond operation as
  2.1806 +      described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span
  2.1807 +      class="attr-value">arithmetic</span> operator is described above.<br />
  2.1808 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1809 +  <dt id="feCompositeK1Attribute"><span
  2.1810 +  class="adef">k1</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1811 +    <dd>Only applicable if <span
  2.1812 +      class="attr-value">operator="arithmetic"</span>.<br />
  2.1813 +      If the attribute is not specified, the effect is as if a value of "0"
  2.1814 +      were specified.<br />
  2.1815 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1816 +  <dt id="feCompositeK2Attribute"><span
  2.1817 +  class="adef">k2</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1818 +    <dd>Only applicable if <span
  2.1819 +      class="attr-value">operator="arithmetic"</span>.<br />
  2.1820 +      If the attribute is not specified, the effect is as if a value of "0"
  2.1821 +      were specified.<br />
  2.1822 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1823 +  <dt id="feCompositeK3Attribute"><span
  2.1824 +  class="adef">k3</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1825 +    <dd>Only applicable if <span
  2.1826 +      class="attr-value">operator="arithmetic"</span>.<br />
  2.1827 +      If the attribute is not specified, the effect is as if a value of "0"
  2.1828 +      were specified.<br />
  2.1829 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1830 +  <dt id="feCompositeK4Attribute"><span
  2.1831 +  class="adef">k4</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.1832 +    <dd>Only applicable if <span
  2.1833 +      class="attr-value">operator="arithmetic"</span>.<br />
  2.1834 +      If the attribute is not specified, the effect is as if a value of "0"
  2.1835 +      were specified.<br />
  2.1836 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1837 +  <dt id="feCompositeIn2Attribute">
  2.1838 +  <span class="adef">in2</span> = "<em>(see <a
  2.1839 +  href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
  2.1840 +  attribute)</em>"</dt>
  2.1841 +    <dd>The second input image to the compositing operation. This attribute
  2.1842 +      can take on the same values as the <a
  2.1843 +      href="#FilterPrimitiveInAttribute"><span
  2.1844 +      class="attr-name">in</span></a> attribute.<br />
  2.1845 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1846 +</dl>
  2.1847 +</div>
  2.1848 +
  2.1849 +<edit:example href="examples/feComposite.svg" image="yes" link="yes"/>
  2.1850 +
  2.1851 +<h2 id="feConvolveMatrixElement">Filter primitive <span class="element-name">'feConvolveMatrix'</span></h2>
  2.1852 +
  2.1853 +<edit:elementsummary name='feConvolveMatrix'/>
  2.1854 +<edit:with element='feConvolveMatrix'>
  2.1855 +
  2.1856 +<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution
  2.1857 +combines pixels in the input image with neighboring pixels to produce a
  2.1858 +resulting image. A wide variety of imaging operations can be achieved through
  2.1859 +convolutions, including blurring, edge detection, sharpening, embossing and
  2.1860 +beveling.</p>
  2.1861 +
  2.1862 +<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel)
  2.1863 +which describes how a given pixel value in the input image is combined with
  2.1864 +its neighboring pixel values to produce a resulting pixel value. Each result
  2.1865 +pixel is determined by applying the kernel matrix to the corresponding source
  2.1866 +pixel and its neighboring pixels. The basic convolution formula which is
  2.1867 +applied to each color value for a given pixel is:</p>
  2.1868 +
  2.1869 +<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br />
  2.1870 +              SUM <sub>I=0 to [<a
  2.1871 +href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br />
  2.1872 +                SUM <sub>J=0 to [<a
  2.1873 +href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br />
  2.1874 +                  SOURCE <sub>X-<a>'targetX'</a>+J, Y-<a>'targetY'</a>+I</sub> *  <a>'kernelMatrix'</a><sub><a
  2.1875 +href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1,  <a 
  2.1876 +href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br />
  2.1877 +                } <br />
  2.1878 +              } <br />
  2.1879 +            ) /  <a>'divisor'</a> +  <a>'bias'</a><br />
  2.1880 +</p>
  2.1881 +
  2.1882 +<div class="note-editor">
  2.1883 +ED: Consider making this into mathml</div>
  2.1884 +
  2.1885 +<p>where "orderX" and "orderY" represent the X and Y values for the <a>'order'</a> attribute, "targetX" represents the value
  2.1886 +of the <a>'targetX'</a> attribute, "targetY" represents the
  2.1887 +value of the <a>'targetY'</a> attribute, "kernelMatrix" represents the
  2.1888 +value of the <a>'kernelMatrix'</a> attribute, "divisor" represents the
  2.1889 +value of the <a>'divisor'</a> attribute, and "bias" represents the
  2.1890 +value of the <a>'bias'</a> attribute.</p>
  2.1891 +
  2.1892 +<p>Note in the above formulas that the values in the kernel matrix are
  2.1893 +applied such that the kernel matrix is rotated 180 degrees relative to the
  2.1894 +source and destination images in order to match convolution theory as
  2.1895 +described in many computer graphics textbooks.</p>
  2.1896 +
  2.1897 +<p>To illustrate, suppose you have a input image which is 5 pixels by 5
  2.1898 +pixels, whose color values for one of the color channels are as follows:</p>
  2.1899 +<pre>    0  20  40 235 235
  2.1900 +  100 120 140 235 235
  2.1901 +  200 220 240 235 235
  2.1902 +  225 225 255 255 255
  2.1903 +  225 225 255 255 255</pre>
  2.1904 +
  2.1905 +<div class="note-editor">
  2.1906 +ED: Consider making this into mathml</div>
  2.1907 +
  2.1908 +<p>and you define a 3-by-3 convolution kernel as follows:</p>
  2.1909 +<pre>  1 2 3
  2.1910 +  4 5 6
  2.1911 +  7 8 9</pre>
  2.1912 +
  2.1913 +<div class="note-editor">
  2.1914 +ED: Consider making this into mathml</div>
  2.1915 +
  2.1916 +<p>Let's focus on the color value at the second row and second column of the
  2.1917 +image (source pixel value is 120). Assuming the simplest case (where the
  2.1918 +input image's pixel grid aligns perfectly with the kernel's pixel grid) and
  2.1919 +assuming default values for attributes <a>'divisor'</a>, <a>'targetX'</a> and
  2.1920 +<a>'targetY'</a>, then resulting color value will
  2.1921 +be:</p>
  2.1922 +<pre>(9*  0 + 8* 20 + 7* 40 +
  2.1923 +6*100 + 5*120 + 4*140 +
  2.1924 +3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre>
  2.1925 +
  2.1926 +<div class="note-editor">
  2.1927 +ED: Consider making this into mathml</div>
  2.1928 +
  2.1929 +<p>Because they operate on pixels, matrix convolutions are inherently
  2.1930 +resolution-dependent. To make <a>'feConvolveMatrix'</a> produce resolution-independent
  2.1931 +results, an explicit value should be provided for either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element
  2.1932 +and/or attribute <a>'kernelUnitLength'</a>.</p>
  2.1933 +
  2.1934 +<p><a>'kernelUnitLength'</a>, in combination with the other
  2.1935 +attributes, defines an implicit pixel grid in the filter effects coordinate
  2.1936 +system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid
  2.1937 +established by <a>'kernelUnitLength'</a> is not scaled to match the
  2.1938 +pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the
  2.1939 +input image will be temporarily rescaled to match its pixels with <a>'kernelUnitLength'</a>. The convolution happens on the
  2.1940 +resampled image. After applying the convolution, the image is resampled back
  2.1941 +to the original resolution.</p>
  2.1942 +
  2.1943 +<p>When the image must be resampled to match the coordinate system defined by
  2.1944 +<a>'kernelUnitLength'</a> prior to convolution, or
  2.1945 +resampled to match the device coordinate system after convolution, it is
  2.1946 +recommended that high quality viewers make use of appropriate interpolation
  2.1947 +techniques, for example bilinear or bicubic. Depending on the speed of the
  2.1948 +available interpolents, this choice may be affected by the <a>'image-rendering'</a> property setting. Note that
  2.1949 +implementations might choose approaches that minimize or eliminate resampling
  2.1950 +when not necessary to produce proper results, such as when the document is
  2.1951 +zoomed out such that <a>'kernelUnitLength'</a> is
  2.1952 +considerably smaller than a device pixel.</p>
  2.1953 +
  2.1954 +<div class="adef-list">
  2.1955 +<p><em>Attribute definitions:</em></p>
  2.1956 +<dl>
  2.1957 +  <dt id="feConvolveMatrixElementOrderAttribute"><span
  2.1958 +  class="adef">order</span> = "<span
  2.1959 +  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
  2.1960 +    <dd>Indicates the number of cells in each dimension for <a>'kernelMatrix'</a>. The values provided must be
  2.1961 +      <a>&lt;integer&gt;</a>
  2.1962 +      s greater than zero. The first number, &lt;orderX&gt;, indicates the
  2.1963 +      number of columns in the matrix. The second number, &lt;orderY&gt;,
  2.1964 +      indicates the number of rows in the matrix. If &lt;orderY&gt; is not
  2.1965 +      provided, it defaults to &lt;orderX&gt;.<br />
  2.1966 +      A typical value is order="3". It is recommended that only small values
  2.1967 +      (e.g., 3) be used; higher values may result in very high CPU overhead
  2.1968 +      and usually do not produce results that justify the impact on
  2.1969 +      performance.<br />
  2.1970 +      If the attribute is not specified, the effect is as if a value of "3"
  2.1971 +      were specified.<br />
  2.1972 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1973 +  <dt id="feConvolveMatrixElementKernelMatrixAttribute"><span
  2.1974 +  class="adef">kernelMatrix</span> = "<span class="attr-value">&lt;list of
  2.1975 +  numbers&gt;</span>"</dt>
  2.1976 +    <dd>The list of <a>&lt;number&gt;</a>
  2.1977 +      s that make up the kernel matrix for the convolution. Values are
  2.1978 +      separated by space characters and/or a comma. The number of entries in
  2.1979 +      the list must equal &lt;orderX&gt; times &lt;orderY&gt;.<br />
  2.1980 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1981 +  <dt id="feConvolveMatrixElementDivisorAttribute"><span
  2.1982 +  class="adef">divisor</span> = "<span
  2.1983 +  class="attr-value"><a>&lt;number&gt;</a></span>"</dt>
  2.1984 +    <dd>After applying the <span class="attr-name">kernelMatrix</span> to the
  2.1985 +      input image to yield a number, that number is divided by <a>'divisor'</a> to yield the final destination color
  2.1986 +      value. A divisor that is the sum of all the matrix values tends to have
  2.1987 +      an evening effect on the overall color intensity of the result. If the
  2.1988 +      specified divisor is zero then the default value will be used instead.
  2.1989 +      The default value is the sum of all values in kernelMatrix, with the
  2.1990 +      exception that if the sum is zero, then the divisor is set to 1.<br />
  2.1991 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.1992 +  <dt id="feConvolveMatrixElementBiasAttribute"><span
  2.1993 +  class="adef">bias</span> = "<span
  2.1994 +  class="attr-value"><a>&lt;number&gt;</a></span>"</dt>
  2.1995 +    <dd>After applying the <span class="attr-name">kernelMatrix</span> to the
  2.1996 +      input image to yield a number and applying the <a>'divisor'</a>, the <a>'bias'</a> attribute is added to each component. One
  2.1997 +      application of <a>'bias'</a> is when it is
  2.1998 +      desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If
  2.1999 +      <a>'bias'</a> is not specified, then the effect
  2.2000 +      is as if a value of zero were specified.<br />
  2.2001 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2002 +  <dt id="feConvolveMatrixElementTargetXAttribute"><span
  2.2003 +  class="adef">targetX</span> = "<span
  2.2004 +  class="attr-value"><a>&lt;integer&gt;</a></span>"</dt>
  2.2005 +    <dd>Determines the positioning in X of the convolution matrix relative to
  2.2006 +      a given target pixel in the input image. The leftmost column of the
  2.2007 +      matrix is column number zero. The value must be such that: 0 &lt;=
  2.2008 +      targetX &lt; orderX. By default, the convolution matrix is centered in
  2.2009 +      X over each pixel of the input image (i.e., targetX = floor ( orderX /
  2.2010 +      2 )).<br />
  2.2011 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2012 +  <dt id="feConvolveMatrixElementTargetYAttribute"><span
  2.2013 +  class="adef">targetY</span> = "<span
  2.2014 +  class="attr-value"><a>&lt;integer&gt;</a></span>"</dt>
  2.2015 +    <dd>Determines the positioning in Y of the convolution matrix relative to
  2.2016 +      a given target pixel in the input image. The topmost row of the matrix
  2.2017 +      is row number zero. The value must be such that: 0 &lt;= targetY &lt;
  2.2018 +      orderY. By default, the convolution matrix is centered in Y over each
  2.2019 +      pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br />
  2.2020 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2021 +  <dt id="feConvolveMatrixElementEdgeModeAttribute"><span
  2.2022 +  class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap |
  2.2023 +  none</span>"</dt>
  2.2024 +    <dd><p>Determines how to extend the input image as necessary with color
  2.2025 +      values so that the matrix operations can be applied when the kernel is
  2.2026 +      positioned at or near the edge of the input image.</p>
  2.2027 +      <p>"duplicate" indicates that the input image is extended along each of
  2.2028 +      its borders as necessary by duplicating the color values at the given
  2.2029 +      edge of the input image.</p>
  2.2030 +      <pre>Original N-by-M image, where m=M-1 and n=N-1:
  2.2031 +          11 12 ... 1m 1M
  2.2032 +          21 22 ... 2m 2M
  2.2033 +          .. .. ... .. ..
  2.2034 +          n1 n2 ... nm nM
  2.2035 +          N1 N2 ... Nm NM
  2.2036 +Extended by two pixels using "duplicate":
  2.2037 +  11 11   11 12 ... 1m 1M   1M 1M
  2.2038 +  11 11   11 12 ... 1m 1M   1M 1M
  2.2039 +  11 11   11 12 ... 1m 1M   1M 1M
  2.2040 +  21 21   21 22 ... 2m 2M   2M 2M
  2.2041 +  .. ..   .. .. ... .. ..   .. ..
  2.2042 +  n1 n1   n1 n2 ... nm nM   nM nM
  2.2043 +  N1 N1   N1 N2 ... Nm NM   NM NM
  2.2044 +  N1 N1   N1 N2 ... Nm NM   NM NM
  2.2045 +  N1 N1   N1 N2 ... Nm NM   NM NM</pre>
  2.2046 +
  2.2047 +      <div class="note-editor">
  2.2048 +      ED: Consider making this into mathml</div>
  2.2049 +      <p>"wrap" indicates that the input image is extended by taking the
  2.2050 +      color values from the opposite edge of the image.</p>
  2.2051 +      <pre>Extended by two pixels using "wrap":
  2.2052 +  nm nM   n1 n2 ... nm nM   n1 n2
  2.2053 +  Nm NM   N1 N2 ... Nm NM   N1 N2
  2.2054 +  1m 1M   11 12 ... 1m 1M   11 12
  2.2055 +  2m 2M   21 22 ... 2m 2M   21 22
  2.2056 +  .. ..   .. .. ... .. ..   .. ..
  2.2057 +  nm nM   n1 n2 ... nm nM   n1 n2
  2.2058 +  Nm NM   N1 N2 ... Nm NM   N1 N2
  2.2059 +  1m 1M   11 12 ... 1m 1M   11 12
  2.2060 +  2m 2M   21 22 ... 2m 2M   21 22</pre>
  2.2061 +
  2.2062 +      <div class="note-editor">
  2.2063 +      ED: Consider making this into mathml</div>
  2.2064 +      <p>"none" indicates that the input image is extended with pixel values
  2.2065 +      of zero for R, G, B and A.</p>
  2.2066 +      <p><span class="anim-target">Animatable: yes.</span></p>
  2.2067 +    </dd>
  2.2068 +  <dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span
  2.2069 +  class="adef">kernelUnitLength</span> = "<span
  2.2070 +  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
  2.2071 +    <dd>The first number is the &lt;dx&gt; value. The second number is the
  2.2072 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
  2.2073 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
  2.2074 +      current filter units (i.e., units as determined by the value of
  2.2075 +      attribute <a>'filter/primitiveUnits'</a>) between successive columns
  2.2076 +      and rows, respectively, in the <a>'kernelMatrix'</a>. By specifying value(s) for 
  2.2077 +      <a>'kernelUnitLength'</a>, the kernel becomes defined
  2.2078 +      in a scalable, abstract coordinate system. If <a>'kernelUnitLength'</a> is not specified, the default
  2.2079 +      value is one pixel in the offscreen bitmap, which is a pixel-based
  2.2080 +      coordinate system, and thus potentially not scalable. For some level of
  2.2081 +      consistency across display media and user agents, it is necessary that
  2.2082 +      a value be provided for at least one of <a>'filter/filterRes'</a> and <a>'kernelUnitLength'</a>. 
  2.2083 +      In some implementations, the most consistent results and the fastest performance will be achieved if
  2.2084 +      the pixel grid of the temporary offscreen images aligns with the pixel
  2.2085 +      grid of the kernel.<br />
  2.2086 +      If a negative or zero value is specified the default value will be used
  2.2087 +      instead. <br />
  2.2088 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2089 +  <dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span
  2.2090 +  class="adef">preserveAlpha</span> = "<span class="attr-value">false |
  2.2091 +  true</span>"</dt>
  2.2092 +    <dd>A value of <span class="attr-value">false</span> indicates that the
  2.2093 +      convolution will apply to all channels, including the alpha channel.<br
  2.2094 +      />
  2.2095 +      A value of <span class="attr-value">true</span> indicates that the
  2.2096 +      convolution will only apply to the color channels. In this case, the
  2.2097 +      filter will temporarily unpremultiply the color component values, apply
  2.2098 +      the kernel, and then re-premultiply at the end.<br />
  2.2099 +      If <a>'preserveAlpha'</a> is not specified, then
  2.2100 +      the effect is as if a value of <span class="attr-value">false</span>
  2.2101 +      were specified.<br />
  2.2102 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2103 +</dl>
  2.2104 +</div>
  2.2105 +
  2.2106 +</edit:with>
  2.2107 +
  2.2108 +<h2 id="feDiffuseLightingElement">Filter primitive <span
  2.2109 +class="element-name">'feDiffuseLighting'</span></h2>
  2.2110 +
  2.2111 +<edit:elementsummary name='feDiffuseLighting'/>
  2.2112 +
  2.2113 +<p>This filter primitive lights an image using the alpha channel as a bump
  2.2114 +map. The resulting image is an RGBA opaque image based on the light color
  2.2115 +with alpha = 1.0 everywhere. The lighting calculation follows the standard
  2.2116 +diffuse component of the Phong lighting model. The resulting image depends on
  2.2117 +the light color, light position and surface geometry of the input bump
  2.2118 +map.</p>
  2.2119 +
  2.2120 +<p>The light map produced by this filter primitive can be combined with a
  2.2121 +texture image using the multiply term of the <em>arithmetic</em> <a>'feComposite'</a> compositing method. Multiple
  2.2122 +light sources can be simulated by adding several of these light maps together
  2.2123 +before applying it to the texture image.</p>
  2.2124 +
  2.2125 +<p>The formulas below make use of 3x3 filters. Because they operate on
  2.2126 +pixels, such filters are inherently resolution-dependent. To make <a>'feDiffuseLighting'</a> produce
  2.2127 +resolution-independent results, an explicit value should be provided for
  2.2128 +either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element
  2.2129 +and/or attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p>
  2.2130 +
  2.2131 +<p><a>'feDiffuseLighting/kernelUnitLength'</a>, in combination with the other
  2.2132 +attributes, defines an implicit pixel grid in the filter effects coordinate
  2.2133 +system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid
  2.2134 +established by <a>'feDiffuseLighting/kernelUnitLength'</a> is not scaled to match the
  2.2135 +pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the
  2.2136 +input image will be temporarily rescaled to match its pixels with <a>'feDiffuseLighting/kernelUnitLength'</a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back
  2.2137 +to its original resolution.</p>
  2.2138 +
  2.2139 +<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example
  2.2140 +bilinear or bicubic.</span> Depending on the speed of the available interpolents,
  2.2141 +this choice may be affected by the <a>'image-rendering'</a> property setting. Note that
  2.2142 +implementations might choose approaches that minimize or eliminate resampling
  2.2143 +when not necessary to produce proper results, such as when the document is
  2.2144 +zoomed out such that <a>'feDiffuseLighting/kernelUnitLength'</a> is
  2.2145 +considerably smaller than a device pixel.</p>
  2.2146 +
  2.2147 +<p>For the formulas that follow, the
  2.2148 +<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is
  2.2149 +defined as:</p>
  2.2150 +
  2.2151 +<div class="note-editor">
  2.2152 +ED: Consider making the following in mathml</div>
  2.2153 +
  2.2154 +<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) =
  2.2155 +sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p>
  2.2156 +
  2.2157 +<p>The resulting RGBA image is computed as follows:</p>
  2.2158 +
  2.2159 +<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L *
  2.2160 +L<sub>r</sub><br />
  2.2161 +D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br />
  2.2162 +D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br />
  2.2163 +D<sub>a</sub> = 1.0</p>
  2.2164 +
  2.2165 +<p>where</p>
  2.2166 +<dl>
  2.2167 +    <dd>k<sub>d</sub> = diffuse lighting constant<br />
  2.2168 +      N = surface normal unit vector, a function of x and y<br />
  2.2169 +      L = unit vector pointing from surface to light, a function of x and y
  2.2170 +      in the point and spot light cases<br />
  2.2171 +      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a
  2.2172 +      function of x and y in the spot light case</dd>
  2.2173 +</dl>
  2.2174 +
  2.2175 +<p>N is a function of x and y and depends on the surface gradient as
  2.2176 +follows:</p>
  2.2177 +
  2.2178 +<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p>
  2.2179 +
  2.2180 +<p class="filterformula">Z (x,y) = surfaceScale *  A<sub>in</sub>(x,y)</p>
  2.2181 +
  2.2182 +<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter.
  2.2183 +Different filter kernels are used depending on whether the given pixel is on
  2.2184 +the interior or an edge. For each case, the formula is:</p>
  2.2185 +
  2.2186 +<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale *
  2.2187 +FACTOR<sub>x</sub> *<br />
  2.2188 +           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) +
  2.2189 +K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br />
  2.2190 +            K <sub>x</sub>(0,1)*I(x-dx,y)   +
  2.2191 +K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br />
  2.2192 +            K <sub>x</sub>(0,2)*I(x-dx,y+dy) +
  2.2193 +K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br />
  2.2194 +N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br />
  2.2195 +           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) +
  2.2196 +K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br />
  2.2197 +            K <sub>y</sub>(0,1)*I(x-dx,y)   +
  2.2198 +K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br />
  2.2199 +            K <sub>y</sub>(0,2)*I(x-dx,y+dy) +
  2.2200 +K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br />
  2.2201 +N<sub>z</sub> (x,y) = 1.0<br />
  2.2202 +<br />
  2.2203 +N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) /
  2.2204 +Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p>
  2.2205 +
  2.2206 +<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g.,
  2.2207 +<code>I(x-dx,y-dy)</code>), represent deltas relative to a given
  2.2208 +<code>(x,y)</code> position for the purpose of estimating the slope of the
  2.2209 +surface at that point. These deltas are determined by the value (explicit or
  2.2210 +implicit) of attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p>
  2.2211 +
  2.2212 +<table summary="feDiffuseLighting formulas" border="1">
  2.2213 +  <colgroup><col width="33.3%" /><col width="33.3%" /><col width="*"
  2.2214 +  /></colgroup>
  2.2215 +  <tbody>
  2.2216 +    <tr>
  2.2217 +      <td><p>Top/left corner:</p>
  2.2218 +
  2.2219 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
  2.2220 +        K<sub>x</sub> =<br />
  2.2221 +            |  0  0  0 |<br />
  2.2222 +            |  0 -2  2 |<br />
  2.2223 +            |  0 -1  1 |<br />
  2.2224 +        <br />
  2.2225 +        FACTOR<sub>y</sub>=2/(3*dy)<br />
  2.2226 +        K<sub>y</sub> =  <br />
  2.2227 +            |  0  0  0 |<br />
  2.2228 +            |  0 -2 -1 |<br />
  2.2229 +            |  0  2  1 |</p>
  2.2230 +      </td>
  2.2231 +      <td><p>Top row:</p>
  2.2232 +
  2.2233 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br />
  2.2234 +        K<sub>x</sub> =<br />
  2.2235 +            |  0  0  0 |<br />
  2.2236 +            | -2  0  2 |<br />
  2.2237 +            | -1  0  1 |<br />
  2.2238 +        <br />
  2.2239 +        FACTOR<sub>y</sub>=1/(2*dy)<br />
  2.2240 +        K<sub>y</sub> =  <br />
  2.2241 +            |  0  0  0 |<br />
  2.2242 +            | -1 -2 -1 |<br />
  2.2243 +            |  1  2  1 |</p>
  2.2244 +      </td>
  2.2245 +      <td><p>Top/right corner:</p>
  2.2246 +
  2.2247 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
  2.2248 +        K<sub>x</sub> =<br />
  2.2249 +            |  0  0  0 |<br />
  2.2250 +            | -2  2  0 |<br />
  2.2251 +            | -1  1  0 |<br />
  2.2252 +        <br />
  2.2253 +        FACTOR<sub>y</sub>=2/(3*dy)<br />
  2.2254 +        K<sub>y</sub> =  <br />
  2.2255 +            |  0  0  0 |<br />
  2.2256 +            | -1 -2  0 |<br />
  2.2257 +            |  1  2  0 |</p>
  2.2258 +      </td>
  2.2259 +    </tr>
  2.2260 +    <tr>
  2.2261 +      <td><p>Left column:</p>
  2.2262 +
  2.2263 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br />
  2.2264 +        K<sub>x</sub> =<br />
  2.2265 +            | 0 -1  1 |<br />
  2.2266 +            | 0 -2  2 |<br />
  2.2267 +            | 0 -1  1 |<br />
  2.2268 +        <br />
  2.2269 +        FACTOR<sub>y</sub>=1/(3*dy)<br />
  2.2270 +        K<sub>y</sub> =  <br />
  2.2271 +            |  0 -2 -1 |<br />
  2.2272 +            |  0  0  0 |<br />
  2.2273 +            |  0  2  1 |</p>
  2.2274 +      </td>
  2.2275 +      <td><p>Interior pixels:</p>
  2.2276 +
  2.2277 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br />
  2.2278 +        K<sub>x</sub> =<br />
  2.2279 +            | -1  0  1 |<br />
  2.2280 +            | -2  0  2 |<br />
  2.2281 +            | -1  0  1 |<br />
  2.2282 +        <br />
  2.2283 +        FACTOR<sub>y</sub>=1/(4*dy)<br />
  2.2284 +        K<sub>y</sub> =  <br />
  2.2285 +            | -1 -2 -1 |<br />
  2.2286 +            |  0  0  0 |<br />
  2.2287 +            |  1  2  1 |</p>
  2.2288 +      </td>
  2.2289 +      <td><p>Right column:</p>
  2.2290 +
  2.2291 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br />
  2.2292 +        K<sub>x</sub> =<br />
  2.2293 +            | -1  1  0|<br />
  2.2294 +            | -2  2  0|<br />
  2.2295 +            | -1  1  0|<br />
  2.2296 +        <br />
  2.2297 +        FACTOR<sub>y</sub>=1/(3*dy)<br />
  2.2298 +        K<sub>y</sub> =  <br />
  2.2299 +            | -1 -2  0 |<br />
  2.2300 +            |  0  0  0 |<br />
  2.2301 +            |  1  2  0 |</p>
  2.2302 +      </td>
  2.2303 +    </tr>
  2.2304 +    <tr>
  2.2305 +      <td><p>Bottom/left corner:</p>
  2.2306 +
  2.2307 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
  2.2308 +        K<sub>x</sub> =<br />
  2.2309 +            | 0 -1  1 |<br />
  2.2310 +            | 0 -2  2 |<br />
  2.2311 +            | 0  0  0 |<br />
  2.2312 +        <br />
  2.2313 +        FACTOR<sub>y</sub>=2/(3*dy)<br />
  2.2314 +        K<sub>y</sub> =  <br />
  2.2315 +            |  0 -2 -1 |<br />
  2.2316 +            |  0  2  1 |<br />
  2.2317 +            |  0  0  0 |</p>
  2.2318 +      </td>
  2.2319 +      <td><p>Bottom row:</p>
  2.2320 +
  2.2321 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br />
  2.2322 +        K<sub>x</sub> =<br />
  2.2323 +            | -1  0  1 |<br />
  2.2324 +            | -2  0  2 |<br />
  2.2325 +            |  0  0  0 |<br />
  2.2326 +        <br />
  2.2327 +        FACTOR<sub>y</sub>=1/(2*dy)<br />
  2.2328 +        K<sub>y</sub> =  <br />
  2.2329 +            | -1 -2 -1 |<br />
  2.2330 +            |  1  2  1 |<br />
  2.2331 +            |  0  0  0 |</p>
  2.2332 +      </td>
  2.2333 +      <td><p>Bottom/right corner:</p>
  2.2334 +
  2.2335 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
  2.2336 +        K<sub>x</sub> =<br />
  2.2337 +            | -1  1  0 |<br />
  2.2338 +            | -2  2  0 |<br />
  2.2339 +            |  0  0  0 |<br />
  2.2340 +        <br />
  2.2341 +        FACTOR<sub>y</sub>=2/(3*dy)<br />
  2.2342 +        K<sub>y</sub> =  <br />
  2.2343 +            | -1 -2  0 |<br />
  2.2344 +            |  1  2  0 |<br />
  2.2345 +            |  0  0  0 |</p>
  2.2346 +      </td>
  2.2347 +    </tr>
  2.2348 +  </tbody>
  2.2349 +</table>
  2.2350 +
  2.2351 +<p>L, the unit vector from the image sample to the light, is calculated as
  2.2352 +follows:</p>
  2.2353 +
  2.2354 +<p>For Infinite light sources it is constant:</p>
  2.2355 +
  2.2356 +<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br />
  2.2357 +L<sub>y</sub> = sin(azimuth)*cos(elevation)<br />
  2.2358 +L<sub>z</sub> = sin(elevation)</p>
  2.2359 +
  2.2360 +<p>For Point and spot lights it is a function of position:</p>
  2.2361 +
  2.2362 +<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br />
  2.2363 +L<sub>y</sub> = Light<sub>y</sub> - y<br />
  2.2364 +L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br />
  2.2365 +<br />
  2.2366 +L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>,
  2.2367 +L<sub>y</sub>, L<sub>z</sub>)</p>
  2.2368 +
  2.2369 +<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the
  2.2370 +input light position.</p>
  2.2371 +
  2.2372 +<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a
  2.2373 +function of position in the spot light case only:</p>
  2.2374 +
  2.2375 +<p class="filterformula">L<sub>r</sub> =
  2.2376 +Light<sub>r</sub>*pow((-L.S),specularExponent)<br />
  2.2377 +L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br />
  2.2378 +L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p>
  2.2379 +
  2.2380 +<p>where S is the unit vector pointing from the light to the point
  2.2381 +(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p>
  2.2382 +
  2.2383 +<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br />
  2.2384 +S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br />
  2.2385 +S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br />
  2.2386 +<br />
  2.2387 +S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>,
  2.2388 +S<sub>y</sub>, S<sub>z</sub>)</p>
  2.2389 +
  2.2390 +<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> =
  2.2391 +L<sub>b</sub> = 0). If <a>'feSpotLight/limitingConeAngle'</a> is specified, -L.S &lt; cos(limitingConeAngle) also indicates that no light is present.</p>
  2.2392 +
  2.2393 +<div class="adef-list">
  2.2394 +<p><em>Attribute definitions:</em></p>
  2.2395 +<dl>
  2.2396 +  <dt id="feDiffuseLightingSurfaceScaleAttribute"><span
  2.2397 +  class="adef">surfaceScale</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.2398 +    <dd>height of surface when A<sub>in</sub> = 1.<br />
  2.2399 +      If the attribute is not specified, then the effect is as if a value of
  2.2400 +      <span class="attr-value">1</span> were specified.<br />
  2.2401 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2402 +  <dt id="feDiffuseLightingDiffuseConstantAttribute"><span
  2.2403 +  class="adef">diffuseConstant</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.2404 +    <dd>kd in Phong lighting model. In SVG, this can be any non-negative
  2.2405 +      number.<br />
  2.2406 +      If the attribute is not specified, then the effect is as if a value of
  2.2407 +      <span class="attr-value">1</span> were specified.<br />
  2.2408 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2409 +  <dt id="feDiffuseLightingKernelUnitLengthAttribute"><span
  2.2410 +  class="adef">kernelUnitLength</span> = "<span
  2.2411 +  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
  2.2412 +    <dd>The first number is the &lt;dx&gt; value. The second number is the
  2.2413 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
  2.2414 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
  2.2415 +      current filter units (i.e., units as determined by the value of
  2.2416 +      attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and
  2.2417 +      <code>dy</code>, respectively, in the <a
  2.2418 +      href="#SurfaceNormalCalculations">surface normal calculation
  2.2419 +      formulas</a>. By specifying value(s) for <span
  2.2420 +      class="attr-name">kernelUnitLength</span>, the kernel becomes defined
  2.2421 +      in a scalable, abstract coordinate system. If <span
  2.2422 +      class="attr-name">kernelUnitLength</span> is not specified, the
  2.2423 +      <code>dx</code> and <code>dy</code> values should represent very small
  2.2424 +      deltas relative to a given <code>(x,y)</code> position, which might be
  2.2425 +      implemented in some cases as one pixel in the intermediate image
  2.2426 +      offscreen bitmap, which is a pixel-based coordinate system, and thus
  2.2427 +      potentially not scalable. For some level of consistency across display
  2.2428 +      media and user agents, it is necessary that a value be provided for at
  2.2429 +      least one of <a>'filter/filterRes'</a> and <span
  2.2430 +      class="attr-name">kernelUnitLength</span>. Discussion of intermediate
  2.2431 +      images are in the <a href="#Introduction">Introduction</a> and in the
  2.2432 +      description of attribute <a>'filter/filterRes'</a>.<br />
  2.2433 +      If a negative or zero value is specified the default value will be used
  2.2434 +      instead. <br />
  2.2435 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2436 +</dl>
  2.2437 +</div>
  2.2438 +
  2.2439 +<p>The light source is defined by one of the child elements <a>'feDistantLight'</a>, 
  2.2440 +<a>'fePointLight'</a> or <a>'feSpotLight'</a>. The light color is specified
  2.2441 +by property <a>'lighting-color'</a>.</p>
  2.2442 +
  2.2443 +<h2 id="feDisplacementMapElement">Filter primitive <span class="element-name">'feDisplacementMap'</span></h2>
  2.2444 +
  2.2445 +<edit:elementsummary name='feDisplacementMap'/>
  2.2446 +
  2.2447 +<p>This filter primitive uses the pixels values from the image from <a>'feDisplacementMap/in2'</a>
  2.2448 +to spatially displace the image from <a>'in'</a>.
  2.2449 +This is the transformation to be performed:</p>
  2.2450 +
  2.2451 +<pre>	P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5))
  2.2452 +	</pre>
  2.2453 +
  2.2454 +<p>where P(x,y) is the input image, <a>'in'</a>, and
  2.2455 +P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of
  2.2456 +the channel designated by the <a>'feDisplacementMap/xChannelSelector'</a> and
  2.2457 +<a>'feDisplacementMap/yChannelSelector'</a>. For example, to use the R component of <a>'feDisplacementMap/in2'</a>
  2.2458 +to control displacement in x and the G component of Image2 to control
  2.2459 +displacement in y, set <a>'feDisplacementMap/xChannelSelector'</a> to <span class="attr-value">"R"</span> and
  2.2460 +<a>'feDisplacementMap/yChannelSelector'</a> to <span class="attr-value">"G"</span>.</p>
  2.2461 +
  2.2462 +<p>The displacement map, <a>'feDisplacementMap/in2'</a>, defines the inverse of the mapping
  2.2463 +performed.</p>
  2.2464 +
  2.2465 +<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a>'feDisplacementMap/in2'</a> are performed using non-premultiplied color values. If the image from <a>'feDisplacementMap/in2'</a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p>
  2.2466 +
  2.2467 +<p>This filter can have arbitrary non-localized effect on the input which
  2.2468 +might require substantial buffering in the processing pipeline. However with
  2.2469 +this formulation, any intermediate buffering needs can be determined by
  2.2470 +<a>'feDisplacementMap/scale'</a> which represents the maximum range of displacement in either x
  2.2471 +or y.</p>
  2.2472 +
  2.2473 +<p>When applying this filter, the source pixel location will often lie
  2.2474 +between several source pixels. In this case it is recommended that high
  2.2475 +quality viewers apply an interpolent on the surrounding pixels, for example
  2.2476 +bilinear or bicubic, rather than simply selecting the nearest source pixel.
  2.2477 +Depending on the speed of the available interpolents, this choice may be
  2.2478 +affected by the <a>'image-rendering'</a> property
  2.2479 +setting.</p>
  2.2480 +
  2.2481 +<p>The <a>'color-interpolation-filters'</a> property only applies to the 
  2.2482 +  <a>'feDisplacementMap/in2'</a> source image and does not apply to the <a>'in'</a> source image.
  2.2483 +  The <a>'in'</a> source image must remain in its current color space.
  2.2484 +</p>
  2.2485 +
  2.2486 +<div class="adef-list">
  2.2487 +<p><em>Attribute definitions:</em></p>
  2.2488 +<dl>
  2.2489 +  <dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span>
  2.2490 +  = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.2491 +    <dd>Displacement scale factor. The amount is expressed in the coordinate
  2.2492 +      system established by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.2493 +      element.<br />
  2.2494 +      When the value of this attribute is <span class="attr-value">0</span>,
  2.2495 +      this operation has no effect on the source image.<br />
  2.2496 +      <p>The <a>lacuna value</a> for <a>'feDisplacementMap/scale'</a> is <span class="attr-value">0</span>.</p>
  2.2497 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2498 +  <dt id="feDisplacementMapXChannelSelectorAttribute"><span
  2.2499 +  class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt>
  2.2500 +    <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the x-axis.
  2.2501 +    The <a>lacuna value</a> for <a>'xChannelSelector'</a> is <span class="attr-value">A</span>.
  2.2502 +    <br />
  2.2503 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2504 +  <dt id="feDisplacementMapYChannelSelectorAttribute"><span
  2.2505 +  class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt>
  2.2506 +    <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the y-axis.
  2.2507 +    The <a>lacuna value</a> for <a>'yChannelSelector'</a> is <span class="attr-value">A</span>.
  2.2508 +    <br />
  2.2509 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2510 +  <dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> =
  2.2511 +  "<em>(see <a>'in'</a> attribute)</em>"</dt>
  2.2512 +    <dd>The second input image, which is used to displace the pixels in the
  2.2513 +      image from attribute <a>'in'</a>. This attribute can take on the same
  2.2514 +      values as the <a>'in'</a> attribute.<br />
  2.2515 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2516 +</dl>
  2.2517 +</div>
  2.2518 +
  2.2519 +<h2 id="feFloodElement">Filter primitive <span
  2.2520 +class="element-name">'feFlood'</span></h2>
  2.2521 +
  2.2522 +<edit:elementsummary name='feFlood'/>
  2.2523 +
  2.2524 +<p>This filter primitive creates a rectangle filled with the color and
  2.2525 +opacity values from properties <span class="prop-name">'flood-color'</span>
  2.2526 +and <span class="prop-name">'flood-opacity'</span>. The rectangle is as large
  2.2527 +as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>
  2.2528 +established by the <span class="element-name">'feFlood'</span> element.</p>
  2.2529 +
  2.2530 +<div class="adef-list">
  2.2531 +  </div>
  2.2532 +
  2.2533 +<p>The <span class="prop-name">'flood-color'</span> property indicates what
  2.2534 +color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter
  2.2535 +primitive subregion</a>. The keyword <span
  2.2536 +class="attr-value">currentColor</span> and ICC colors can be specified in the
  2.2537 +same manner as within a &lt;paint&gt; specification for the <span
  2.2538 +class="prop-name">'fill'</span> and <span class="prop-name">'stroke'</span>
  2.2539 +properties.</p>
  2.2540 +
  2.2541 +<div class="propdef">
  2.2542 +<dl>
  2.2543 +  <dt id="FloodColorProperty"><span class="propdef-title prop-name">'flood-color'</span></dt>
  2.2544 +    <dd>
  2.2545 +      <table summary="flood-color property" class="propinfo" cellspacing="0"
  2.2546 +      cellpadding="0">
  2.2547 +        <tbody>
  2.2548 +          <tr valign="baseline">
  2.2549 +            <td><em>Value:</em>  </td>
  2.2550 +            <td>currentColor |<br />
  2.2551 +              <a>&lt;color&gt;</a>
  2.2552 +              [<a>&lt;icccolor&gt;</a>] |<br />
  2.2553 +              <a class="noxref"
  2.2554 +              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
  2.2555 +              class="value-inst-inherit noxref">inherit</span></a></td>
  2.2556 +          </tr>
  2.2557 +          <tr valign="baseline">
  2.2558 +            <td><em>Initial:</em>  </td>
  2.2559 +            <td>black</td>
  2.2560 +          </tr>
  2.2561 +          <tr valign="baseline">
  2.2562 +            <td><em>Applies to:</em>  </td>
  2.2563 +            <td><a href="#feFloodElement"><span
  2.2564 +              class="element-name">'feFlood'</span></a> and <a
  2.2565 +              href="#feDropShadowElement"><span
  2.2566 +              class="element-name">'feDropShadow'</span></a> elements</td>
  2.2567 +          </tr>
  2.2568 +          <tr valign="baseline">
  2.2569 +            <td><em>Inherited:</em>  </td>
  2.2570 +            <td>no</td>
  2.2571 +          </tr>
  2.2572 +          <tr valign="baseline">
  2.2573 +            <td><em>Percentages:</em>  </td>
  2.2574 +            <td>N/A</td>
  2.2575 +          </tr>
  2.2576 +          <tr valign="baseline">
  2.2577 +            <td><em>Media:</em>  </td>
  2.2578 +            <td>visual</td>
  2.2579 +          </tr>
  2.2580 +          <tr valign="baseline">
  2.2581 +            <td><em>Animatable:</em>  </td>
  2.2582 +            <td>yes</td>
  2.2583 +          </tr>
  2.2584 +        </tbody>
  2.2585 +      </table>
  2.2586 +    </dd>
  2.2587 +</dl>
  2.2588 +</div>
  2.2589 +
  2.2590 +<p>The <span class="prop-name">'flood-opacity'</span> property defines the
  2.2591 +opacity value to use across the entire <a
  2.2592 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
  2.2593 +
  2.2594 +<div class="propdef">
  2.2595 +<dl>
  2.2596 +  <dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">'flood-opacity'</span></dt>
  2.2597 +    <dd>
  2.2598 +      <table summary="flood-opacity property" class="propinfo"
  2.2599 +      cellspacing="0" cellpadding="0">
  2.2600 +        <tbody>
  2.2601 +          <tr valign="baseline">
  2.2602 +            <td><em>Value:</em>  </td>
  2.2603 +            <td>&lt;opacity-value&gt; | <a class="noxref"
  2.2604 +              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
  2.2605 +              class="value-inst-inherit noxref">inherit</span></a></td>
  2.2606 +          </tr>
  2.2607 +          <tr valign="baseline">
  2.2608 +            <td><em>Initial:</em>  </td>
  2.2609 +            <td>1</td>
  2.2610 +          </tr>
  2.2611 +          <tr valign="baseline">
  2.2612 +            <td><em>Applies to:</em>  </td>
  2.2613 +            <td><a href="#feFloodElement"><span
  2.2614 +              class="element-name">'feFlood'</span></a> and <a
  2.2615 +              href="#feDropShadowElement"><span
  2.2616 +              class="element-name">'feDropShadow'</span></a> elements</td>
  2.2617 +          </tr>
  2.2618 +          <tr valign="baseline">
  2.2619 +            <td><em>Inherited:</em>  </td>
  2.2620 +            <td>no</td>
  2.2621 +          </tr>
  2.2622 +          <tr valign="baseline">
  2.2623 +            <td><em>Percentages:</em>  </td>
  2.2624 +            <td>N/A</td>
  2.2625 +          </tr>
  2.2626 +          <tr valign="baseline">
  2.2627 +            <td><em>Media:</em>  </td>
  2.2628 +            <td>visual</td>
  2.2629 +          </tr>
  2.2630 +          <tr valign="baseline">
  2.2631 +            <td><em>Animatable:</em>  </td>
  2.2632 +            <td>yes</td>
  2.2633 +          </tr>
  2.2634 +        </tbody>
  2.2635 +      </table>
  2.2636 +    </dd>
  2.2637 +</dl>
  2.2638 +</div>
  2.2639 +
  2.2640 +<h2 id="feGaussianBlurElement">Filter primitive <span
  2.2641 +class="element-name">'feGaussianBlur'</span></h2>
  2.2642 +
  2.2643 +<edit:elementsummary name='feGaussianBlur'/>
  2.2644 +
  2.2645 +<p>This filter primitive performs a Gaussian blur on the input image.</p>
  2.2646 +
  2.2647 +<p>The Gaussian blur kernel is an approximation of the normalized
  2.2648 +convolution:</p>
  2.2649 +
  2.2650 +<p class="filterformula">G(x,y) = H(x)I(y)</p>
  2.2651 +<p>where 
  2.2652 +<span >H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span>
  2.2653 +</p>
  2.2654 +<p>and</p> 
  2.2655 +<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p>
  2.2656 +<p>with 's' being the standard deviation in the x direction
  2.2657 +and 't' being the standard deviation in the y direction, as specified by <a
  2.2658 +href="#feGaussianBlurStdDeviationAttribute"><span
  2.2659 +class="attr-name">stdDeviation</span></a>.</p>
  2.2660 +
  2.2661 +<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span
  2.2662 +class="attr-name">stdDeviation</span></a> can be either one or two numbers.
  2.2663 +If two numbers are provided, the first number represents a standard deviation
  2.2664 +value along the x-axis of the current coordinate system and the second value
  2.2665 +represents a standard deviation in Y. If one number is provided, then that
  2.2666 +value is used for both X and Y.</p>
  2.2667 +
  2.2668 +<p>Even if only one value is provided for <a
  2.2669 +href="#feGaussianBlurStdDeviationAttribute"><span
  2.2670 +class="attr-name">stdDeviation</span></a>, this can be implemented as a
  2.2671 +separable convolution.</p>
  2.2672 +
  2.2673 +<p>For larger values of 's' (s &gt;= 2.0), an approximation can be used:
  2.2674 +Three successive box-blurs build a piece-wise quadratic convolution kernel,
  2.2675 +which approximates the Gaussian kernel to within roughly 3%.</p>
  2.2676 +
  2.2677 +<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p>
  2.2678 +
  2.2679 +<p>... if d is odd, use three box-blurs of size 'd', centered on the output
  2.2680 +pixel.</p>
  2.2681 +
  2.2682 +<p>... if d is even, two box-blurs of size 'd' (the first one centered on the
  2.2683 +pixel boundary between the output pixel and the one to the left, the second
  2.2684 +one centered on the pixel boundary between the output pixel and the one to
  2.2685 +the right) and one box blur of size 'd+1' centered on the output pixel.</p>
  2.2686 +
  2.2687 +<p>Frequently this operation will take place on alpha-only images, such as
  2.2688 +that produced by the built-in input, <a href="#SourceAlpha"><span
  2.2689 +class="attr-value">SourceAlpha</span></a>. The implementation may notice this
  2.2690 +and optimize the single channel case. If the input has infinite extent and is
  2.2691 +constant, this operation has no effect. If the input has infinite extent and
  2.2692 +is a tile, the filter is evaluated with periodic boundary conditions.</p>
  2.2693 +
  2.2694 +<div class="adef-list">
  2.2695 +<p><em>Attribute definitions:</em></p>
  2.2696 +<dl>
  2.2697 +  <dt id="feGaussianBlurStdDeviationAttribute"><span
  2.2698 +  class="adef">stdDeviation</span> =
  2.2699 +  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
  2.2700 +    <dd>The standard deviation for the blur operation. If two <a>&lt;number&gt;</a>
  2.2701 +      s are provided, the first number represents a standard deviation value
  2.2702 +      along the x-axis of the coordinate system established by attribute <a>'filter/primitiveUnits'</a> on the <a
  2.2703 +      href="#FilterElement"><span class="element-name">'filter'</span></a>
  2.2704 +      element. The second value represents a standard deviation in Y. If one
  2.2705 +      number is provided, then that value is used for both X and Y.<br />
  2.2706 +      A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br />
  2.2707 +      If the attribute is not specified, then the effect is as if a value of
  2.2708 +      <span class="attr-value">0</span> were specified.<br />
  2.2709 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2710 +</dl>
  2.2711 +</div>
  2.2712 +
  2.2713 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
  2.2714 +use of the <a>'feGaussianBlur'</a> filter primitive
  2.2715 +to create a drop shadow effect.</p>
  2.2716 +
  2.2717 +<h2 id="feUnsharpMaskElement">Filter primitive <span
  2.2718 +class="element-name">'feUnsharpMask'</span></h2>
  2.2719 +
  2.2720 +<edit:elementsummary name='feUnsharpMask'/>
  2.2721 +
  2.2722 +<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p>
  2.2723 +
  2.2724 +<p>The filter first does a <a>'feGaussianBlur'</a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p>
  2.2725 +
  2.2726 +<p>
  2.2727 +For controlling the result there are three attributes that can be used:
  2.2728 +  <ul>
  2.2729 +    <li>the <a>'feUnsharpMask/stdDeviation'</a> attribute controls how much to blur the input image</li>
  2.2730 +    <li>the <a>'feUnsharpMask/threshold'</a> attribute can be used for controlling when the difference should not be subtracted</li>
  2.2731 +    <li>the <a>'feUnsharpMask/amount'</a> attribute specifies an optional multiplier for the difference to subtract</li>
  2.2732 +  </ul> 
  2.2733 +</p>
  2.2734 +
  2.2735 +<h2 id="feImageElement">Filter primitive <span
  2.2736 +class="element-name">'feImage'</span></h2>
  2.2737 +
  2.2738 +<edit:elementsummary name='feImage'/>
  2.2739 +
  2.2740 +<p>This filter primitive refers to a graphic external to this filter element,
  2.2741 +which is loaded or rendered into an RGBA raster and becomes the result of the
  2.2742 +filter primitive.</p>
  2.2743 +
  2.2744 +<p>This filter primitive can refer to an external image or can be a reference
  2.2745 +to another piece of SVG. It produces an image similar to the built-in image
  2.2746 +source <a href="#SourceGraphic"><span
  2.2747 +class="attr-value">SourceGraphic</span></a> except that the graphic comes
  2.2748 +from an external source.</p>
  2.2749 +
  2.2750 +<p>If the <span class="attr-name">xlink:href</span> references a stand-alone
  2.2751 +image resource such as a JPEG, PNG or SVG file, then the image resource is
  2.2752 +rendered according to the behavior of the <span
  2.2753 +class="element-name">'image'</span> element; otherwise, the referenced
  2.2754 +resource is rendered according to the behavior of the <span
  2.2755 +class="element-name">'use'</span> element. In either case, the current user
  2.2756 +coordinate system depends on the value of attribute <a>'filter/primitiveUnits'</a> on the <a
  2.2757 +href="#FilterElement"><span class="element-name">'filter'</span></a> element.
  2.2758 +The processing of the <span class="attr-name">preserveAspectRatio</span>
  2.2759 +attribute on the <span class="element-name">'feImage'</span> element is
  2.2760 +identical to that of the <a href="struct.html#ImageElement"><span
  2.2761 +class="element-name">'image'</span></a> element.</p>
  2.2762 +
  2.2763 +<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate
  2.2764 +system, it is recommended that high quality viewers make use of appropriate
  2.2765 +interpolation techniques, for example bilinear or bicubic.</span> Depending on the
  2.2766 +speed of the available interpolents, this choice may be affected by the <span
  2.2767 +class="prop-name">'image-rendering'</span> property setting.</p>
  2.2768 +
  2.2769 +<div class="adef-list">
  2.2770 +<p><em>Attribute definitions:</em></p>
  2.2771 +<dl>
  2.2772 +  <dt id="feImageHrefAttribute"><span
  2.2773 +  class="adef">xlink:href</span> =
  2.2774 +  "<span class="attr-value">&lt;IRI&gt;</span>"</dt>
  2.2775 +    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
  2.2776 +      to an image resource or to an element.
  2.2777 +      <br />
  2.2778 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2779 +   </dl>
  2.2780 +</div>
  2.2781 +
  2.2782 +<h2 id="feMergeElement">Filter primitive <span
  2.2783 +class="element-name">'feMerge'</span></h2>
  2.2784 +
  2.2785 +<edit:elementsummary name='feMerge'/>
  2.2786 +<edit:elementsummary name='feMergeNode'/>
  2.2787 +
  2.2788 +<p>This filter primitive composites input image layers on top of each other
  2.2789 +using the <em>over</em> operator with <em>Input1</em> (corresponding to the
  2.2790 +first <a href="#feMergeNodeElement"><span
  2.2791 +class="element-name">'feMergeNode'</span></a> child element) on the bottom
  2.2792 +and the last specified input, <em>InputN</em> (corresponding to the last <a
  2.2793 +href="#feMergeNodeElement"><span
  2.2794 +class="element-name">'feMergeNode'</span></a> child element), on top.</p>
  2.2795 +
  2.2796 +<p>Many effects produce a number of intermediate layers in order to create
  2.2797 +the final output image. This filter allows us to collapse those into a single
  2.2798 +image. Although this could be done by using n-1 Composite-filters, it is more
  2.2799 +convenient to have this common operation available in this form, and offers
  2.2800 +the implementation some additional flexibility.</p>
  2.2801 +
  2.2802 +<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements,
  2.2803 +each of which has an <a href="#CommonAttributes"><span
  2.2804 +class="attr-name">in</span></a> attribute.</p>
  2.2805 +
  2.2806 +<p>The canonical implementation of feMerge is to render the entire effect
  2.2807 +into one RGBA layer, and then render the resulting layer on the output
  2.2808 +device. In certain cases (in particular if the output device itself is a
  2.2809 +continuous tone device), and since merging is associative, it might be a
  2.2810 +sufficient approximation to evaluate the effect one layer at a time and
  2.2811 +render each layer individually onto the output device bottom to top.</p>
  2.2812 +
  2.2813 +<p>If the topmost image input is <a href="#SourceGraphic"><span
  2.2814 +class="attr-value">SourceGraphic</span></a> and this <span
  2.2815 +class="element-name">'feMerge'</span> is the last filter primitive in the
  2.2816 +filter, the implementation is encouraged to render the layers up to that
  2.2817 +point, and then render the <a href="#SourceGraphic"><span
  2.2818 +class="attr-value">SourceGraphic</span></a> directly from its vector
  2.2819 +description on top.</p>
  2.2820 +
  2.2821 +<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes
  2.2822 +use of the <span class="element-name">feMerge</span> filter primitive to
  2.2823 +composite two intermediate filter results together.</p>
  2.2824 +
  2.2825 +<h2 id="feMorphologyElement">Filter primitive <span
  2.2826 +class="element-name">'feMorphology'</span></h2>
  2.2827 +
  2.2828 +<edit:elementsummary name='feMorphology'/>
  2.2829 +
  2.2830 +<p>This filter primitive performs "fattening" or "thinning" of artwork. It is
  2.2831 +particularly useful for fattening or thinning an alpha channel.</p>
  2.2832 +
  2.2833 +<p>The dilation (or erosion) kernel is a rectangle with a width of
  2.2834 +2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the
  2.2835 +output pixel is the individual component-wise maximum of the corresponding
  2.2836 +R,G,B,A values in the input image's kernel rectangle. In erosion, the output
  2.2837 +pixel is the individual component-wise minimum of the corresponding R,G,B,A
  2.2838 +values in the input image's kernel rectangle.</p>
  2.2839 +
  2.2840 +<p>Frequently this operation will take place on alpha-only images, such as
  2.2841 +that produced by the built-in input, <a href="#SourceAlpha"><span
  2.2842 +class="attr-value">SourceAlpha</span></a>. In that case, the implementation
  2.2843 +might want to optimize the single channel case.</p>
  2.2844 +
  2.2845 +<p>If the input has infinite extent and is constant, this operation has no
  2.2846 +effect. If the input has infinite extent and is a tile, the filter is
  2.2847 +evaluated with periodic boundary conditions.</p>
  2.2848 +
  2.2849 +<p>Because <span class="element-name">'feMorphology'</span> operates on
  2.2850 +premultipied color values, it will always result in color values less than or
  2.2851 +equal to the alpha channel.</p>
  2.2852 +
  2.2853 +<div class="adef-list">
  2.2854 +<p><em>Attribute definitions:</em></p>
  2.2855 +<dl>
  2.2856 +  <dt id="feMorphologyOperatorAttribute"><span
  2.2857 +  class="adef">operator</span> = "<em>erode | dilate</em>"</dt>
  2.2858 +    <dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten)
  2.2859 +      the source graphic.<br />
  2.2860 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2861 +  <dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> =
  2.2862 +  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
  2.2863 +    <dd>The radius (or radii) for the operation. If two <a>&lt;number&gt;</a>
  2.2864 +      s are provided, the first number represents a x-radius and the second
  2.2865 +      value represents a y-radius. If one number is provided, then that value
  2.2866 +      is used for both X and Y. The values are in the coordinate system
  2.2867 +      established by attribute <a>'filter/primitiveUnits'</a> on the <a
  2.2868 +      href="#FilterElement"><span class="element-name">'filter'</span></a>
  2.2869 +      element.<br />
  2.2870 +      A negative or zero value disables the effect of the given filter
  2.2871 +      primitive (i.e., the result is a transparent black image).<br />
  2.2872 +      If the attribute is not specified, then the effect is as if a value of
  2.2873 +      <span class="attr-value">0</span> were specified.<br />
  2.2874 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2875 +</dl>
  2.2876 +</div>
  2.2877 +
  2.2878 +<edit:example href="examples/feMorphology.svg" image="yes" link="yes"/>
  2.2879 +
  2.2880 +<h2 id="feOffsetElement">Filter primitive <span
  2.2881 +class="element-name">'feOffset'</span></h2>
  2.2882 +
  2.2883 +<edit:elementsummary name='feOffset'/>
  2.2884 +
  2.2885 +<p>This filter primitive offsets the input image relative to its current
  2.2886 +position in the image space by the specified vector.</p>
  2.2887 +
  2.2888 +<p>This is important for effects like drop shadows.</p>
  2.2889 +
  2.2890 +<p>When applying this filter, the destination location may be offset by a
  2.2891 +fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer
  2.2892 +should make use of appropriate interpolation techniques, for example bilinear
  2.2893 +or bicubic.</span> This is especially recommended for dynamic viewers where this
  2.2894 +interpolation provides visually smoother movement of images. For static
  2.2895 +viewers this is less of a concern. Close attention should be made to the
  2.2896 +<span class="prop-name">'image-rendering'</span> property setting to
  2.2897 +determine the authors intent.</p>
  2.2898 +
  2.2899 +<div class="adef-list">
  2.2900 +<p><em>Attribute definitions:</em></p>
  2.2901 +<dl>
  2.2902 +  <dt id="feOffsetDxAttribute"><span
  2.2903 +  class="adef">dx</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.2904 +    <dd>The amount to offset the input graphic along the x-axis. The offset
  2.2905 +      amount is expressed in the coordinate system established by attribute
  2.2906 +      <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
  2.2907 +      element.<br />
  2.2908 +      If the attribute is not specified, then the effect is as if a value of
  2.2909 +      <span class="attr-value">0</span> were specified.<br />
  2.2910 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2911 +  <dt id="feOffsetDyAttribute"><span
  2.2912 +  class="adef">dy</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.2913 +    <dd>The amount to offset the input graphic along the y-axis. The offset
  2.2914 +      amount is expressed in the coordinate system established by attribute
  2.2915 +      <a>'filter/primitiveUnits'</a> on the <a
  2.2916 +      href="#FilterElement"><span class="element-name">'filter'</span></a>
  2.2917 +      element.<br />
  2.2918 +      If the attribute is not specified, then the effect is as if a value of
  2.2919 +      <span class="attr-value">0</span> were specified.<br />
  2.2920 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.2921 +</dl>
  2.2922 +</div>
  2.2923 +
  2.2924 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
  2.2925 +use of the <span class="element-name">feOffset</span> filter primitive to
  2.2926 +offset the drop shadow from the original source graphic.</p>
  2.2927 +
  2.2928 +<h2 id="feSpecularLightingElement">Filter primitive <span
  2.2929 +class="element-name">'feSpecularLighting'</span></h2>
  2.2930 +
  2.2931 +<edit:elementsummary name='feSpecularLighting'/>
  2.2932 +
  2.2933 +<p>This filter primitive lights a source graphic using the alpha channel as a
  2.2934 +bump map. The resulting image is an RGBA image based on the light color. The
  2.2935 +lighting calculation follows the standard specular component of the Phong
  2.2936 +lighting model. The resulting image depends on the light color, light
  2.2937 +position and surface geometry of the input bump map. The result of the
  2.2938 +lighting calculation is added. The filter primitive assumes that the viewer
  2.2939 +is at infinity in the z direction (i.e., the unit vector in the eye direction
  2.2940 +is (0,0,1) everywhere).</p>
  2.2941 +
  2.2942 +<p>This filter primitive produces an image which contains the specular
  2.2943 +reflection part of the lighting calculation. Such a map is intended to be
  2.2944 +combined with a texture using the <em>add</em> term of the
  2.2945 +<em>arithmetic</em> <a href="#feCompositeElement"><span
  2.2946 +class="element-name">'feComposite'</span></a> method. Multiple light sources
  2.2947 +can be simulated by adding several of these light maps before applying it to
  2.2948 +the texture image.</p>
  2.2949 +
  2.2950 +<p>The resulting RGBA image is computed as follows:</p>
  2.2951 +
  2.2952 +<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H,
  2.2953 +specularExponent) * L<sub>r<br />
  2.2954 +</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
  2.2955 +L<sub>g<br />
  2.2956 +</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
  2.2957 +L<sub>b<br />
  2.2958 +</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p>
  2.2959 +
  2.2960 +<p>where</p>
  2.2961 +<dl>
  2.2962 +    <dd>k<sub>s</sub> = specular lighting constant<br />
  2.2963 +      N = surface normal unit vector, a function of x and y<br />
  2.2964 +      H = "halfway" unit vector between eye unit vector and light unit
  2.2965 +      vector<br />
  2.2966 +      <br />
  2.2967 +      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd>
  2.2968 +</dl>
  2.2969 +
  2.2970 +<p>See <a href="#feDiffuseLighting"><span
  2.2971 +class="element-name">'feDiffuseLighting'</span></a> for definition of N and
  2.2972 +(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p>
  2.2973 +
  2.2974 +<p>The definition of H reflects our assumption of the constant eye vector E =
  2.2975 +(0,0,1):</p>
  2.2976 +
  2.2977 +<p class="filterformula">H = (L + E) / Norm(L+E)</p>
  2.2978 +
  2.2979 +<p>where L is the light unit vector.</p>
  2.2980 +
  2.2981 +<p>Unlike the <a href="#feDiffuseLighting"><span
  2.2982 +class="element-name">'feDiffuseLighting'</span></a>, the <span
  2.2983 +class="element-name">'feSpecularLighting'</span> filter produces a non-opaque
  2.2984 +image. This is due to the fact that the specular result
  2.2985 +(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be
  2.2986 +added to the textured image. The alpha channel of the result is the max of
  2.2987 +the color components, so that where the specular light is zero, no additional
  2.2988 +coverage is added to the image and a fully white highlight will add
  2.2989 +opacity.</p>
  2.2990 +
  2.2991 +<p>The <a href="#feDiffuseLighting"><span
  2.2992 +class="element-name">'feDiffuseLighting'</span></a> and <span
  2.2993 +class="element-name">'feSpecularLighting'</span> filters will often be
  2.2994 +applied together. An implementation may detect this and calculate both maps
  2.2995 +in one pass, instead of two.</p>
  2.2996 +
  2.2997 +<div class="adef-list">
  2.2998 +<p><em>Attribute definitions:</em></p>
  2.2999 +<dl>
  2.3000 +  <dt id="feSpecularLightingSurfaceScaleAttribute"><span
  2.3001 +  class="adef">surfaceScale</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3002 +    <dd>height of surface when A<sub>in</sub> = 1.<br />
  2.3003 +      If the attribute is not specified, then the effect is as if a value of
  2.3004 +      <span class="attr-value">1</span> were specified.<br />
  2.3005 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.3006 +  <dt id="feSpecularLightingSpecularConstantAttribute"><span
  2.3007 +  class="adef">specularConstant</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3008 +    <dd>ks in Phong lighting model. In SVG, this can be any non-negative
  2.3009 +      number.<br />
  2.3010 +      If the attribute is not specified, then the effect is as if a value of
  2.3011 +      <span class="attr-value">1</span> were specified.<br />
  2.3012 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.3013 +  <dt id="feSpecularLightingSpecularExponentAttribute"><span
  2.3014 +  class="adef">specularExponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3015 +    <dd>Exponent for specular term, larger is more "shiny". Range 1.0 to
  2.3016 +      128.0.<br />
  2.3017 +      If the attribute is not specified, then the effect is as if a value of
  2.3018 +      <span class="attr-value">1</span> were specified.<br />
  2.3019 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.3020 +  <dt id="feSpecularLightingKernelUnitLengthAttribute"><span
  2.3021 +  class="adef">kernelUnitLength</span> = "<span
  2.3022 +  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
  2.3023 +    <dd>The first number is the &lt;dx&gt; value. The second number is the
  2.3024 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
  2.3025 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
  2.3026 +      current filter units (i.e., units as determined by the value of
  2.3027 +      attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and
  2.3028 +      <code>dy</code>, respectively, in the <a
  2.3029 +      href="#SurfaceNormalCalculations">surface normal calculation
  2.3030 +      formulas</a>. By specifying value(s) for <span
  2.3031 +      class="attr-name">kernelUnitLength</span>, the kernel becomes defined
  2.3032 +      in a scalable, abstract coordinate system. If <span
  2.3033 +      class="attr-name">kernelUnitLength</span> is not specified, the
  2.3034 +      <code>dx</code> and <code>dy</code> values should represent very small
  2.3035 +      deltas relative to a given <code>(x,y)</code> position, which might be
  2.3036 +      implemented in some cases as one pixel in the intermediate image
  2.3037 +      offscreen bitmap, which is a pixel-based coordinate system, and thus
  2.3038 +      potentially not scalable. For some level of consistency across display
  2.3039 +      media and user agents, it is necessary that a value be provided for at
  2.3040 +      least one of <span class="attr-name">filterRes</span> and <span
  2.3041 +      class="attr-name">kernelUnitLength</span>. Discussion of intermediate
  2.3042 +      images are in the <a href="#Introduction">Introduction</a> and in the
  2.3043 +      description of attribute <a
  2.3044 +      href="#FilterElementFilterResAttribute"><span
  2.3045 +      class="attr-name">filterRes</span></a>.<br />
  2.3046 +      If a negative or zero value is specified the default value will be used
  2.3047 +      instead. <br />
  2.3048 +      <span class="anim-target">Animatable: yes.</span></dd>
  2.3049 +</dl>
  2.3050 +</div>
  2.3051 +
  2.3052 +<p>The light source is defined by one of the child elements <a
  2.3053 +href="#feDistantLightElement"><span
  2.3054 +class="element-name">'feDistantLight'</span></a>, <a
  2.3055 +href="#fePointLightElement"><span
  2.3056 +class="element-name">'fePointLight'</span></a> or <a
  2.3057 +href="#feDistantLightElement"><span
  2.3058 +class="element-name">'feDistantLight'</span></a>. The light color is
  2.3059 +specified by property <a href="#LightingColorProperty"><span
  2.3060 +class="prop-name">'lighting-color'</span></a>.</p>
  2.3061 +
  2.3062 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
  2.3063 +use of the <span class="element-name">feSpecularLighting</span> filter
  2.3064 +primitive to achieve a highly reflective, 3D glowing effect.</p>
  2.3065 +
  2.3066 +<h2 id="feTileElement">Filter primitive <span
  2.3067 +class="element-name">'feTile'</span></h2>
  2.3068 +
  2.3069 +<edit:elementsummary name='feTile'/>
  2.3070 +
  2.3071 +<p>This filter primitive fills a target rectangle with a repeated, tiled
  2.3072 +pattern of an input image. 
  2.3073 +The target rectangle is as large as the <a
  2.3074 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established
  2.3075 +by the <span class="element-name">'feTile'</span> element.
  2.3076 +</p>
  2.3077 +
  2.3078 +<p>Typically, the input image has been defined with its own <a
  2.3079 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to
  2.3080 +define a reference tile. <span class="element-name">'feTile'</span>
  2.3081 +replicates the reference tile in both X and Y to completely fill the target
  2.3082 +rectangle. The top/left corner of each given tile is at location
  2.3083 +<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the
  2.3084 +top/left of the input image's filter primitive subregion, <code>width</code>
  2.3085 +and <code>height</code> represent the width and height of the input image's
  2.3086 +filter primitive subregion, and <code>i</code> and <code>j</code> can be any
  2.3087 +integer value. In most cases, the input image will have a smaller filter
  2.3088 +primitive subregion than the <span class="element-name">'feTile'</span> in
  2.3089 +order to achieve a repeated pattern effect.</p>
  2.3090 +
  2.3091 +<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled
  2.3092 +image to avoid artifacts between tiles, particularly in situations where the
  2.3093 +user to device transform includes shear and/or rotation. Unless care is
  2.3094 +taken, interpolation can lead to edge pixels in the tile having opacity
  2.3095 +values lower or higher than expected due to the interaction of painting
  2.3096 +adjacent tiles which each have partial overlap with particular pixels.</p>
  2.3097 +
  2.3098 +<div class="adef-list">
  2.3099 +  </div>
  2.3100 +
  2.3101 +<h2 id="feTurbulenceElement">Filter primitive <span
  2.3102 +class="element-name">'feTurbulence'</span></h2>
  2.3103 +
  2.3104 +<edit:with element="feTurbulence">
  2.3105 +
  2.3106 +<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p>
  2.3107 +
  2.3108 +<p>This filter primitive creates an image using the Perlin turbulence
  2.3109 +function. It allows the synthesis of artificial textures like clouds or
  2.3110 +marble. For a detailed description the of the Perlin turbulence function, see
  2.3111 +"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting
  2.3112 +image will fill the entire <a>filter primitive subregion</a> for this filter primitive.</p>
  2.3113 +
  2.3114 +<p>It is possible to create bandwidth-limited noise by synthesizing only one
  2.3115 +octave.</p>
  2.3116 +
  2.3117 +<p>The C code below shows the exact algorithm used for this filter effect.</p>
  2.3118 +
  2.3119 +<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of
  2.3120 +-1 to 1 (the actual result might exceed this range in some cases). To convert
  2.3121 +to a color value, use the formula <code>colorValue = ((turbFunctionResult *
  2.3122 +255) + 255) / 2</code>, then clamp to the range 0 to 255.</p>
  2.3123 +
  2.3124 +<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0
  2.3125 +to 1 (the actual result might exceed this range in some cases). To convert to
  2.3126 +a color value, use the formula <code>colorValue = (turbFunctionResult *
  2.3127 +255)</code>, then clamp to the range 0 to 255.</p>
  2.3128 +
  2.3129 +<p>The following order is used for applying the pseudo random numbers. An
  2.3130 +initial seed value is computed based on the <a>'seed'</a> attribute. 
  2.3131 +Then the implementation computes the lattice
  2.3132 +points for R, then continues getting additional pseudo random numbers
  2.3133 +relative to the last generated pseudo random number and computes the lattice
  2.3134 +points for G, and so on for B and A.</p>
  2.3135 +
  2.3136 +<p>The generated color and alpha values are in the color space determined by
  2.3137 +the <a>'color-interpolation-filters'</a> property:</p>
  2.3138 +<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2].
  2.3139 +Algorithm is: r = (a * r) mod m
  2.3140 +where a = 16807 and m = 2**31 - 1 = 2147483647
  2.3141 +See [Park &amp; Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988
  2.3142 +To test: the algorithm should produce the result 1043618065
  2.3143 +as the 10,000th generated number if the original seed is 1.
  2.3144 +*/
  2.3145 +#define RAND_m 2147483647 /* 2**31 - 1 */
  2.3146 +#define RAND_a 16807 /* 7**5; primitive root of m */
  2.3147 +#define RAND_q 127773 /* m / a */
  2.3148 +#define RAND_r 2836 /* m % a */
  2.3149 +long setup_seed(long lSeed)
  2.3150 +{
  2.3151 +  if (lSeed &lt;= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1;
  2.3152 +  if (lSeed &gt; RAND_m - 1) lSeed = RAND_m - 1;
  2.3153 +  return lSeed;
  2.3154 +}
  2.3155 +long random(long lSeed)
  2.3156 +{
  2.3157 +  long result;
  2.3158 +  result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q);
  2.3159 +  if (result &lt;= 0) result += RAND_m;
  2.3160 +  return result;
  2.3161 +}
  2.3162 +#define BSize 0x100
  2.3163 +#define BM 0xff
  2.3164 +#define PerlinN 0x1000
  2.3165 +#define NP 12 /* 2^PerlinN */
  2.3166 +#define NM 0xfff
  2.3167 +static uLatticeSelector[BSize + BSize + 2];
  2.3168 +static double fGradient[4][BSize + BSize + 2][2];
  2.3169 +struct StitchInfo
  2.3170 +{
  2.3171 +  int nWidth; // How much to subtract to wrap for stitching.
  2.3172 +  int nHeight;
  2.3173 +  int nWrapX; // Minimum value to wrap.
  2.3174 +  int nWrapY;
  2.3175 +};
  2.3176 +static void init(long lSeed)
  2.3177 +{
  2.3178 +  double s;
  2.3179 +  int i, j, k;
  2.3180 +  lSeed = setup_seed(lSeed);
  2.3181 +  for(k = 0; k &lt; 4; k++)
  2.3182 +  {
  2.3183 +    for(i = 0; i &lt; BSize; i++)
  2.3184 +    {
  2.3185 +      uLatticeSelector[i] = i;
  2.3186 +      for (j = 0; j &lt; 2; j++)
  2.3187 +        fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize;
  2.3188 +      s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1]));
  2.3189 +      fGradient[k][i][0] /= s;
  2.3190 +      fGradient[k][i][1] /= s;
  2.3191 +    }
  2.3192 +  }
  2.3193 +  while(--i)
  2.3194 +  {
  2.3195 +    k = uLatticeSelector[i];
  2.3196 +    uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize];
  2.3197 +    uLatticeSelector[j] = k;
  2.3198 +  }
  2.3199 +  for(i = 0; i &lt; BSize + 2; i++)
  2.3200 +  {
  2.3201 +    uLatticeSelector[BSize + i] = uLatticeSelector[i];
  2.3202 +    for(k = 0; k &lt; 4; k++)
  2.3203 +      for(j = 0; j &lt; 2; j++)
  2.3204 +        fGradient[k][BSize + i][j] = fGradient[k][i][j];
  2.3205 +  }
  2.3206 +}
  2.3207 +#define s_curve(t) ( t * t * (3. - 2. * t) )
  2.3208 +#define lerp(t, a, b) ( a + t * (b - a) )
  2.3209 +double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo)
  2.3210 +{
  2.3211 +  int bx0, bx1, by0, by1, b00, b10, b01, b11;
  2.3212 +  double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v;
  2.3213 +  register i, j;
  2.3214 +  t = vec[0] + PerlinN;
  2.3215 +  bx0 = (int)t;
  2.3216 +  bx1 = bx0+1;
  2.3217 +  rx0 = t - (int)t;
  2.3218 +  rx1 = rx0 - 1.0f;
  2.3219 +  t = vec[1] + PerlinN;
  2.3220 +  by0 = (int)t;
  2.3221 +  by1 = by0+1;
  2.3222 +  ry0 = t - (int)t;
  2.3223 +  ry1 = ry0 - 1.0f;
  2.3224 +  // If stitching, adjust lattice points accordingly.
  2.3225 +  if(pStitchInfo != NULL)
  2.3226 +  {
  2.3227 +    if(bx0 &gt;= pStitchInfo-&gt;nWrapX)
  2.3228 +      bx0 -= pStitchInfo-&gt;nWidth;
  2.3229 +    if(bx1 &gt;= pStitchInfo-&gt;nWrapX)
  2.3230 +      bx1 -= pStitchInfo-&gt;nWidth;
  2.3231 +    if(by0 &gt;= pStitchInfo-&gt;nWrapY)
  2.3232 +      by0 -= pStitchInfo-&gt;nHeight;
  2.3233 +    if(by1 &gt;= pStitchInfo-&gt;nWrapY)
  2.3234 +      by1 -= pStitchInfo-&gt;nHeight;
  2.3235 +  }
  2.3236 +  bx0 &amp;= BM;
  2.3237 +  bx1 &amp;= BM;
  2.3238 +  by0 &amp;= BM;
  2.3239 +  by1 &amp;= BM;
  2.3240 +  i = uLatticeSelector[bx0];
  2.3241 +  j = uLatticeSelector[bx1];
  2.3242 +  b00 = uLatticeSelector[i + by0];
  2.3243 +  b10 = uLatticeSelector[j + by0];
  2.3244 +  b01 = uLatticeSelector[i + by1];
  2.3245 +  b11 = uLatticeSelector[j + by1];
  2.3246 +  sx = double(s_curve(rx0));
  2.3247 +  sy = double(s_curve(ry0));
  2.3248 +  q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1];
  2.3249 +  q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1];
  2.3250 +  a = lerp(sx, u, v);
  2.3251 +  q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1];
  2.3252 +  q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1];
  2.3253 +  b = lerp(sx, u, v);
  2.3254 +  return lerp(sy, a, b);
  2.3255 +}
  2.3256 +double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY,
  2.3257 +          int nNumOctaves, bool bFractalSum, bool bDoStitching,
  2.3258 +          double fTileX, double fTileY, double fTileWidth, double fTileHeight)
  2.3259 +{
  2.3260 +  StitchInfo stitch;
  2.3261 +  StitchInfo *pStitchInfo = NULL; // Not stitching when NULL.
  2.3262 +  // Adjust the base frequencies if necessary for stitching.
  2.3263 +  if(bDoStitching)
  2.3264 +  {
  2.3265 +    // When stitching tiled turbulence, the frequencies must be adjusted
  2.3266 +    // so that the tile borders will be continuous.
  2.3267 +    if(fBaseFreqX != 0.0)
  2.3268 +    {
  2.3269 +      double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth;
  2.3270 +      double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth;
  2.3271 +      if(fBaseFreqX / fLoFreq &lt; fHiFreq / fBaseFreqX)
  2.3272 +        fBaseFreqX = fLoFreq;
  2.3273 +      else
  2.3274 +        fBaseFreqX = fHiFreq;
  2.3275 +    }
  2.3276 +    if(fBaseFreqY != 0.0)
  2.3277 +    {
  2.3278 +      double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight;
  2.3279 +      double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight;
  2.3280 +      if(fBaseFreqY / fLoFreq &lt; fHiFreq / fBaseFreqY)
  2.3281 +        fBaseFreqY = fLoFreq;
  2.3282 +      else
  2.3283 +        fBaseFreqY = fHiFreq;
  2.3284 +    }
  2.3285 +    // Set up initial stitch values.
  2.3286 +    pStitchInfo = &amp;stitch;
  2.3287 +    stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f);
  2.3288 +    stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth;
  2.3289 +    stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f);
  2.3290 +    stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight;
  2.3291 +  }
  2.3292 +  double fSum = 0.0f;
  2.3293 +  double vec[2];
  2.3294 +  vec[0] = point[0] * fBaseFreqX;
  2.3295 +  vec[1] = point[1] * fBaseFreqY;
  2.3296 +  double ratio = 1;
  2.3297 +  for(int nOctave = 0; nOctave &lt; nNumOctaves; nOctave++)
  2.3298 +  {
  2.3299 +    if(bFractalSum)
  2.3300 +      fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio);
  2.3301 +    else
  2.3302 +      fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio);
  2.3303 +    vec[0] *= 2;
  2.3304 +    vec[1] *= 2;
  2.3305 +    ratio *= 2;
  2.3306 +    if(pStitchInfo != NULL)
  2.3307 +    {
  2.3308 +      // Update stitch values. Subtracting PerlinN before the multiplication and
  2.3309 +      // adding it afterward simplifies to subtracting it once.
  2.3310 +      stitch.nWidth *= 2;
  2.3311 +      stitch.nWrapX = 2 * stitch.nWrapX - PerlinN;
  2.3312 +      stitch.nHeight *= 2;
  2.3313 +      stitch.nWrapY = 2 * stitch.nWrapY - PerlinN;
  2.3314 +    }
  2.3315 +  }
  2.3316 +  return fSum;
  2.3317 +}</pre>
  2.3318 +
  2.3319 +<div class="adef-list">
  2.3320 +<p><em>Attribute definitions:</em></p>
  2.3321 +<dl>
  2.3322 +  <dt id="feTurbulenceBaseFrequencyAttribute"><span
  2.3323 +  class="adef">baseFrequency</span> =
  2.3324 +  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
  2.3325 +    <dd>
  2.3326 +		<p>The base frequency (frequencies) parameter(s) for the noise function.
  2.3327 +      If two <a>&lt;number&gt;</a>s are provided, the first number represents a base frequency in the X
  2.3328 +      direction and the second value represents a base frequency in the Y
  2.3329 +      direction. If one number is provided, then that value is used for both
  2.3330 +      X and Y.</p>
  2.3331 +		<p>The <a>lacuna value</a> for <a>'baseFrequency'</a> is <span class="attr-value">0</span>.</p>
  2.3332 +		<p>Negative values are <a>unsupported</a>.</p>
  2.3333 +      	<p><span class="anim-target">Animatable: yes.</span></p>
  2.3334 +</dd>
  2.3335 +  <dt id="feTurbulenceNumOctavesAttribute"><span
  2.3336 +  class="adef">numOctaves</span> = "<em><a>&lt;integer&gt;</a></em>"</dt>
  2.3337 +    <dd>
  2.3338 +		<p>The numOctaves parameter for the noise function.</p>
  2.3339 +      	<p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a>lacuna value</a> for <a>'numOctaves'</a> is <span class="attr-value">1</span>.</span></p>
  2.3340 +		<p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a>unsupported</a>.</span></p>
  2.3341 +      	<p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p>
  2.3342 +	</dd>
  2.3343 +  <dt id="feTurbulenceSeedAttribute">
  2.3344 +  <span class="adef">seed</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3345 +    <dd>
  2.3346 +		<p>The starting number for the pseudo random number generator.</p>
  2.3347 +		<p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a>lacuna value</a> for <a>'seed'</a> is <span class="attr-value">0</span>.</span></p>
  2.3348 +	  	<p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 
  2.3349 +	  truncated, i.e. rounded to the closest integer value towards zero.</span></p>
  2.3350 +      	<p><span class="anim-target">Animatable: yes.</span></p>
  2.3351 +	</dd>
  2.3352 +  <dt id="feTurbulenceStitchTilesAttribute"><span
  2.3353 +  class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt>
  2.3354 +    <dd>
  2.3355 +	<p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt
  2.3356 +      it made to achieve smooth transitions at the border of tiles which
  2.3357 +      contain a turbulence function. Sometimes the result will show clear
  2.3358 +      discontinuities at the tile borders.<br />
  2.3359 +      If <span class="attr-value">stitchTiles="stitch"</span>, then the user
  2.3360 +      agent will automatically adjust baseFrequency-x and baseFrequency-y
  2.3361 +      values such that the <a>'feTurbulence'</a> node's width and height (i.e., the
  2.3362 +      width and height of the current subregion) contains an integral number
  2.3363 +      of the Perlin tile width and height for the first octave. The
  2.3364 +      baseFrequency will be adjusted up or down depending on which way has
  2.3365 +      the smallest relative (not absolute) change as follows: Given the
  2.3366 +      frequency, calculate <code>lowFreq=floor(width*frequency)/width</code>
  2.3367 +      and <code>hiFreq=ceil(width*frequency)/width</code>. If
  2.3368 +      frequency/lowFreq &lt; hiFreq/frequency then use lowFreq, else use
  2.3369 +      hiFreq. While generating turbulence values, generate lattice vectors as
  2.3370 +      normal for Perlin Noise, except for those lattice points that lie on
  2.3371 +      the right or bottom edges of the active area (the size of the resulting
  2.3372 +      tile). In those cases, copy the lattice vector from the opposite edge
  2.3373 +      of the active area.</p>
  2.3374 +	  <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a>lacuna value</a> for <a>'stitchTiles'</a> attribute is <span class="attr-value">noStitch</span>.</span></p>
  2.3375 +      <p><span class="anim-target">Animatable: yes.</span></p>
  2.3376 +	</dd>
  2.3377 +  <dt id="feTurbulenceTypeAttribute">
  2.3378 +  <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt>
  2.3379 +    <dd>
  2.3380 +		<p>Indicates whether the filter primitive should perform a noise or
  2.3381 +      turbulence function.</p>
  2.3382 +		<p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a>lacuna value</a> for <a>'type'</a> attribute is <span class="attr-value">turbulence</span>.</span></p>
  2.3383 +      	<p><span class="anim-target">Animatable: yes.</span></p>
  2.3384 +	</dd>
  2.3385 +</dl>
  2.3386 +</div>
  2.3387 +
  2.3388 +<edit:example href="examples/feTurbulence.svg" image="yes" link="yes"/>
  2.3389 +</edit:with>
  2.3390 +
  2.3391 +<h2 id="feDropShadowElement">Filter primitive <span
  2.3392 +class="element-name">'feDropShadow'</span></h2>
  2.3393 +
  2.3394 +<edit:elementsummary name='feDropShadow'/>
  2.3395 +
  2.3396 +<p>This filter creates a drop shadow of the input image. It is a shorthand
  2.3397 +filter, and is defined in terms of combinations of other <a>filter primitives</a>.
  2.3398 +The expectation is that it can be optimized more easily by
  2.3399 +implementations.</p>
  2.3400 +
  2.3401 +<p>The result of a <a>'feDropShadow'</a> filter
  2.3402 +primitive is equivalent to the following: 
  2.3403 +
  2.3404 +<pre class="examplesource">
  2.3405 +  &lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt; 
  2.3406 +  &lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt; 
  2.3407 +  &lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt; 
  2.3408 +  &lt;feComposite in2="offsetblur" operator="in"/&gt; 
  2.3409 +  &lt;feMerge&gt; 
  2.3410 +    &lt;feMergeNode/&gt;
  2.3411 +    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt; 
  2.3412 +  &lt;/feMerge&gt;
  2.3413 +</pre>
  2.3414 +</p>
  2.3415 +
  2.3416 +<p>
  2.3417 +The above divided into steps:
  2.3418 +<ol>
  2.3419 +  <li>Take the alpha channel of the input to the <a>'feDropShadow'</a> filter primitive and the <a>'feDropShadow/stdDeviation'</a> on the <a>'feDropShadow'</a> and do processing as if the
  2.3420 +    following <a>'feGaussianBlur'</a> was applied: 
  2.3421 +    <pre class="examplesource">	&lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt;</pre>
  2.3422 +    <br />
  2.3423 +  </li>
  2.3424 +  <li>Offset the result of step 1 by <a>'feDropShadow/dx'</a> and <a>'feDropShadow/dy'</a> as
  2.3425 +    specified on the <a>'feDropShadow'</a>
  2.3426 +    element, equivalent to applying an <a>'feOffset'</a> with these parameters: 
  2.3427 +    <pre class="examplesource">	&lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt;</pre>
  2.3428 +    <br />
  2.3429 +  </li>
  2.3430 +  <li>Do processing as if an <a>'feFlood'</a> element with <a>'flood-color'</a> and 
  2.3431 +	<a>'flood-opacity'</a> as specified on the <a>'feDropShadow'</a> was applied: 
  2.3432 +    <pre class="examplesource">	&lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt;</pre>
  2.3433 +    <br />
  2.3434 +  </li>
  2.3435 +  <li>Composite the result of the <a href="#feFloodElement"><span
  2.3436 +    class="element-name">'feFlood'</span></a> in step 3 with the result of
  2.3437 +    the <a href="#feOffsetElement"><span
  2.3438 +    class="element-name">'feOffset'</span></a> in step 2 as if an <a>'feComposite'</a> filter primitive with <a
  2.3439 +    href="#feCompositeOperatorAttribute"><span
  2.3440 +    class="attr-name">operator</span></a>='in' was applied: 
  2.3441 +    <pre class="examplesource">	&lt;feComposite in2="offsetblur" operator="in"/&gt;</pre>
  2.3442 +    <br />
  2.3443 +  </li>
  2.3444 +  <li>Finally merge the result of the previous step, doing processing as if
  2.3445 +    the following <a>'feMerge'</a> was performed: 
  2.3446 +    <pre class="examplesource">	&lt;feMerge&gt;
  2.3447 +	    &lt;feMergeNode/&gt;
  2.3448 +	    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt;
  2.3449 +	&lt;/feMerge&gt;</pre>
  2.3450 +  </li>
  2.3451 +</ol>
  2.3452 +</p>
  2.3453 +
  2.3454 +<p class="note implementation">Note that while the definition of the <span
  2.3455 +class="element-name">'feDropShadow'</span> filter primitive says that it can
  2.3456 +be expanded into an equivalent tree it is not required that it is implemented
  2.3457 +like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately.
  2.3458 +</p> 
  2.3459 +
  2.3460 +<p>Beyond the DOM interface <a
  2.3461 +href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way
  2.3462 +of accessing the internals of the <a>'feDropShadow'</a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the
  2.3463 +filter primitive is implemented as an equivalent tree then that tree must not
  2.3464 +be exposed to the DOM.</span> </p>
  2.3465 +
  2.3466 +<div class="adef-list">
  2.3467 +<p><em>Attribute definitions:</em></p>
  2.3468 +<dl>
  2.3469 +  <dt id="feDropShadowDxAttribute">
  2.3470 +  <span class="adef">dx</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3471 +    <dd>
  2.3472 +		<p>The x offset of the drop shadow.</p> 
  2.3473 +		<p>The <a>lacuna value</a> for <a>'feDropShadow/dx'</a> is <span class="attr-value">2</span>.</p> 
  2.3474 +		<p>This attribute is then forwarded to the <a>'feOffset/dx'</a> attribute of the internal <a>'feOffset'</a> element.</p>
  2.3475 +		<p><span class="anim-target">Animatable: yes.</span></p>
  2.3476 +	</dd>
  2.3477 +  <dt id="feDropShadowDyAttribute">
  2.3478 +  <span class="adef">dy</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
  2.3479 +    <dd>
  2.3480 +		<p>The y offset of the drop shadow.</p>
  2.3481 +		<p>The <a>lacuna value</a> for <a>'feDropShadow/dy'</a> is <span class="attr-value">2</span>. </p>
  2.3482 +		<p>This attribute is then forwarded to the <a>'feOffset/dy'</a> attribute of the internal <a>'feOffset'</a> element.</p>
  2.3483 +		<p><span class="anim-target">Animatable: yes.</span></p>
  2.3484 +	</dd>
  2.3485 +  <dt id="feDropShadowStdDeviationAttribute"><span
  2.3486 +  class="adef">stdDeviation</span> =
  2.3487 +  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
  2.3488 +    <dd>
  2.3489 +		<p>The standard deviation for the blur operation in the drop shadow.</p>
  2.3490 +		<p>The <a>lacuna value</a> for <a>'feDropShadow/stdDeviation'</a> is <span class="attr-value">2</span>.</p> 
  2.3491 +		<p>This attribute is then forwarded to the <a>'feGaussianBlur/stdDeviation'</a> attribute of the internal
  2.3492 +			<a>'feGaussianBlur'</a> element.</p>
  2.3493 +		<p><span class="anim-target">Animatable: yes.</span></p>
  2.3494 +	</dd>
  2.3495 +</dl>
  2.3496 +</div>
  2.3497 +
  2.3498 +<div class="note">
  2.3499 +<h2 id="feDiffuseSpecularElement">Filter primitive <span
  2.3500 +class="element-name">'feDiffuseSpecular'</span></h2>
  2.3501 +The SVG WG is looking at providing a shorthand for diffuse+specular.
  2.3502 +</div>
  2.3503 +
  2.3504 +<div class="note">
  2.3505 +<h2 id="feCustomElement">Filter primitive <span
  2.3506 +class="element-name">'feCustom'</span></h2>
  2.3507 +The SVG WG is looking to add a filter primitive that allows programmatic access
  2.3508 +to the pixel data for a filter, e.g via OpenCL.
  2.3509 +</div>
  2.3510 +
  2.3511 +<h2 id="RelaxNG">RelaxNG Schema for Filter Effects 1.0</h2>
  2.3512 +
  2.3513 +<p>The schema for Filter Effects 1.0 is written in <a
  2.3514 +href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a>
  2.3515 +[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses
  2.3516 +the datatypes from <a
  2.3517 +href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part
  2.3518 +2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and
  2.3519 +modularity to be much more naturally expressed than using DTD syntax. The
  2.3520 +RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas,
  2.3521 +or combined with other schemas in other languages into a multi-namespace,
  2.3522 +multi-grammar schema using <a
  2.3523 +href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation
  2.3524 +Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p>
  2.3525 +
  2.3526 +<p>Unlike a DTD, the schema used for validation is not hardcoded into the
  2.3527 +document instance. There is no equivalent to the DOCTYPE declaration. Simply
  2.3528 +point your editor or other validation tool to the IRI of the schema (or your
  2.3529 +local cached copy, as you prefer).</p>
  2.3530 +
  2.3531 +<p>
  2.3532 +The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 
  2.3533 +</p>
  2.3534 +
  2.3535 +<h2 id="DOMInterfaces">DOM interfaces</h2>
  2.3536 +<div class="note">
  2.3537 +The interfaces below will be made available in a IDL file for an upcoming draft.
  2.3538 +</div>
  2.3539 +
  2.3540 +<!-- AUTO-GENERATED DOM INTERFACES GO HERE --> 
  2.3541 +
  2.3542 +<h2 id="DOMInterfaces">DOM interfaces</h2>
  2.3543 +
  2.3544 +<h3 id="InterfaceImageData">Interface ImageData</h3>
  2.3545 +
  2.3546 +<edit:interface name='::svg::ImageData'/>
  2.3547 +
  2.3548 +<h3 id="InterfaceSVGFilterElement">Interface SVGFilterElement</h3>
  2.3549 +
  2.3550 +<edit:with element='filter'>
  2.3551 +<edit:interface name='::svg::SVGFilterElement'/>
  2.3552 +</edit:with>
  2.3553 +
  2.3554 +<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">Interface SVGFilterPrimitiveStandardAttributes</h3>
  2.3555 +
  2.3556 +<edit:with element='feTile'>
  2.3557 +<edit:interface name='::svg::SVGFilterPrimitiveStandardAttributes'/>
  2.3558 +</edit:with>
  2.3559 +
  2.3560 +<h3 id="InterfaceSVGFEBlendElement">Interface SVGFEBlendElement</h3>
  2.3561 +
  2.3562 +<edit:with element='feBlend'>
  2.3563 +<edit:interface name='::svg::SVGFEBlendElement'/>
  2.3564 +</edit:with>
  2.3565 +
  2.3566 +<h3 id="InterfaceSVGFEColorMatrixElement">Interface SVGFEColorMatrixElement</h3>
  2.3567 +
  2.3568 +<edit:with element='feColorMatrix'>
  2.3569 +<edit:interface name='::svg::SVGFEColorMatrixElement'/>
  2.3570 +</edit:with>
  2.3571 +
  2.3572 +<h3 id="InterfaceSVGFEComponentTransferElement">Interface SVGFEComponentTransferElement</h3>
  2.3573 +
  2.3574 +<edit:with element='feComponentTransfer'>
  2.3575 +<edit:interface name='::svg::SVGFEComponentTransferElement'/>
  2.3576 +</edit:with>
  2.3577 +
  2.3578 +<h3 id="InterfaceSVGComponentTransferFunctionElement">Interface SVGComponentTransferFunctionElement</h3>
  2.3579 +
  2.3580 +<edit:with element='feFuncR'>
  2.3581 +<edit:interface name='::svg::SVGComponentTransferFunctionElement'/>
  2.3582 +</edit:with>
  2.3583 +
  2.3584 +<h3 id="InterfaceSVGFEFuncRElement">Interface SVGFEFuncRElement</h3>
  2.3585 +
  2.3586 +<edit:with element='feFuncR'>
  2.3587 +<edit:interface name='::svg::SVGFEFuncRElement'/>
  2.3588 +</edit:with>
  2.3589 +
  2.3590 +<h3 id="InterfaceSVGFEFuncGElement">Interface SVGFEFuncGElement</h3>
  2.3591 +
  2.3592 +<edit:with element='feFuncG'>
  2.3593 +<edit:interface name='::svg::SVGFEFuncGElement'/>
  2.3594 +</edit:with>
  2.3595 +
  2.3596 +<h3 id="InterfaceSVGFEFuncBElement">Interface SVGFEFuncBElement</h3>
  2.3597 +
  2.3598 +<edit:with element='feFuncB'>
  2.3599 +<edit:interface name='::svg::SVGFEFuncBElement'/>
  2.3600 +</edit:with>
  2.3601 +
  2.3602 +<h3 id="InterfaceSVGFEFuncAElement">Interface SVGFEFuncAElement</h3>
  2.3603 +
  2.3604 +<edit:with element='feFuncA'>
  2.3605 +<edit:interface name='::svg::SVGFEFuncAElement'/>
  2.3606 +</edit:with>
  2.3607 +
  2.3608 +<h3 id="InterfaceSVGFECompositeElement">Interface SVGFECompositeElement</h3>
  2.3609 +
  2.3610 +<edit:with element='feComposite'>
  2.3611 +<edit:interface name='::svg::SVGFECompositeElement'/>
  2.3612 +</edit:with>
  2.3613 +
  2.3614 +<h3 id="InterfaceSVGFEConvolveMatrixElement">Interface SVGFEConvolveMatrixElement</h3>
  2.3615 +
  2.3616 +<edit:with element='feConvolveMatrix'>
  2.3617 +<edit:interface name='::svg::SVGFEConvolveMatrixElement'/>
  2.3618 +</edit:with>
  2.3619 +
  2.3620 +<h3 id="InterfaceSVGFEDiffuseLightingElement">Interface SVGFEDiffuseLightingElement</h3>
  2.3621 +
  2.3622 +<edit:with element='feDiffuseLighting'>
  2.3623 +<edit:interface name='::svg::SVGFEDiffuseLightingElement'/>
  2.3624 +</edit:with>
  2.3625 +
  2.3626 +<h3 id="InterfaceSVGFEDistantLightElement">Interface SVGFEDistantLightElement</h3>
  2.3627 +
  2.3628 +<edit:with element='feDistantLight'>
  2.3629 +<edit:interface name='::svg::SVGFEDistantLightElement'/>
  2.3630 +</edit:with>
  2.3631 +
  2.3632 +<h3 id="InterfaceSVGFEPointLightElement">Interface SVGFEPointLightElement</h3>
  2.3633 +
  2.3634 +<edit:with element='fePointLight'>
  2.3635 +<edit:interface name='::svg::SVGFEPointLightElement'/>
  2.3636 +</edit:with>
  2.3637 +
  2.3638 +<h3 id="InterfaceSVGFESpotLightElement">Interface SVGFESpotLightElement</h3>
  2.3639 +
  2.3640 +<edit:with element='feSpotLight'>
  2.3641 +<edit:interface name='::svg::SVGFESpotLightElement'/>
  2.3642 +</edit:with>
  2.3643 +
  2.3644 +<h3 id="InterfaceSVGFEDisplacementMapElement">Interface SVGFEDisplacementMapElement</h3>
  2.3645 +
  2.3646 +<edit:with element='feDisplacementMap'>
  2.3647 +<edit:interface name='::svg::SVGFEDisplacementMapElement'/>
  2.3648 +</edit:with>
  2.3649 +
  2.3650 +<h3 id="InterfaceSVGFEFloodElement">Interface SVGFEFloodElement</h3>
  2.3651 +
  2.3652 +<edit:with element='feFlood'>
  2.3653 +<edit:interface name='::svg::SVGFEFloodElement'/>
  2.3654 +</edit:with>
  2.3655 +
  2.3656 +<h3 id="InterfaceSVGFEGaussianBlurElement">Interface SVGFEGaussianBlurElement</h3>
  2.3657 +
  2.3658 +<edit:with element='feGaussianBlur'>
  2.3659 +<edit:interface name='::svg::SVGFEGaussianBlurElement'/>
  2.3660 +</edit:with>
  2.3661 +
  2.3662 +<h3 id="InterfaceSVGFEImageElement">Interface SVGFEImageElement</h3>
  2.3663 +
  2.3664 +<edit:with element='feImage'>
  2.3665 +<edit:interface name='::svg::SVGFEImageElement'/>
  2.3666 +</edit:with>
  2.3667 +
  2.3668 +<h3 id="InterfaceSVGFEMergeElement">Interface SVGFEMergeElement</h3>
  2.3669 +
  2.3670 +<edit:with element='feMerge'>
  2.3671 +<edit:interface name='::svg::SVGFEMergeElement'/>
  2.3672 +</edit:with>
  2.3673 +
  2.3674 +<h3 id="InterfaceSVGFEMergeNodeElement">Interface SVGFEMergeNodeElement</h3>
  2.3675 +
  2.3676 +<edit:with element='feMergeNode'>
  2.3677 +<edit:interface name='::svg::SVGFEMergeNodeElement'/>
  2.3678 +</edit:with>
  2.3679 +
  2.3680 +<h3 id="InterfaceSVGFEMorphologyElement">Interface SVGFEMorphologyElement</h3>
  2.3681 +
  2.3682 +<edit:with element='feMorphology'>
  2.3683 +<edit:interface name='::svg::SVGFEMorphologyElement'/>
  2.3684 +</edit:with>
  2.3685 +
  2.3686 +<h3 id="InterfaceSVGFEOffsetElement">Interface SVGFEOffsetElement</h3>
  2.3687 +
  2.3688 +<edit:with element='feOffset'>
  2.3689 +<edit:interface name='::svg::SVGFEOffsetElement'/>
  2.3690 +</edit:with>
  2.3691 +
  2.3692 +<h3 id="InterfaceSVGFESpecularLightingElement">Interface SVGFESpecularLightingElement</h3>
  2.3693 +
  2.3694 +<edit:with element='feSpecularLighting'>
  2.3695 +<edit:interface name='::svg::SVGFESpecularLightingElement'/>
  2.3696 +</edit:with>
  2.3697 +
  2.3698 +<h3 id="InterfaceSVGFETileElement">Interface SVGFETileElement</h3>
  2.3699 +
  2.3700 +<edit:with element='feTile'>
  2.3701 +<edit:interface name='::svg::SVGFETileElement'/>
  2.3702 +</edit:with>
  2.3703 +
  2.3704 +<h3 id="InterfaceSVGFETurbulenceElement">Interface SVGFETurbulenceElement</h3>
  2.3705 +
  2.3706 +<edit:with element='feTurbulence'>
  2.3707 +<edit:interface name='::svg::SVGFETurbulenceElement'/>
  2.3708 +</edit:with>
  2.3709 +
  2.3710 +<h3 id="InterfaceSVGFEDropShadowElement">Interface SVGFEDropShadowElement</h3>
  2.3711 +
  2.3712 +<edit:with element='feDropShadow'>
  2.3713 +<edit:interface name='::svg::SVGFEDropShadowElement'/>
  2.3714 +</edit:with>
  2.3715 +
  2.3716 +<h2 id="references1">References</h2>
  2.3717 +<h3 id="normref">Normative References</h3>
  2.3718 +<dl>
  2.3719 +  <dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt>
  2.3720 +    <dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 
  2.3721 +		Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie, eds.,
  2.3722 +		W3C, 23 April 2009, (Candidate Recommendation) </dd>
  2.3723 +
  2.3724 +  <dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt>
  2.3725 +    <dd><strong>Document Schema Definition Languages (DSDL) — Part 4:
  2.3726 +      Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD
  2.3727 +      19757-4</strong>, See <a
  2.3728 +      href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a>
  2.3729 +    </dd>
  2.3730 +
  2.3731 +  <dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt>
  2.3732 +    <dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff,
  2.3733 +      SIGGRAPH '84 Conference Proceedings, Association for Computing
  2.3734 +      Machinery, Volume 18, Number 3, July 1984. </dd>
  2.3735 +  <dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt>
  2.3736 +    <dd><strong>Document Schema Definition Languages (DSDL) — Part 2:
  2.3737 +      Regular grammar- based validation — RELAX NG. ISO/IEC FDIS
  2.3738 +      19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span
  2.3739 +      xml:lang="ja" lang="ja" class="rb">æ‘ç”° 真</span> <span
  2.3740 +      class="rp">(</span><span class="rt"><span
  2.3741 +      class="familyname">Murata</span> M.</span><span
  2.3742 +      class="rp">)</span></span>, eds., 12 December 2002. See <a
  2.3743 +      href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a>
  2.3744 +    </dd>
  2.3745 +  <dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt>
  2.3746 +    <dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P.
  2.3747 +      Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest
  2.3748 +      version available at <a
  2.3749 +      href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.
  2.3750 +      See also <a
  2.3751 +      href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing
  2.3752 +      XML 1.1 documents with XML Schema 1.0 processors</a>. </dd>
  2.3753 +  <dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt>
  2.3754 +    <dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>,
  2.3755 +      Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a
  2.3756 +      href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>
  2.3757 +    </dd>
  2.3758 +  <dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt>
  2.3759 +    <dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>,
  2.3760 +      Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a
  2.3761 +      href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a>
  2.3762 +    </dd>
  2.3763 +</dl>
  2.3764 +
  2.3765 +<h3 id="informref">Informative References</h3>
  2.3766 +<dl>
  2.3767 +  <dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt>
  2.3768 +    <dd><strong>HTML5</strong>, Ian Hickson editor, Google,
  2.3769 +      10 June 2008 (Working Draft). See <a
  2.3770 +      href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a>
  2.3771 +    </dd>
  2.3772 +</dl>
  2.3773 +
  2.3774 +  <h2 id="changes">Changes</h2>
  2.3775 +  <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p>
  2.3776 +</body>
  2.3777 +</html>
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/filters/master/SVGFilterPrimer.html	Mon Apr 11 10:08:48 2011 +1000
     3.3 @@ -0,0 +1,320 @@
     3.4 +<?xml version="1.0" encoding="UTF-8"?>
     3.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
     3.6 +<html xmlns="http://www.w3.org/1999/xhtml"
     3.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
     3.8 +<head>
     3.9 +  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    3.10 +  <title>SVG Filters 1.2, Part 1: Primer</title>
    3.11 +  <link rel="stylesheet" type="text/css" href="style/svg-style.css" />
    3.12 +  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
    3.13 +</head>
    3.14 +
    3.15 +<body>
    3.16 +
    3.17 +<div class="head">
    3.18 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
    3.19 +  <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1>
    3.20 +  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
    3.21 +  <dl>
    3.22 +    <dt>This version:</dt>
    3.23 +    <dd><edit:thisversion/></dd>
    3.24 +    <dt>Latest version:</dt>
    3.25 +    <dd><edit:latestversion/></dd>
    3.26 +    <dt>Previous version:</dt>
    3.27 +    <dd><edit:previousversion/></dd>
    3.28 +    <dt>Editor:</dt>
    3.29 +    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
    3.30 +    <dt>Authors:</dt>
    3.31 +    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
    3.32 +  </dl>
    3.33 +  <edit:copyright/>
    3.34 +</div>
    3.35 +
    3.36 +<hr/>
    3.37 +
    3.38 +<h2 id="abstract" edit:toc="no">Abstract </h2>
    3.39 +
    3.40 +<p>
    3.41 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
    3.42 +</p>
    3.43 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
    3.44 +</p>
    3.45 +<p>
    3.46 +This document introduces the features used by SVG filters.
    3.47 +</p>
    3.48 +
    3.49 +<h2 id="status" edit:toc="no">Status of This Document </h2>
    3.50 +
    3.51 +<p><em>This section describes the status of this document at the time of its
    3.52 +publication. Other documents may supersede this document. The latest status
    3.53 +of this document series is maintained at the W3C. </em> </p>
    3.54 +
    3.55 +<p>This document is the first public working draft of this specification. </p>
    3.56 +
    3.57 +<p>This document has been produced by the <a
    3.58 +href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
    3.59 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
    3.60 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
    3.61 +</p>
    3.62 +
    3.63 +<p>We explicitly invite comments on this specification. Please send them to
    3.64 +<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a
    3.65 +href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>).
    3.66 +For comments on the core SVG language, use <a
    3.67 +href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for
    3.68 +issues related to vector graphics on the Web (<a
    3.69 +href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance
    3.70 +of the archiving policy is requested automatically upon first post to either
    3.71 +list. To subscribe to these lists send an email to <a
    3.72 +href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a>
    3.73 +or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with
    3.74 +the word subscribe in the subject line. </p>
    3.75 +
    3.76 +<p>The latest information regarding <a
    3.77 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
    3.78 +related to this document is available on the Web. As of this publication, the
    3.79 +SVG Working Group are not aware of any royalty-bearing patents they believe
    3.80 +to be essential to SVG. </p>
    3.81 +<p>Publication of this document does not imply endorsement by the W3C
    3.82 +membership. A list of current W3C Recommendations and other technical
    3.83 +documents can be found at <a
    3.84 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
    3.85 +be updated, replaced, or obsoleted by other documents at any time. It is
    3.86 +inappropriate to cite a W3C Working Draft as anything other than a <em>work
    3.87 +in progress</em>." </p>
    3.88 +
    3.89 +<h2 id="howto" edit:toc="no">How to read this document and give feedback </h2>
    3.90 +
    3.91 +<p>This is a primer for the SVG Filter specification. It gives guidelines on
    3.92 +how to use the SVG Filter specification with SVG 1.2. In many cases the
    3.93 +reader will have to be familiar with the <a
    3.94 +href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p>
    3.95 +
    3.96 +<p>
    3.97 +This document is informative.
    3.98 +</p>
    3.99 +
   3.100 +<h2 id="toc" edit:toc="no">Table of Contents</h2>
   3.101 +
   3.102 +<edit:fulltoc/>
   3.103 +
   3.104 +<h2 id="Introduction">Filters in SVG</h2>
   3.105 +
   3.106 +<p>Filter effects are defined by <a>'filter element'</a> elements. To apply a filter effect
   3.107 +to a <a>graphics element</a> or a <a>container element</a>, you set the
   3.108 +value of the <a>'filter property'</a> property on the given element such that
   3.109 +it references the filter effect.</p>
   3.110 +
   3.111 +<p>Each <a>'filter element'</a> element contains a set of
   3.112 +<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter
   3.113 +primitive performs a single fundamental graphical operation (e.g., a blur or
   3.114 +a lighting effect) on one or more inputs, producing a graphical result.
   3.115 +Because most of the filter primitives represent some form of image
   3.116 +processing, in most cases the output from a filter primitive is a single RGBA
   3.117 +image.</p>
   3.118 +
   3.119 +<p>The original source graphic or the result from a filter primitive can be
   3.120 +used as input into one or more other filter primitives. A common application
   3.121 +is to use the source graphic multiple times. For example, a simple filter
   3.122 +could replace one graphic by two by adding a black copy of original source
   3.123 +graphic offset to create a drop shadow. In effect, there are now two layers
   3.124 +of graphics, both with the same original source graphics.</p>
   3.125 +
   3.126 +<p>When applied to <a>container elements</a> such as <a>'g'</a>, the <a>'filter property'</a>
   3.127 +property applies to the contents of the
   3.128 +group as a whole. The group's children do not render to the screen directly;
   3.129 +instead, the graphics commands necessary to render the children are stored
   3.130 +temporarily. Typically, the graphics commands are executed as part of the
   3.131 +processing of the referenced <a>'filter element'</a> element via use of the keywords
   3.132 +<a>SourceGraphic</a> or <a>SourceAlpha</a>.
   3.133 +Filter effects can be applied to <a>container elements</a> with no
   3.134 +content (e.g., an empty <a>'g'</a> element), in which case the
   3.135 +<a>SourceGraphic</a> or <a>SourceAlpha</a> consist of a transparent black
   3.136 +rectangle that is the size of the
   3.137 +<a>filter effects region</a>.</p>
   3.138 +
   3.139 +<p>Sometimes filter primitives result in undefined pixels. For example,
   3.140 +filter primitive <a>'feOffset'</a> can shift an image down and to the
   3.141 +right, leaving undefined pixels at the top and left. In these cases, the
   3.142 +undefined pixels are set to transparent black.</p>
   3.143 +
   3.144 +<h2 id="Example">An example</h2>
   3.145 +
   3.146 +<p>The following shows an example of a filter effect.</p>
   3.147 +
   3.148 +<p><span class="example-ref">Example filters01</span> - introducing filter
   3.149 +effects.</p>
   3.150 +
   3.151 +<edit:example href="examples/filters01.svg" image="yes" link="yes"/>
   3.152 +
   3.153 +<p>The filter effect used in the example above is repeated here with
   3.154 +reference numbers in the left column before each of the six filter
   3.155 +primitives:</p>
   3.156 +
   3.157 +<table summary="filter example with reference numbers">
   3.158 +  <tbody>
   3.159 +    <tr>
   3.160 +      <td valign="top"><pre style="color:black"> 
   3.161 + 
   3.162 +1
   3.163 +2
   3.164 +3
   3.165 + 
   3.166 + 
   3.167 + 
   3.168 + 
   3.169 +4
   3.170 +5
   3.171 + 
   3.172 +6
   3.173 + 
   3.174 + 
   3.175 + </pre>
   3.176 +      </td>
   3.177 +      <td valign="top"><pre>&lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
   3.178 +  &lt;desc&gt;Produces a 3D lighting effect.&lt;/desc&gt;
   3.179 +  &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
   3.180 +  &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
   3.181 +  &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   3.182 +                      specularExponent="20" lighting-color="#bbbbbb" 
   3.183 +                      result="specOut"&gt;
   3.184 +    &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
   3.185 +  &lt;/feSpecularLighting&gt;
   3.186 +  &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
   3.187 +  &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
   3.188 +               k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
   3.189 +  &lt;feMerge&gt;
   3.190 +    &lt;feMergeNode in="offsetBlur"/&gt;
   3.191 +    &lt;feMergeNode in="litPaint"/&gt;
   3.192 +  &lt;/feMerge&gt;
   3.193 +&lt;/filter&gt;</pre>
   3.194 +      </td>
   3.195 +    </tr>
   3.196 +  </tbody>
   3.197 +</table>
   3.198 +
   3.199 +<p>The following pictures show the intermediate image results from each of
   3.200 +the six filter elements:</p>
   3.201 +
   3.202 +<table summary="filter example intermediate results">
   3.203 +  <tbody>
   3.204 +    <tr>
   3.205 +      <td><p><img width="115" height="70"
   3.206 +        alt="filters01 - original source graphic"
   3.207 +        src="examples/filters01-0.png" /><br />
   3.208 +        Source graphic</p>
   3.209 +      </td>
   3.210 +      <td> </td>
   3.211 +      <td><p><img width="115" height="70"
   3.212 +        alt="filters01 - after filter element 1"
   3.213 +        src="examples/filters01-1.png" /><br />
   3.214 +        After filter primitive 1</p>
   3.215 +      </td>
   3.216 +      <td> </td>
   3.217 +      <td><p><img width="115" height="70"
   3.218 +        alt="filters01 - after filter element 2"
   3.219 +        src="examples/filters01-2.png" /><br />
   3.220 +        After filter primitive 2</p>
   3.221 +      </td>
   3.222 +      <td> </td>
   3.223 +      <td><p><img width="115" height="70"
   3.224 +        alt="filters01 - after filter element 3"
   3.225 +        src="examples/filters01-3.png" /><br />
   3.226 +        After filter primitive 3</p>
   3.227 +      </td>
   3.228 +    </tr>
   3.229 +    <tr>
   3.230 +      <td> </td>
   3.231 +      <td> </td>
   3.232 +      <td></td>
   3.233 +      <td></td>
   3.234 +      <td></td>
   3.235 +      <td></td>
   3.236 +      <td></td>
   3.237 +    </tr>
   3.238 +    <tr>
   3.239 +      <td> </td>
   3.240 +      <td> </td>
   3.241 +      <td><p><img width="115" height="70"
   3.242 +        alt="filters01 - after filter element 4"
   3.243 +        src="examples/filters01-4.png" /><br />
   3.244 +        After filter primitive 4</p>
   3.245 +      </td>
   3.246 +      <td> </td>
   3.247 +      <td><p><img width="115" height="70"
   3.248 +        alt="filters01 - after filter element 5"
   3.249 +        src="examples/filters01-5.png" /><br />
   3.250 +        After filter primitive 5</p>
   3.251 +      </td>
   3.252 +      <td> </td>
   3.253 +      <td><p><img width="115" height="70"
   3.254 +        alt="filters01 - after filter element 6"
   3.255 +        src="examples/filters01-6.png" /><br />
   3.256 +        After filter primitive 6</p>
   3.257 +      </td>
   3.258 +    </tr>
   3.259 +  </tbody>
   3.260 +</table>
   3.261 +<ol>
   3.262 +  <li>Filter primitive <a>'feGaussianBlur'</a> takes input <a>SourceAlpha</a>,
   3.263 +    which is the alpha channel of
   3.264 +    the source graphic. The result is stored in a temporary buffer named
   3.265 +    "blur". Note that "blur" is used as input to both filter primitives 2 and
   3.266 +    3.</li>
   3.267 +  <li>Filter primitive <a>'feOffset'</a> takes buffer "blur", shifts
   3.268 +    the result in a positive direction in both x and y, and creates a new
   3.269 +    buffer named "offsetBlur". The effect is that of a drop shadow.</li>
   3.270 +  <li>Filter primitive <a>'feSpecularLighting'</a>, uses buffer "blur"
   3.271 +    as a model of a surface elevation and generates a lighting effect from a
   3.272 +    single point source. The result is stored in buffer "specOut".</li>
   3.273 +  <li>Filter primitive <a>'feComposite'</a> masks out the result of
   3.274 +    filter primitive 3 by the original source graphics alpha channel so that
   3.275 +    the intermediate result is no bigger than the original source
   3.276 +  graphic.</li>
   3.277 +  <li>Filter primitive <a>'feComposite'</a> composites the result of
   3.278 +    the specular lighting with the original source graphic.</li>
   3.279 +  <li>Filter primitive <a>'feMerge'</a> composites two layers together.
   3.280 +    The lower layer consists of the drop shadow result from filter primitive
   3.281 +    2. The upper layer consists of the specular lighting result from filter
   3.282 +    primitive 5.</li>
   3.283 +</ol>
   3.284 +
   3.285 +<h2 id="feGaussianBlurElement">Filter primitive <span
   3.286 +class="element-name">'feGaussianBlur'</span></h2>
   3.287 +
   3.288 +<p>
   3.289 +  The <a>'feGaussianBlur'</a> filter primitive can be used to create blur effects.
   3.290 +  Below is an example where the blur is applied only in one direction, which can
   3.291 +  give better performance in some <a>user agents</a>. 
   3.292 +  <edit:example href="examples/feGaussianBlur-stdDeviation-00.svg" image="yes" link="yes"/>
   3.293 +</p>
   3.294 +
   3.295 +<p>The blur filter can also be used for creating the impression of something being in motion, as in this example.
   3.296 +  <edit:example href="examples/feGaussianBlur-motion-00.svg" image="yes" link="yes"/>
   3.297 +</p>
   3.298 +
   3.299 +<h2 id="references">References </h2>
   3.300 +<dl>
   3.301 +  <dt id="SVG12Full">SVG12</dt>
   3.302 +    <dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>,
   3.303 +      Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a
   3.304 +      href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a>
   3.305 +    </dd>
   3.306 +  <dt id="SVG12Requirements">SVG12Reqs</dt>
   3.307 +    <dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor,
   3.308 +      W3C, 22 April 2002 (Working Draft). See <a
   3.309 +      href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a>
   3.310 +    </dd>
   3.311 +  <dt id="SVGFilterRequirements">SVGFilterReqs</dt>
   3.312 +    <dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007
   3.313 +      (Working Draft). See <a
   3.314 +      href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a>
   3.315 +    </dd>
   3.316 +  <dt id="SVG12Filter">SVG12Filters</dt>
   3.317 +    <dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a
   3.318 +      href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a>
   3.319 +    </dd>
   3.320 +</dl>
   3.321 +
   3.322 +</body>
   3.323 +</html>
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/filters/master/SVGFilterReqs.html	Mon Apr 11 10:08:48 2011 +1000
     4.3 @@ -0,0 +1,305 @@
     4.4 +<?xml version="1.0" encoding="UTF-8"?>
     4.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
     4.6 +<html xmlns="http://www.w3.org/1999/xhtml"
     4.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
     4.8 +<head>
     4.9 +  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    4.10 +  <title>SVG Filter Requirements</title>
    4.11 +  <style type="text/css">
    4.12 +
    4.13 +      .designgoals {
    4.14 +       list-style-type: decimal;
    4.15 +      }
    4.16 +
    4.17 +      .req-level1 {
    4.18 +       list-style-type: decimal;
    4.19 +       font-weight: bold;
    4.20 +      }
    4.21 +
    4.22 +      .req-level2 {
    4.23 +       list-style-type: decimal;
    4.24 +       font-weight: normal;
    4.25 +      }
    4.26 +
    4.27 +      .req-level1 li {
    4.28 +       margin-top: 1em;
    4.29 +      }
    4.30 +
    4.31 +      .req-level2 li {
    4.32 +       margin-top: 0em;
    4.33 +      }
    4.34 +
    4.35 +      .label {
    4.36 +       margin-top: 1em;
    4.37 +      }
    4.38 +
    4.39 +      .comment {
    4.40 +       background: #ffffaa;
    4.41 +      }
    4.42 +
    4.43 +      .svgversion {
    4.44 +       color: #336633;
    4.45 +       font-weight: bold;
    4.46 +      }
    4.47 +
    4.48 +      .term {
    4.49 +       font-weight: bold;
    4.50 +       color: #aa3333;
    4.51 +      }
    4.52 +
    4.53 +      .issue {
    4.54 +       color: #ff0000;
    4.55 +      }
    4.56 +
    4.57 +    </style>
    4.58 +  <link type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/base" />
    4.59 +</head>
    4.60 +
    4.61 +<body>
    4.62 +
    4.63 +<div class="head">
    4.64 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
    4.65 +  <h1 id="pagetitle">SVG Filter Requirements</h1>
    4.66 +  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
    4.67 +  <dl>
    4.68 +    <dt>This version:</dt>
    4.69 +    <dd><edit:thisversion/></dd>
    4.70 +    <dt>Latest version:</dt>
    4.71 +    <dd><edit:latestversion/></dd>
    4.72 +    <dt>Previous version:</dt>
    4.73 +    <dd><edit:previousversion/></dd>
    4.74 +    <dt>Editor:</dt>
    4.75 +    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
    4.76 +    <dt>Authors:</dt>
    4.77 +    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
    4.78 +  </dl>
    4.79 +  <edit:copyright/>
    4.80 +</div>
    4.81 +
    4.82 +<hr/>
    4.83 +
    4.84 +<h2 id="sec-abstract" edit:toc="no">Abstract</h2>
    4.85 +
    4.86 +<p>This document lists the design principles and requirements for the
    4.87 +creation of a SVG specification related to filters. </p>
    4.88 +
    4.89 +<h2 id="sec-status" edit:toc="no">Status of this Document</h2>
    4.90 +
    4.91 +<p>This is a W3C Working Draft for review by W3C Members and other interested
    4.92 +parties. It is a draft document and may be updated, replaced or made obsolete
    4.93 +by other documents at any time. It is inappropriate to use W3C Working Drafts
    4.94 +as reference material or to cite them as other than "work in progress". A
    4.95 +list of current W3C Recommendations and other technical documents, including
    4.96 +Working Drafts and Notes, can be found at <a
    4.97 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p>
    4.98 +
    4.99 +<p>This is the first release of the SVG Filter Requirements. It is expected
   4.100 +that this document will progress through a number of working drafts,
   4.101 +including "Last Call", before being published in final form. </p>
   4.102 +
   4.103 +<p>This document was developed by the <a
   4.104 +href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG)
   4.105 +working group as part of the W3C <a
   4.106 +href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors
   4.107 +of this document are the SVG Working Group members. </p>
   4.108 +
   4.109 +<p>Feedback on this document should be sent to the email list <a
   4.110 +href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This
   4.111 +is an archived public list specific to the issues of SVG Filters. Public
   4.112 +discussion of issues related to vector graphics on the Web and SVG in
   4.113 +particular takes place on the <a href="mailto:www-svg@w3.org">the public
   4.114 +mailing list of the SVG Working Group</a> (<a
   4.115 +href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To
   4.116 +subscribe send an email to <code>www-svg-request@w3.org</code> with the word
   4.117 +<code>subscribe</code> in the subject line. </p>
   4.118 +
   4.119 +<p>The latest information regarding <a rel="disclosures"
   4.120 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
   4.121 +related to this document is available on the Web. As of this publication, the
   4.122 +SVG Working Group are not aware of any royalty-bearing patents they believe
   4.123 +to be essential to SVG. </p>
   4.124 +
   4.125 +<p><em>This section represents the status of this document at the time this
   4.126 +version was published. It will become outdated if and when a new version is
   4.127 +published. The latest status is maintained at the W3C. </em> </p>
   4.128 +
   4.129 +<h2 id="toc" edit:toc="no">Table of Contents</h2>
   4.130 +
   4.131 +<edit:fulltoc/>
   4.132 +
   4.133 +<div class="div1">
   4.134 +<h2 id="sec-introduction">Introduction </h2>
   4.135 +
   4.136 +<p>The 
   4.137 +<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C
   4.138 +recommendation that describes two-dimensional graphics in XML. </p>
   4.139 +</div>
   4.140 +
   4.141 +<div class="div1">
   4.142 +<h2 id="sec-terminology">Terminology </h2>
   4.143 +
   4.144 +<p>The following key words and phrases used throughout this document are
   4.145 +defined here for clarity. The terms Must, Should, and May are used to specify
   4.146 +the extent to which an item is a requirement for the SVG working group in
   4.147 +defining SVGP. These recommendations should not be mistaken as a guide to
   4.148 +implementors. </p>
   4.149 +<ol>
   4.150 +  <li><b>'Must'</b> means that the item is an absolute requirement. </li>
   4.151 +  <li><b>'Should'</b> means that there may exist valid reasons in particular
   4.152 +    circumstances to ignore the item, but the full implications must be
   4.153 +    understood and carefully weighed before choosing a different course. </li>
   4.154 +  <li><b>'May' </b> means that item will be considered, but further
   4.155 +    examination is needed to determine if the item should be treated as a
   4.156 +    requirement. </li>
   4.157 +  <li><b>'SVG' </b> refers to SVG in general without reference to any version
   4.158 +    or profile. </li>
   4.159 +  <li><b>'SVG 1.0' </b> refers to the original SVG specification. </li>
   4.160 +  <li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li>
   4.161 +  <li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to
   4.162 +    reference this specification. </li>
   4.163 +  <li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for
   4.164 +    filtering. </li>
   4.165 +</ol>
   4.166 +</div>
   4.167 +
   4.168 +<div class="div1">
   4.169 +<h2 id="sec-usage">Usage Scenarios </h2>
   4.170 +
   4.171 +<p>The following usage scenarios illustrate some of the ways in which SVG
   4.172 +Filters might be used for various applications. </p>
   4.173 +
   4.174 +<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to
   4.175 +produce drop shadows. </p>
   4.176 +<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p>
   4.177 +</div>
   4.178 +
   4.179 +<div class="div1">
   4.180 +<h2 id="sec-features">Special Filter Considerations</h2>
   4.181 +
   4.182 +<p><b>Memory and processor requirements</b> A filter effect may require
   4.183 +significant memory or processing resources. </p>
   4.184 +</div>
   4.185 +
   4.186 +<div class="div1">
   4.187 +<h2 id="sec-requirements">Requirements</h2>
   4.188 +<ol class="req-level1">
   4.189 +  <li>General Requirements 
   4.190 +    <ol class="req-level2">
   4.191 +      <li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid
   4.192 +        SVGF filter. </li>
   4.193 +      <li>Conformance criteria for SVGF <span class="term">must</span> be
   4.194 +        produced. The criteria <span class="term">should</span> be separated
   4.195 +        into sections relevant to particular application types (eg. SVG
   4.196 +        files/document fragments, SVG generators, SVG viewers, SVG printers,
   4.197 +        etc.) </li>
   4.198 +      <li>Software or documents <span class="term">must</span> pass the
   4.199 +        relevant criteria to be able to claim conformance to the particular
   4.200 +        application type. </li>
   4.201 +      <li>A conformance test suite <span class="term">must</span> be
   4.202 +        developed for SVGF. The test suite must be made publicly available.
   4.203 +        Conformance test suites for other uses of SVGF (e.g. prepress
   4.204 +        guidelines) <span class="term">may</span> be developed. </li>
   4.205 +      <li>A specification referencing SVGF <span class="term">may</span>
   4.206 +        declare that 'enableBackground' is not supported when used in
   4.207 +        conjunction with that specification. If so, then support for
   4.208 +        'backgroundAlpha' and 'backgroundImage' <span
   4.209 +        class="term">must</span> be excluded as well. </li>
   4.210 +      <li>A specification referencing SVGF <span class="term">must</span>
   4.211 +        declare if animations applies when a 'filter' chain is in its scope.
   4.212 +      </li>
   4.213 +    </ol>
   4.214 +  </li>
   4.215 +  <li>Scripting 
   4.216 +    <ol class="req-level2">
   4.217 +      <li>A dynamic SVGF viewer <span class="term">must</span> support the
   4.218 +        SVGF scripting feature set. </li>
   4.219 +    </ol>
   4.220 +  </li>
   4.221 +  <li>Animation 
   4.222 +    <ol class="req-level2">
   4.223 +      <li>A dynamic SVGF viewer <span class="term">must</span> support animation of all
   4.224 +        properties listed as animatable. </li>
   4.225 +    </ol>
   4.226 +  </li>
   4.227 +</ol>
   4.228 +</div>
   4.229 +
   4.230 +<div class="div1">
   4.231 +<h2 id="sec-references">References</h2>
   4.232 +<dl class="references">
   4.233 +  <dt class="label" id="ref-svg">SVG 1.1</dt>
   4.234 +    <dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon
   4.235 +      Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003
   4.236 +      (Recommendation). See <a
   4.237 +      href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd>
   4.238 +  <dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0
   4.239 +  Requirements</dt>
   4.240 +    <dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor,
   4.241 +      W3C, 22 April 2002. See <a
   4.242 +      href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a>
   4.243 +    </dd>
   4.244 +  <dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt>
   4.245 +    <dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin,
   4.246 +      editor, W3C, 14 January 2003 (Recommendation). See <a
   4.247 +      href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a>
   4.248 +    </dd>
   4.249 +</dl>
   4.250 +</div>
   4.251 +<hr class="xhtml" />
   4.252 +
   4.253 +<h2 id="sec-authorlist">Author List</h2>
   4.254 +
   4.255 +<p>The authors of this specification are the participants of the W3C SVG
   4.256 +Working Group.</p>
   4.257 +<dl>
   4.258 +  <dt>Authors:</dt>
   4.259 +    <dd><ul>
   4.260 +        <li>Ola Andersson, ZOOMON AB</li>
   4.261 +        <li>Henric Axelsson, Ericsson AB</li>
   4.262 +        <li>Phil Armstrong, Corel Corporation</li>
   4.263 +        <li>Robin Berjon, Expway</li>
   4.264 +        <li>Benoît Bézaire, Corel Corporation</li>
   4.265 +        <li>Craig Brown, Canon Information Systems Research Australia</li>
   4.266 +        <li>Mike Bultrowicz, Savage Software</li>
   4.267 +        <li>Tolga Capin, Nokia Inc.</li>
   4.268 +        <li>Mathias Larsson Carlander, Ericsson AB</li>
   4.269 +        <li>Jakob Cederquist, ZOOMON AB</li>
   4.270 +        <li>Charilaos Christopoulos, Ericsson AB</li>
   4.271 +        <li>Lee Cole, Quark</li>
   4.272 +        <li>Don Cone, America Online Inc.</li>
   4.273 +        <li>Alex Danilo, Canon Information Systems Research Australia</li>
   4.274 +        <li>Thomas DeWeese, Eastman Kodak</li>
   4.275 +        <li>Jon Ferraiolo, Adobe Systems Inc.</li>
   4.276 +        <li>Darryl Fuller, Schema Software</li>
   4.277 +        <li>藤沢 淳 (FUJISAWA Jun), Canon</li>
   4.278 +        <li>Rick Graham, BitFlash</li>
   4.279 +        <li>Vincent Hardy, Sun Microsystems Inc.</li>
   4.280 +        <li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li>
   4.281 +        <li>Lofton Henderson, OASIS</li>
   4.282 +        <li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li>
   4.283 +        <li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li>
   4.284 +        <li>Christophe Jolif, ILOG S.A.</li>
   4.285 +        <li>Lee Klosterman, Hewlett-Packard</li>
   4.286 +        <li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li>
   4.287 +        <li>Thierry Kormann, ILOG S.A.</li>
   4.288 +        <li>Yuri Khramov, Schema Software</li>
   4.289 +        <li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li>
   4.290 +        <li>Philip Mansfield, Schema Software</li>
   4.291 +        <li>Peter Mierau, Adobe Systems Inc.</li>
   4.292 +        <li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li>
   4.293 +        <li>Luc Minnebo, Agfa-Gevaert N.V.</li>
   4.294 +        <li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li>
   4.295 +        <li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li>
   4.296 +        <li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li>
   4.297 +        <li>Brad Sipes, ZOOMON AB</li>
   4.298 +        <li>Peter Sorotokin, Adobe Systems Inc.</li>
   4.299 +        <li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li>
   4.300 +        <li>Rick Yardumian, Canon Development Americas</li>
   4.301 +        <li>Charles Ying, Openwave Systems, Inc.</li>
   4.302 +      </ul>
   4.303 +    </dd>
   4.304 +</dl>
   4.305 +</body>
   4.306 +<!-- SVG Printing Requirements Document -->
   4.307 +<!-- $Id$ -->
   4.308 +</html>
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/filters/master/definitions-primer.xml	Mon Apr 11 10:08:48 2011 +1000
     5.3 @@ -0,0 +1,11 @@
     5.4 +<!-- Definitions file for SVG Filters 1.2 Primer -->
     5.5 +
     5.6 +<definitions xmlns='http://mcc.id.au/ns/local'>
     5.7 +
     5.8 +  <import
     5.9 +    href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/'
    5.10 +    cvs-href='SVGFilter.html'
    5.11 +    definitions='definitions.xml'
    5.12 +    />
    5.13 +
    5.14 +</definitions>
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/filters/master/definitions.xml	Mon Apr 11 10:08:48 2011 +1000
     6.3 @@ -0,0 +1,467 @@
     6.4 +<!-- Definitions file for SVG Filters 1.2 Language -->
     6.5 +
     6.6 +<definitions xmlns='http://mcc.id.au/ns/local'>
     6.7 +
     6.8 +  <import
     6.9 +    href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'
    6.10 +    definitions='../../../../SVG/profiles/1.1F2/master/definitions.xml'
    6.11 +    />
    6.12 +
    6.13 +  <import
    6.14 +    href='http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/'
    6.15 +    definitions='../../../../SVG/profiles/1.2T/master/definitions.xml'
    6.16 +    />
    6.17 +
    6.18 +  <!-- ... elements and element-specific attributes ....................... -->
    6.19 +  <element
    6.20 +      name='feBlend'
    6.21 +      href='#feBlendElement'
    6.22 +      contentmodel='anyof'
    6.23 +      elements='animate, set'
    6.24 +      attributecategories='core, style, presentation, filter primitive'
    6.25 +      attributes='in'
    6.26 +      interfaces='SVGFEBlendElement'>
    6.27 +    <attribute name='in2' href='#feBlendIn2Attribute'/>
    6.28 +    <attribute name='mode' href='#feBlendModeAttribute'/>
    6.29 +  </element>
    6.30 +
    6.31 +  <element
    6.32 +      name='feColorMatrix'
    6.33 +      href='#feColorMatrixElement'
    6.34 +      contentmodel='anyof'
    6.35 +      elements='animate, set'
    6.36 +      attributecategories='core, style, presentation, filter primitive'
    6.37 +      attributes='in'
    6.38 +      interfaces='SVGFEColorMatrixElement'>
    6.39 +    <attribute name='type' href='#feColorMatrixTypeAttribute'/>
    6.40 +    <attribute name='values' href='#feColorMatrixValuesAttribute'/>
    6.41 +  </element>
    6.42 +
    6.43 +  <element
    6.44 +    name='feComponentTransfer'
    6.45 +    href='#feComponentTransferElement'
    6.46 +    contentmodel='anyof'
    6.47 +    elements='feFuncR, feFuncG, feFuncB, feFuncA'
    6.48 +    attributecategories='core, style, presentation, filter primitive'
    6.49 +    attributes='in'
    6.50 +    interfaces='SVGFEComponentTransferElement'/>
    6.51 +
    6.52 +  <element
    6.53 +      name='feComposite'
    6.54 +      href='#feCompositeElement'
    6.55 +      contentmodel='anyof'
    6.56 +      elements='animate, set'
    6.57 +      attributecategories='core, style, presentation, filter primitive'
    6.58 +      attributes='in'
    6.59 +      interfaces='SVGFECompositeElement'>
    6.60 +    <attribute name='in2' href='#feCompositeIn2Attribute'/>
    6.61 +    <attribute name='operator' href='#feCompositeOperatorAttribute'/>
    6.62 +    <attribute name='k1' href='#feCompositeK1Attribute'/>
    6.63 +    <attribute name='k2' href='#feCompositeK2Attribute'/>
    6.64 +    <attribute name='k3' href='#feCompositeK3Attribute'/>
    6.65 +    <attribute name='k4' href='#feCompositeK4Attribute'/>
    6.66 +  </element>
    6.67 +
    6.68 +  <element
    6.69 +      name='feConvolveMatrix'
    6.70 +      href='#feConvolveMatrixElement'
    6.71 +      contentmodel='anyof'
    6.72 +      elements='animate, set'
    6.73 +      attributecategories='core, style, presentation, filter primitive'
    6.74 +      attributes='in'
    6.75 +      interfaces='SVGFEConvolveMatrixElement'>
    6.76 +    <attribute name='order' href='#feConvolveMatrixElementOrderAttribute'/>
    6.77 +    <attribute name='kernelMatrix' href='#feConvolveMatrixElementKernelMatrixAttribute'/>
    6.78 +    <attribute name='divisor' href='#feConvolveMatrixElementDivisorAttribute'/>
    6.79 +    <attribute name='bias' href='#feConvolveMatrixElementBiasAttribute'/>
    6.80 +    <attribute name='targetX' href='#feConvolveMatrixElementTargetXAttribute'/>
    6.81 +    <attribute name='targetY' href='#feConvolveMatrixElementTargetYAttribute'/>
    6.82 +    <attribute name='edgeMode' href='#feConvolveMatrixElementEdgeModeAttribute'/>
    6.83 +    <attribute name='kernelUnitLength' href='#feConvolveMatrixElementKernelUnitLengthAttribute'/>
    6.84 +    <attribute name='preserveAlpha' href='#feConvolveMatrixElementPreserveAlphaAttribute'/>
    6.85 +  </element>
    6.86 +
    6.87 +  <element
    6.88 +      name='feDiffuseLighting'
    6.89 +      href='#feDiffuseLightingElement'
    6.90 +      contentmodel='anyof'
    6.91 +      elementcategories='light source'
    6.92 +      elements='animate, set, animateColor'
    6.93 +      attributecategories='core, style, presentation, filter primitive'
    6.94 +      attributes='in'
    6.95 +      interfaces='SVGFEDiffuseLightingElement'>
    6.96 +    <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute'/>
    6.97 +    <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute'/>
    6.98 +    <attribute name='kernelUnitLength' href='#feDiffuseLightingKernelUnitLengthAttribute'/>
    6.99 +  </element>
   6.100 +
   6.101 +  <element
   6.102 +      name='feDisplacementMap'
   6.103 +      href='#feDisplacementMapElement'
   6.104 +      contentmodel='anyof'
   6.105 +      elements='animate, set'
   6.106 +      attributecategories='core, style, presentation, filter primitive'
   6.107 +      attributes='in'
   6.108 +      interfaces='SVGFEDisplacementMapElement'>
   6.109 +    <attribute name='in2' href='#feDisplacementMapIn2Attribute'/>
   6.110 +    <attribute name='scale' href='#feDisplacementMapScaleAttribute'/>
   6.111 +    <attribute name='xChannelSelector' href='#feDisplacementMapXChannelSelectorAttribute'/>
   6.112 +    <attribute name='yChannelSelector' href='#feDisplacementMapYChannelSelectorAttribute'/>
   6.113 +  </element>
   6.114 +
   6.115 +  <element
   6.116 +      name='feDistantLight'
   6.117 +      href='#feDistantLightElement'
   6.118 +      contentmodel='anyof'
   6.119 +      elements='animate, set'
   6.120 +      attributecategories='core'
   6.121 +      interfaces='SVGFEDistantLightElement'>
   6.122 +    <attribute name='azimuth' href='#feDistantLightAzimuthAttribute'/>
   6.123 +    <attribute name='elevation' href='#feDistantLightElevationAttribute'/>
   6.124 +  </element>
   6.125 +
   6.126 +  <element
   6.127 +    name='feFlood'
   6.128 +    href='#feFloodElement'
   6.129 +    contentmodel='anyof'
   6.130 +    elements='animate, set, animateColor'
   6.131 +    attributecategories='core, style, presentation, filter primitive'
   6.132 +    interfaces='SVGFEFloodElement'/>
   6.133 +
   6.134 +  <element
   6.135 +    name='feFuncR'
   6.136 +    contentmodel='anyof'
   6.137 +    elements='animate, set'
   6.138 +    attributecategories='core, transfer function element'
   6.139 +    interfaces='SVGFEFuncRElement'/>
   6.140 +
   6.141 +  <element
   6.142 +    name='feFuncG'
   6.143 +    contentmodel='anyof'
   6.144 +    elements='animate, set'
   6.145 +    attributecategories='core, transfer function element'
   6.146 +    interfaces='SVGFEFuncGElement'/>
   6.147 +
   6.148 +  <element
   6.149 +    name='feFuncB'
   6.150 +    contentmodel='anyof'
   6.151 +    elements='animate, set'
   6.152 +    attributecategories='core, transfer function element'
   6.153 +    interfaces='SVGFEFuncBElement'/>
   6.154 +
   6.155 +  <element
   6.156 +    name='feFuncA'
   6.157 +    contentmodel='anyof'
   6.158 +    elements='animate, set'
   6.159 +    attributecategories='core, transfer function element'
   6.160 +    interfaces='SVGFEFuncAElement'/>
   6.161 +
   6.162 +  <element
   6.163 +      name='feGaussianBlur'
   6.164 +      href='#feGaussianBlurElement'
   6.165 +      contentmodel='anyof'
   6.166 +      elements='animate, set'
   6.167 +      attributecategories='core, style, presentation, filter primitive'
   6.168 +      attributes='in'
   6.169 +      interfaces='SVGFEGaussianBlurElement'>
   6.170 +    <attribute name='stdDeviation' href='#feGaussianBlurStdDeviationAttribute'/>
   6.171 +  </element>
   6.172 +  
   6.173 +  <element
   6.174 +      name='feUnsharpMask'
   6.175 +      href='#feUnsharpMaskElement'
   6.176 +      contentmodel='anyof'
   6.177 +      elements='animate, set'
   6.178 +      attributecategories='core, style, presentation, filter primitive'
   6.179 +      attributes='in'
   6.180 +      interfaces='SVGFEUnsharpMaskElement'>
   6.181 +    <attribute name='amount' href='#feUnsharpMaskAmountAttribute'/>
   6.182 +    <attribute name='threshold' href='#feUnsharpMaskThresholdAttribute'/>
   6.183 +    <attribute name='stdDeviation' href='#feUnsharpMaskStdDeviationAttribute'/>
   6.184 +  </element>
   6.185 +
   6.186 +  <element
   6.187 +      name='feImage'
   6.188 +      href='#feImageElement'
   6.189 +      contentmodel='anyof'
   6.190 +      elements='animate, set, animateTransform'
   6.191 +      attributecategories='core, style, presentation, filter primitive, xlink'
   6.192 +      attributes='externalResourcesRequired, preserveAspectRatio'
   6.193 +      interfaces='SVGFEImageElement'>
   6.194 +    <attribute name='xlink:href' href='#feImageElementHrefAttribute'/>
   6.195 +  </element>
   6.196 +
   6.197 +  <element
   6.198 +    name='feMerge'
   6.199 +    href='#feMergeElement'
   6.200 +    contentmodel='anyof'
   6.201 +    elements='feMergeNode'
   6.202 +    attributecategories='core, style, presentation, filter primitive'
   6.203 +    interfaces='SVGFEMergeElement'/>
   6.204 +
   6.205 +  <element
   6.206 +      name='feMergeNode'
   6.207 +      href='#feMergeNodeElement'
   6.208 +      contentmodel='anyof'
   6.209 +      elements='animate, set'
   6.210 +      attributecategories='core'
   6.211 +      attributes='in'
   6.212 +      interfaces='SVGFEMergeNodeElement'/>
   6.213 +
   6.214 +  <element
   6.215 +      name='feMorphology'
   6.216 +      href='#feMorphologyElement'
   6.217 +      contentmodel='anyof'
   6.218 +      elements='animate, set'
   6.219 +      attributecategories='core, style, presentation, filter primitive'
   6.220 +      attributes='in'
   6.221 +      interfaces='SVGFEMorphologyElement'>
   6.222 +    <attribute name='operator' href='#feMorphologyOperatorAttribute'/>
   6.223 +    <attribute name='radius' href='#feMorphologyRadiusAttribute'/>
   6.224 +  </element>
   6.225 +
   6.226 +  <element
   6.227 +      name='feOffset'
   6.228 +      href='#feOffsetElement'
   6.229 +      contentmodel='anyof'
   6.230 +      elements='animate, set'
   6.231 +      attributecategories='core, style, presentation, filter primitive'
   6.232 +      attributes='in'
   6.233 +      interfaces='SVGFEOffsetElement'>
   6.234 +    <attribute name='dx' href='#feOffsetDxAttribute'/>
   6.235 +    <attribute name='dy' href='#feOffsetDyAttribute'/>
   6.236 +  </element>
   6.237 +
   6.238 +  <element
   6.239 +      name='fePointLight'
   6.240 +      href='#fePointLightElement'
   6.241 +      contentmodel='anyof'
   6.242 +      elements='animate, set'
   6.243 +      attributecategories='core'
   6.244 +      interfaces='SVGFEPointLightElement'>
   6.245 +    <attribute name='x' href='#fePointLightXAttribute'/>
   6.246 +    <attribute name='y' href='#fePointLightYAttribute'/>
   6.247 +    <attribute name='z' href='#fePointLightZAttribute'/>
   6.248 +  </element>
   6.249 +
   6.250 +  <element
   6.251 +      name='feSpecularLighting'
   6.252 +      href='#feSpecularLightingElement'
   6.253 +      contentmodel='anyof'
   6.254 +      elementcategories='light source'
   6.255 +      elements='animate, set, animateColor'
   6.256 +      attributecategories='core, style, presentation, filter primitive'
   6.257 +      attributes='in'
   6.258 +      interfaces='SVGFESpecularLightingElement'>
   6.259 +    <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute'/>
   6.260 +    <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute'/>
   6.261 +    <attribute name='specularExponent' href='#feSpecularLightingSpecularExponentAttribute'/>
   6.262 +    <attribute name='kernelUnitLength' href='#feSpecularLightingKernelUnitLengthAttribute'/>
   6.263 +  </element>
   6.264 +
   6.265 +  <element
   6.266 +      name='feSpotLight'
   6.267 +      href='#feSpotLightElement'
   6.268 +      contentmodel='anyof'
   6.269 +      elements='animate, set'
   6.270 +      attributecategories='core'
   6.271 +      interfaces='SVGFESpotLightElement'>
   6.272 +    <attribute name='x' href='#feSpotLightXAttribute'/>
   6.273 +    <attribute name='y' href='#feSpotLightYAttribute'/>
   6.274 +    <attribute name='z' href='#feSpotLightZAttribute'/>
   6.275 +    <attribute name='pointsAtX' href='#feSpotLightPointsAtXAttribute'/>
   6.276 +    <attribute name='pointsAtY' href='#feSpotLightPointsAtYAttribute'/>
   6.277 +    <attribute name='pointsAtZ' href='#feSpotLightPointsAtZAttribute'/>
   6.278 +    <attribute name='specularExponent' href='#feSpotLightSpecularExponentAttribute'/>
   6.279 +    <attribute name='limitingConeAngle' href='#feSpotLightLimitingConeAngleAttribute'/>
   6.280 +  </element>
   6.281 +
   6.282 +  <element
   6.283 +    name='feTile'
   6.284 +    href='#feTileElement'
   6.285 +    contentmodel='anyof'
   6.286 +    elements='animate, set'
   6.287 +    attributecategories='core, style, presentation, filter primitive'
   6.288 +    attributes='in'
   6.289 +    interfaces='SVGFETileElement'/>
   6.290 +
   6.291 +  <element
   6.292 +      name='feTurbulence'
   6.293 +      href='#feTurbulenceElement'
   6.294 +      contentmodel='anyof'
   6.295 +      elements='animate, set'
   6.296 +      attributecategories='core, style, presentation, filter primitive'
   6.297 +      interfaces='SVGFETurbulenceElement'>
   6.298 +    <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute'/>
   6.299 +    <attribute name='numOctaves' href='#feTurbulenceNumOctavesAttribute'/>
   6.300 +    <attribute name='seed' href='#feTurbulenceSeedAttribute'/>
   6.301 +    <attribute name='stitchTiles' href='#feTurbulenceStitchTilesAttribute'/>
   6.302 +    <attribute name='type' href='#feTurbulenceTypeAttribute'/>
   6.303 +  </element>
   6.304 +
   6.305 +  <element
   6.306 +      name='filter'
   6.307 +      href='#FilterElement'
   6.308 +      contentmodel='anyof'
   6.309 +      elementcategories='descriptive, filter primitive'
   6.310 +      elements='animate, set'
   6.311 +      attributecategories='core, style, presentation, xlink'
   6.312 +      attributes='externalResourcesRequired'
   6.313 +      interfaces='SVGFilterElement'>
   6.314 +    <attribute name='x' href='#FilterElementXAttribute'/>
   6.315 +    <attribute name='y' href='#FilterElementYAttribute'/>
   6.316 +    <attribute name='width' href='#FilterElementWidthAttribute'/>
   6.317 +    <attribute name='height' href='#FilterElementHeightAttribute'/>
   6.318 +    <attribute name='filterRes' href='#FilterElementFilterResAttribute'/>
   6.319 +    <attribute name='filterUnits' href='#FilterElementFilterUnitsAttribute'/>
   6.320 +    <attribute name='primitiveUnits' href='#FilterElementPrimitiveUnitsAttribute'/>
   6.321 +    <attribute name='xlink:href' href='#FilterElementHrefAttribute'/>
   6.322 +
   6.323 +    <!-- filter margin extensions -->
   6.324 +    <attribute name='mx' href='#FilterElementMxAttribute'/>
   6.325 +    <attribute name='my' href='#FilterElementMyAttribute'/>
   6.326 +    <attribute name='mw' href='#FilterElementMwAttribute'/>
   6.327 +    <attribute name='mh' href='#FilterElementMhAttribute'/>
   6.328 +    <attribute name='filterMarginUnits' href='#FilterElementFilterMarginUnitsAttribute'/>
   6.329 +    <attribute name='primitiveMarginUnits' href='#FilterElementPrimitiveMarginUnitsAttribute'/>
   6.330 +  </element>
   6.331 +
   6.332 +  <element
   6.333 +      name='feDropShadow'
   6.334 +      href='#feDropShadowElement'
   6.335 +      contentmodel='anyof'
   6.336 +      elements='animate, set, animateColor'
   6.337 +      attributecategories='core, style, presentation, filter primitive'
   6.338 +      attributes='in'
   6.339 +      interfaces='SVGFEDropShadowElement'>
   6.340 +    <attribute name='stdDeviation' href='#feDropShadowStdDeviationAttribute'/>
   6.341 +    <attribute name='dx' href='#feDropShadowDxAttribute'/>
   6.342 +    <attribute name='dy' href='#feDropShadowDyAttribute'/>
   6.343 +  </element>
   6.344 +
   6.345 +	<element
   6.346 +			name='feDiffuseSpecular'
   6.347 +      href='#feDiffuseSpecular'
   6.348 +      contentmodel='anyof'
   6.349 +      elements='animate, set, animateColor'
   6.350 +      attributecategories='core, style, presentation, filter primitive'
   6.351 +      attributes='in'
   6.352 +      interfaces='SVGFEDiffuseSpecular'>
   6.353 +  </element>
   6.354 +
   6.355 +	<element
   6.356 +			name='feCustom'
   6.357 +      href='#feCustom'
   6.358 +      contentmodel='anyof'
   6.359 +      elements='animate, set, animateColor'
   6.360 +      attributecategories='core, style, presentation, filter primitive'
   6.361 +      attributes='in'
   6.362 +      interfaces='SVGFECustom'>
   6.363 +  </element>
   6.364 +
   6.365 +  <!-- ... element categories ............................................ -->
   6.366 +  
   6.367 +  <elementcategory name='filter primitives' href='#TermFilterPrimitiveElements' elements='feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence'/>
   6.368 +  <elementcategory name='transfer function element' href='#TermComponentTransferFunctionElement' elements='feFuncR, feFuncG, feFuncB, feFuncA'/>
   6.369 +  
   6.370 +    <!-- ... attributes common to multiple elements ........................ -->
   6.371 +
   6.372 +    <!-- attribute common to most filter primitives (all except feFlood feImage feMerge feTurbulence -->
   6.373 +    <attribute name='in' elements='feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feMorphology, feOffset, feSpecularLighting, feTile' href='#FilterPrimitiveInAttribute'/>
   6.374 +
   6.375 +  <!-- ... attribute categories .......................................... -->
   6.376 +
   6.377 +  <attributecategory
   6.378 +      name='FilterPrimitiveAttributes'
   6.379 +      href='intro.html#TermFilterPrimitiveAttributes'>
   6.380 +    <attribute name='x' href='#FilterPrimitiveXAttribute'/>
   6.381 +    <attribute name='y' href='#FilterPrimitiveYAttribute'/>
   6.382 +    <attribute name='width' href='#FilterPrimitiveWidthAttribute'/>
   6.383 +    <attribute name='height' href='#FilterPrimitiveHeightAttribute'/>
   6.384 +    <attribute name='result' href='#FilterPrimitiveResultAttribute'/>
   6.385 +
   6.386 +    <!-- filter margin extensions -->
   6.387 +    <attribute name='mx' href='#FilterPrimitiveMxAttribute'/>
   6.388 +    <attribute name='my' href='#FilterPrimitiveMyAttribute'/>
   6.389 +    <attribute name='mw' href='#FilterPrimitiveMwAttribute'/>
   6.390 +    <attribute name='mh' href='#FilterPrimitiveMhAttribute'/>
   6.391 +  </attributecategory>
   6.392 +
   6.393 +  <attributecategory
   6.394 +      name='transfer function element'
   6.395 +      href='#TransferFunctionElementAttributes'>
   6.396 +    <attribute name='type' href='#feComponentTransferTypeAttribute'/>
   6.397 +    <attribute name='tableValues' href='#feComponentTransferTableValuesAttribute'/>
   6.398 +    <attribute name='slope' href='#feComponentTransferSlopeAttribute'/>
   6.399 +    <attribute name='intercept' href='#feComponentTransferInterceptAttribute'/>
   6.400 +    <attribute name='amplitude' href='#feComponentTransferAmplitudeAttribute'/>
   6.401 +    <attribute name='exponent' href='#feComponentTransferExponentAttribute'/>
   6.402 +    <attribute name='offset' href='#feComponentTransferOffsetAttribute'/>
   6.403 +  </attributecategory>
   6.404 +
   6.405 +
   6.406 +  <!-- ... properties ..................................................... -->
   6.407 +
   6.408 +  <property name='enable-background' href='#EnableBackgroundProperty'/>
   6.409 +  <property name='filter' href='#FilterProperty'/> 
   6.410 +  <property name='flood-color' href='#FloodColorProperty'/>
   6.411 +  <property name='flood-opacity' href='#FloodOpacityProperty'/>
   6.412 +  <property name='lighting-color' href='#LightingColorProperty'/>
   6.413 +  
   6.414 +  
   6.415 +  <!-- ... interfaces ..................................................... -->
   6.416 +
   6.417 +  <interface name='SVGFilterElement' href='#InterfaceSVGFilterElement'/>
   6.418 +  <interface name='SVGFilterPrimitiveStandardAttributes' href='#InterfaceSVGFilterPrimitiveStandardAttributes'/>
   6.419 +  <interface name='SVGFEBlendElement' href='#InterfaceSVGFEBlendElement'/>
   6.420 +  <interface name='SVGFEColorMatrixElement' href='#InterfaceSVGFEColorMatrixElement'/>
   6.421 +  <interface name='SVGFEComponentTransferElement' href='#InterfaceSVGFEComponentTransferElement'/>
   6.422 +  <interface name='SVGComponentTransferFunctionElement' href='#InterfaceSVGComponentTransferFunctionElement'/>
   6.423 +  <interface name='SVGFEFuncRElement' href='#InterfaceSVGFEFuncRElement'/>
   6.424 +  <interface name='SVGFEFuncGElement' href='#InterfaceSVGFEFuncGElement'/>
   6.425 +  <interface name='SVGFEFuncBElement' href='#InterfaceSVGFEFuncBElement'/>
   6.426 +  <interface name='SVGFEFuncAElement' href='#InterfaceSVGFEFuncAElement'/>
   6.427 +  <interface name='SVGFECompositeElement' href='#InterfaceSVGFECompositeElement'/>
   6.428 +  <interface name='SVGFEConvolveMatrixElement' href='#InterfaceSVGFEConvolveMatrixElement'/>
   6.429 +  <interface name='SVGFEDiffuseLightingElement' href='#InterfaceSVGFEDiffuseLightingElement'/>
   6.430 +  <interface name='SVGFEDistantLightElement' href='#InterfaceSVGFEDistantLightElement'/>
   6.431 +  <interface name='SVGFEPointLightElement' href='#InterfaceSVGFEPointLightElement'/>
   6.432 +  <interface name='SVGFESpotLightElement' href='#InterfaceSVGFESpotLightElement'/>
   6.433 +  <interface name='SVGFEDisplacementMapElement' href='#InterfaceSVGFEDisplacementMapElement'/>
   6.434 +  <interface name='SVGFEFloodElement' href='#InterfaceSVGFEFloodElement'/>
   6.435 +  <interface name='SVGFEGaussianBlurElement' href='#InterfaceSVGFEGaussianBlurElement'/>
   6.436 +  <interface name='SVGFEUnsharpMaskElement' href='#InterfaceSVGFEUnsharpMaskElement'/>
   6.437 +  <interface name='SVGFEImageElement' href='#InterfaceSVGFEImageElement'/>
   6.438 +  <interface name='SVGFEMergeElement' href='#InterfaceSVGFEMergeElement'/>
   6.439 +  <interface name='SVGFEMergeNodeElement' href='#InterfaceSVGFEMergeNodeElement'/>
   6.440 +  <interface name='SVGFEMorphologyElement' href='#InterfaceSVGFEMorphologyElement'/>
   6.441 +  <interface name='SVGFEOffsetElement' href='#InterfaceSVGFEOffsetElement'/>
   6.442 +  <interface name='SVGFESpecularLightingElement' href='#InterfaceSVGFESpecularLightingElement'/>
   6.443 +  <interface name='SVGFETileElement' href='#InterfaceSVGFETileElement'/>
   6.444 +  <interface name='SVGFETurbulenceElement' href='#InterfaceSVGFETurbulenceElement'/>
   6.445 +  <interface name='SVGFEDropShadowElement' href='#InterfaceSVGFEDropShadowElement'/>
   6.446 +  <interface name='ImageData' href='#InterfaceImageData'/>
   6.447 +  
   6.448 +  
   6.449 +  <!-- ... terms (these will be generated later) .......................... -->
   6.450 +  <term name='SourceAlpha' href='#SourceAlpha' class='attr-value'/>
   6.451 +  <term name='SourceGraphic' href='#SourceGraphic' class='attr-value'/>
   6.452 +  <term name='BackgroundImage' href='#BackgroundImage' class='attr-value'/>
   6.453 +  <term name='BackgroundAlpha' href='#BackgroundAlpha' class='attr-value'/>
   6.454 +  <term name='FillPaint' href='#FillPaint' class='attr-value'/>
   6.455 +  <term name='StrokePaint' href='#StrokePaint' class='attr-value'/>
   6.456 +  <term name='source graphic' href='#TermSourceGraphic'/>
   6.457 +  <term name='filter effects region' href='#FilterEffectsRegion'/>
   6.458 +  <term name='filter region' href='#FilterEffectsRegion'/>
   6.459 +  <term name='filter primitive' href='#TermFilterPrimitiveElement'/>
   6.460 +  <term name='filter primitive subregion' href='#FilterPrimitiveSubRegion'/>
   6.461 +  <term name='null filter' href='#TermNullFilter'/>
   6.462 +  <term name='transfer function element' href='#TermTransferFunctionElements'/>
   6.463 +  <term name='transfer function elements' href='#TermTransferFunctionElements'/>
   6.464 +  <term name='filter primitives' href='#TermFilterPrimitiveElements'/>
   6.465 +  <term name='filter primitive elements' href='#TermFilterPrimitiveElements'/>
   6.466 +  <term name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
   6.467 +  
   6.468 +  <!-- ... symbols (surrounded by &lt; and &gt;) .......................... -->
   6.469 +  <symbol name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
   6.470 +</definitions>
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/filters/master/examples/Forque.svg	Mon Apr 11 10:08:48 2011 +1000
     7.3 @@ -0,0 +1,109 @@
     7.4 +<?xml version="1.0" standalone="no"?>
     7.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
     7.6 +<svg xmlns="http://www.w3.org/2000/svg">
     7.7 +<defs>
     7.8 +<desc>
     7.9 +Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license.
    7.10 +</desc>
    7.11 +<font id="FORQUE" horiz-adv-x="815" >
    7.12 +<font-face  font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/>
    7.13 +<missing-glyph horiz-adv-x="389" />
    7.14 +<glyph glyph-name=".notdef" horiz-adv-x="389" />
    7.15 +<glyph glyph-name=".null" horiz-adv-x="0" />
    7.16 +<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" />
    7.17 +<glyph glyph-name="space" unicode=" "  horiz-adv-x="389" />
    7.18 +<glyph glyph-bame="tab" unicode="&#x09;" horiz-adv-x="389" />
    7.19 +<glyph glyph-bame="uni00A0" unicode="&#xa0;" horiz-adv-x="389" />
    7.20 +<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" />
    7.21 +<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
    7.22 +<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" />
    7.23 +<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" />
    7.24 +<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" />
    7.25 +<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" />
    7.26 +<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" />
    7.27 +<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" />
    7.28 +<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
    7.29 +<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
    7.30 +<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
    7.31 +<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
    7.32 +<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" />
    7.33 +<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" />
    7.34 +<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" />
    7.35 +<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" />
    7.36 +<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" />
    7.37 +<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" />
    7.38 +<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" />
    7.39 +<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" />
    7.40 +<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" />
    7.41 +<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" />
    7.42 +<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" />
    7.43 +<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
    7.44 +<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" />
    7.45 +<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" />
    7.46 +<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" />
    7.47 +<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" />
    7.48 +<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" />
    7.49 +<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
    7.50 +<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" />
    7.51 +<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" />
    7.52 +<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" />
    7.53 +<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
    7.54 +<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" />
    7.55 +<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" />
    7.56 +<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" />
    7.57 +<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
    7.58 +<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" />
    7.59 +<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" />
    7.60 +<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" />
    7.61 +<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" />
    7.62 +<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" />
    7.63 +<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" />
    7.64 +<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
    7.65 +<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
    7.66 +<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" />
    7.67 +<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" />
    7.68 +<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" />
    7.69 +<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" />
    7.70 +<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
    7.71 +<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" />
    7.72 +<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" />
    7.73 +<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" />
    7.74 +<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" />
    7.75 +<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
    7.76 +<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" />
    7.77 +<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" />
    7.78 +<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" />
    7.79 +<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
    7.80 +<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" />
    7.81 +<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" />
    7.82 +<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" />
    7.83 +<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
    7.84 +<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" />
    7.85 +<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" />
    7.86 +<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" />
    7.87 +<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" />
    7.88 +<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" />
    7.89 +<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" />
    7.90 +<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
    7.91 +<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
    7.92 +<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" />
    7.93 +<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" />
    7.94 +<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" />
    7.95 +<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" />
    7.96 +<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
    7.97 +<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" />
    7.98 +<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" />
    7.99 +<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" />
   7.100 +<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" />
   7.101 +<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" />
   7.102 +<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
   7.103 +<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
   7.104 +<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
   7.105 +<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
   7.106 +<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
   7.107 +<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
   7.108 +<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" />
   7.109 +<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
   7.110 +<glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" />
   7.111 +</font>
   7.112 +</defs></svg> 
     8.1 Binary file filters/master/examples/enable-background-01.png has changed
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/filters/master/examples/enable-background-01.svg	Mon Apr 11 10:08:48 2011 +1000
     9.3 @@ -0,0 +1,89 @@
     9.4 +<?xml version="1.0" standalone="no"?>
     9.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
     9.6 +  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
     9.7 +<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
     9.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
     9.9 +  <title>Example enable-background01</title>
    9.10 +  <desc>This test case shows five pictures which illustrate the rules
    9.11 +        for background image processing.</desc>
    9.12 +
    9.13 +  <defs>
    9.14 +    <filter id="ShiftBGAndBlur" 
    9.15 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
    9.16 +      <desc>
    9.17 +        This filter discards the SourceGraphic, if any, and just produces
    9.18 +        a result consisting of the BackgroundImage shifted down 125 units
    9.19 +        and then blurred.
    9.20 +      </desc>
    9.21 +      <feOffset in="BackgroundImage" dx="0" dy="125" />
    9.22 +      <feGaussianBlur stdDeviation="8" />
    9.23 +    </filter>
    9.24 +    <filter id="ShiftBGAndBlur_WithSourceGraphic" 
    9.25 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
    9.26 +      <desc>
    9.27 +        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
    9.28 +        and then renders the SourceGraphic on top of the shifted/blurred background.
    9.29 +      </desc>
    9.30 +      <feOffset in="BackgroundImage" dx="0" dy="125" />
    9.31 +      <feGaussianBlur stdDeviation="8" result="blur" />
    9.32 +      <feMerge>
    9.33 +        <feMergeNode in="blur"/>
    9.34 +        <feMergeNode in="SourceGraphic"/>
    9.35 +      </feMerge>
    9.36 +    </filter>
    9.37 +  </defs>
    9.38 +
    9.39 +  <g transform="translate(0,0)">
    9.40 +    <desc>The first picture is our reference graphic without filters.</desc>
    9.41 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
    9.42 +    <g opacity=".5">
    9.43 +      <circle cx="125" cy="75" r="45" fill="green"/>
    9.44 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
    9.45 +    </g>
    9.46 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
    9.47 +  </g>
    9.48 +
    9.49 +  <g enable-background="new" transform="translate(270,0)">
    9.50 +    <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
    9.51 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
    9.52 +    <g opacity=".5">
    9.53 +      <circle cx="125" cy="75" r="45" fill="green"/>
    9.54 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
    9.55 +    </g>
    9.56 +    <g filter="url(#ShiftBGAndBlur)"/>
    9.57 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
    9.58 +  </g>
    9.59 +
    9.60 +  <g enable-background="new" transform="translate(540,0)">
    9.61 +    <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
    9.62 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
    9.63 +    <g filter="url(#ShiftBGAndBlur)" opacity=".5">
    9.64 +      <circle cx="125" cy="75" r="45" fill="green"/>
    9.65 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
    9.66 +    </g>
    9.67 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
    9.68 +  </g>
    9.69 +
    9.70 +  <g enable-background="new" transform="translate(810,0)">
    9.71 +    <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
    9.72 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
    9.73 +    <g opacity=".5">
    9.74 +      <circle cx="125" cy="75" r="45" fill="green"/>
    9.75 +      <polygon points="160,25 160,125 240,75" fill="blue"
    9.76 +               filter="url(#ShiftBGAndBlur)"/>
    9.77 +    </g>
    9.78 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
    9.79 +  </g>
    9.80 +
    9.81 +  <g enable-background="new" transform="translate(1080,0)">
    9.82 +    <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
    9.83 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
    9.84 +    <g opacity=".5">
    9.85 +      <circle cx="125" cy="75" r="45" fill="green"/>
    9.86 +      <polygon points="160,25 160,125 240,75" fill="blue"
    9.87 +               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
    9.88 +    </g>
    9.89 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
    9.90 +  </g>
    9.91 +</svg>
    9.92 +
    10.1 Binary file filters/master/examples/feBlend.png has changed
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/filters/master/examples/feBlend.svg	Mon Apr 11 10:08:48 2011 +1000
    11.3 @@ -0,0 +1,46 @@
    11.4 +<?xml version="1.0"?>
    11.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    11.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    11.7 +<svg width="5cm" height="5cm" viewBox="0 0 500 500"
    11.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    11.9 +  <title>Example feBlend - Examples of feBlend modes</title>
   11.10 +  <desc>Five text strings blended into a gradient,
   11.11 +        with one text string for each of the five feBlend modes.</desc>
   11.12 +  <defs>
   11.13 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
   11.14 +            x1="100" y1="0" x2="300" y2="0">
   11.15 +      <stop offset="0" stop-color="#000000" />
   11.16 +      <stop offset=".33" stop-color="#ffffff" />
   11.17 +      <stop offset=".67" stop-color="#ff0000" />
   11.18 +      <stop offset="1" stop-color="#808080" />
   11.19 +    </linearGradient>
   11.20 +    <filter id="Normal">
   11.21 +      <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
   11.22 +    </filter>
   11.23 +    <filter id="Multiply">
   11.24 +      <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
   11.25 +    </filter>
   11.26 +    <filter id="Screen">
   11.27 +      <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
   11.28 +    </filter>
   11.29 +    <filter id="Darken">
   11.30 +      <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/>
   11.31 +    </filter>
   11.32 +    <filter id="Lighten">
   11.33 +      <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
   11.34 +    </filter>
   11.35 +  </defs>
   11.36 +  <rect fill="none" stroke="blue"  
   11.37 +        x="1" y="1" width="498" height="498"/>
   11.38 +  <g enable-background="new" >
   11.39 +    <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" />
   11.40 +    <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" >
   11.41 +      <text x="50" y="90" filter="url(#Normal)" >Normal</text>
   11.42 +      <text x="50" y="180" filter="url(#Multiply)" >Multiply</text>
   11.43 +      <text x="50" y="270" filter="url(#Screen)" >Screen</text>
   11.44 +      <text x="50" y="360" filter="url(#Darken)" >Darken</text>
   11.45 +      <text x="50" y="450" filter="url(#Lighten)" >Lighten</text>
   11.46 +    </g>
   11.47 +  </g>
   11.48 +</svg>
   11.49 +
    12.1 Binary file filters/master/examples/feColorMatrix.png has changed
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/filters/master/examples/feColorMatrix.svg	Mon Apr 11 10:08:48 2011 +1000
    13.3 @@ -0,0 +1,55 @@
    13.4 +<?xml version="1.0"?>
    13.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    13.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    13.7 +<svg width="8cm" height="5cm" viewBox="0 0 800 500"
    13.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    13.9 +  <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
   13.10 +  <desc>Five text strings showing the effects of feColorMatrix: 
   13.11 +        an unfiltered text string acting as a reference, 
   13.12 +        use of the feColorMatrix matrix option to convert to grayscale,
   13.13 +        use of the feColorMatrix saturate option,
   13.14 +        use of the feColorMatrix hueRotate option,
   13.15 +        and use of the feColorMatrix luminanceToAlpha option.</desc>
   13.16 +  <defs>
   13.17 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
   13.18 +            x1="100" y1="0" x2="500" y2="0">
   13.19 +      <stop offset="0" stop-color="#ff00ff" />
   13.20 +      <stop offset=".33" stop-color="#88ff88" />
   13.21 +      <stop offset=".67" stop-color="#2020ff" />
   13.22 +      <stop offset="1" stop-color="#d00000" />
   13.23 +    </linearGradient>
   13.24 +    <filter id="Matrix" filterUnits="objectBoundingBox" 
   13.25 +            x="0%" y="0%" width="100%" height="100%">
   13.26 +      <feColorMatrix type="matrix" in="SourceGraphic"
   13.27 +           values=".33 .33 .33 0 0 
   13.28 +                   .33 .33 .33 0 0 
   13.29 +                   .33 .33 .33 0 0 
   13.30 +                   .33 .33 .33 0 0"/>
   13.31 +    </filter>
   13.32 +    <filter id="Saturate40" filterUnits="objectBoundingBox" 
   13.33 +            x="0%" y="0%" width="100%" height="100%">
   13.34 +      <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/>
   13.35 +    </filter>
   13.36 +    <filter id="HueRotate90" filterUnits="objectBoundingBox" 
   13.37 +            x="0%" y="0%" width="100%" height="100%">
   13.38 +      <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
   13.39 +    </filter>
   13.40 +    <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
   13.41 +            x="0%" y="0%" width="100%" height="100%">
   13.42 +      <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
   13.43 +      <feComposite in="SourceGraphic" in2="a" operator="in" />
   13.44 +    </filter>
   13.45 +  </defs>
   13.46 +  <rect fill="none" stroke="blue"  
   13.47 +        x="1" y="1" width="798" height="498"/>
   13.48 +  <g font-family="Verdana" font-size="75" 
   13.49 +            font-weight="bold" fill="url(#MyGradient)" >
   13.50 +    <rect x="100" y="0" width="500" height="20" />
   13.51 +    <text x="100" y="90">Unfiltered</text>
   13.52 +    <text x="100" y="190" filter="url(#Matrix)" >Matrix</text>
   13.53 +    <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text>
   13.54 +    <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text>
   13.55 +    <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text>
   13.56 +  </g>
   13.57 +</svg>
   13.58 +
    14.1 Binary file filters/master/examples/feComponentTransfer.png has changed
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/filters/master/examples/feComponentTransfer.svg	Mon Apr 11 10:08:48 2011 +1000
    15.3 @@ -0,0 +1,65 @@
    15.4 +<?xml version="1.0"?>
    15.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    15.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    15.7 +<svg width="8cm" height="4cm" viewBox="0 0 800 400"
    15.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    15.9 +  <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
   15.10 +  <desc>Four text strings showing the effects of feComponentTransfer: 
   15.11 +        an identity function acting as a reference, 
   15.12 +        use of the feComponentTransfer table option,
   15.13 +        use of the feComponentTransfer linear option,
   15.14 +        and use of the feComponentTransfer gamma option.</desc>
   15.15 +  <defs>
   15.16 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
   15.17 +            x1="100" y1="0" x2="600" y2="0">
   15.18 +      <stop offset="0" stop-color="#ff0000" />
   15.19 +      <stop offset=".33" stop-color="#00ff00" />
   15.20 +      <stop offset=".67" stop-color="#0000ff" />
   15.21 +      <stop offset="1" stop-color="#000000" />
   15.22 +    </linearGradient>
   15.23 +    <filter id="Identity" filterUnits="objectBoundingBox" 
   15.24 +            x="0%" y="0%" width="100%" height="100%">
   15.25 +      <feComponentTransfer>
   15.26 +        <feFuncR type="identity"/>
   15.27 +        <feFuncG type="identity"/>
   15.28 +        <feFuncB type="identity"/>
   15.29 +        <feFuncA type="identity"/>
   15.30 +      </feComponentTransfer>
   15.31 +    </filter>
   15.32 +    <filter id="Table" filterUnits="objectBoundingBox" 
   15.33 +            x="0%" y="0%" width="100%" height="100%">
   15.34 +      <feComponentTransfer>
   15.35 +        <feFuncR type="table" tableValues="0 0 1 1"/>
   15.36 +        <feFuncG type="table" tableValues="1 1 0 0"/>
   15.37 +        <feFuncB type="table" tableValues="0 1 1 0"/>
   15.38 +      </feComponentTransfer>
   15.39 +    </filter>
   15.40 +    <filter id="Linear" filterUnits="objectBoundingBox" 
   15.41 +            x="0%" y="0%" width="100%" height="100%">
   15.42 +      <feComponentTransfer>
   15.43 +        <feFuncR type="linear" slope=".5" intercept=".25"/>
   15.44 +        <feFuncG type="linear" slope=".5" intercept="0"/>
   15.45 +        <feFuncB type="linear" slope=".5" intercept=".5"/>
   15.46 +      </feComponentTransfer>
   15.47 +    </filter>
   15.48 +    <filter id="Gamma" filterUnits="objectBoundingBox" 
   15.49 +            x="0%" y="0%" width="100%" height="100%">
   15.50 +      <feComponentTransfer>
   15.51 +        <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
   15.52 +        <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
   15.53 +        <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
   15.54 +      </feComponentTransfer>
   15.55 +    </filter>
   15.56 +  </defs>
   15.57 +  <rect fill="none" stroke="blue"  
   15.58 +        x="1" y="1" width="798" height="398"/>
   15.59 +  <g font-family="Verdana" font-size="75" 
   15.60 +            font-weight="bold" fill="url(#MyGradient)" >
   15.61 +    <rect x="100" y="0" width="600" height="20" />
   15.62 +    <text x="100" y="90">Identity</text>
   15.63 +    <text x="100" y="190" filter="url(#Table)" >TableLookup</text>
   15.64 +    <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text>
   15.65 +    <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text>
   15.66 +  </g>
   15.67 +</svg>
   15.68 +
    16.1 Binary file filters/master/examples/feComposite.png has changed
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/filters/master/examples/feComposite.svg	Mon Apr 11 10:08:48 2011 +1000
    17.3 @@ -0,0 +1,170 @@
    17.4 +<?xml version="1.0"?>
    17.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    17.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    17.7 +<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
    17.8 +     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    17.9 +  <title>Example feComposite - Examples of feComposite operations</title>
   17.10 +  <desc>Four rows of six pairs of overlapping triangles depicting
   17.11 +        the six different feComposite operators under different
   17.12 +        opacity values and different clearing of the background.</desc>
   17.13 +	<defs>
   17.14 +    <desc>Define two sets of six filters for each of the six compositing operators.
   17.15 +          The first set wipes out the background image by flooding with opaque white.
   17.16 +          The second set does not wipe out the background, with the result
   17.17 +          that the background sometimes shines through and is other cases
   17.18 +          is blended into itself (i.e., "double-counting").</desc>
   17.19 +    <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.20 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.21 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
   17.22 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.23 +    </filter>
   17.24 +    <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.25 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.26 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
   17.27 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.28 +    </filter>
   17.29 +    <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.30 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.31 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
   17.32 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.33 +    </filter>
   17.34 +    <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.35 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.36 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
   17.37 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.38 +    </filter>
   17.39 +    <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.40 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.41 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
   17.42 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.43 +    </filter>
   17.44 +    <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
   17.45 +            x="-5%" y="-5%" width="110%" height="110%">
   17.46 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
   17.47 +      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
   17.48 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
   17.49 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
   17.50 +    </filter>
   17.51 +    <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.52 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
   17.53 +    </filter>
   17.54 +    <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.55 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
   17.56 +    </filter>
   17.57 +    <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.58 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
   17.59 +    </filter>
   17.60 +    <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.61 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
   17.62 +    </filter>
   17.63 +    <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
   17.64 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
   17.65 +    </filter>
   17.66 +    <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
   17.67 +            x="-5%" y="-5%" width="110%" height="110%">
   17.68 +      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
   17.69 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
   17.70 +    </filter>
   17.71 +    <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" />
   17.72 +    <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" />
   17.73 +    <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" />
   17.74 +    <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" />
   17.75 +    <g id="TwoBlueTriangles">
   17.76 +      <use xlink:href="#Blue100"/>
   17.77 +      <use xlink:href="#Blue50"/>
   17.78 +    </g>
   17.79 +    <g id="BlueTriangles">
   17.80 +      <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/>
   17.81 +      <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/>
   17.82 +      <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/>
   17.83 +      <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/>
   17.84 +      <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/>
   17.85 +      <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/>
   17.86 +    </g>
   17.87 +  </defs>
   17.88 +
   17.89 +  <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/>
   17.90 +  <g font-family="Verdana" font-size="40" shape-rendering="crispEdges">
   17.91 +    <desc>Render the examples using the filters that draw on top of
   17.92 +          an opaque white surface, thus obliterating the background.</desc>
   17.93 +    <g enable-background="new">
   17.94 +      <text x="15" y="75">opacity 1.0</text>
   17.95 +      <text x="15" y="115" font-size="27">(with feFlood)</text>
   17.96 +      <text x="15" y="200">opacity 0.5</text>
   17.97 +      <text x="15" y="240" font-size="27">(with feFlood)</text>
   17.98 +      <use xlink:href="#BlueTriangles"/>
   17.99 +      <g transform="translate(275,25)">
  17.100 +        <use xlink:href="#Red100" filter="url(#overFlood)" />
  17.101 +        <use xlink:href="#Red50" filter="url(#overFlood)" />
  17.102 +        <text x="5" y="275">over</text>
  17.103 +      </g>
  17.104 +      <g transform="translate(400,25)">
  17.105 +        <use xlink:href="#Red100" filter="url(#inFlood)" />
  17.106 +        <use xlink:href="#Red50" filter="url(#inFlood)" />
  17.107 +        <text x="35" y="275">in</text>
  17.108 +      </g>
  17.109 +      <g transform="translate(525,25)">
  17.110 +        <use xlink:href="#Red100" filter="url(#outFlood)" />
  17.111 +        <use xlink:href="#Red50" filter="url(#outFlood)" />
  17.112 +        <text x="15" y="275">out</text>
  17.113 +      </g>
  17.114 +      <g transform="translate(650,25)">
  17.115 +        <use xlink:href="#Red100" filter="url(#atopFlood)" />
  17.116 +        <use xlink:href="#Red50" filter="url(#atopFlood)" />
  17.117 +        <text x="10" y="275">atop</text>
  17.118 +      </g>
  17.119 +      <g transform="translate(775,25)">
  17.120 +        <use xlink:href="#Red100" filter="url(#xorFlood)" />
  17.121 +        <use xlink:href="#Red50" filter="url(#xorFlood)" />
  17.122 +        <text x="15" y="275">xor</text>
  17.123 +      </g>
  17.124 +      <g transform="translate(900,25)">
  17.125 +        <use xlink:href="#Red100" filter="url(#arithmeticFlood)" />
  17.126 +        <use xlink:href="#Red50" filter="url(#arithmeticFlood)" />
  17.127 +        <text x="-25" y="275">arithmetic</text>
  17.128 +      </g>
  17.129 +    </g>
  17.130 +    <g transform="translate(0,325)" enable-background="new">
  17.131 +    <desc>Render the examples using the filters that do not obliterate
  17.132 +          the background, thus sometimes causing the background to continue
  17.133 +          to appear in some cases, and in other cases the background
  17.134 +          image blends into itself ("double-counting").</desc>
  17.135 +      <text x="15" y="75">opacity 1.0</text>
  17.136 +      <text x="15" y="115" font-size="27">(without feFlood)</text>
  17.137 +      <text x="15" y="200">opacity 0.5</text>
  17.138 +      <text x="15" y="240" font-size="27">(without feFlood)</text>
  17.139 +      <use xlink:href="#BlueTriangles"/>
  17.140 +      <g transform="translate(275,25)">
  17.141 +        <use xlink:href="#Red100" filter="url(#overNoFlood)" />
  17.142 +        <use xlink:href="#Red50" filter="url(#overNoFlood)" />
  17.143 +        <text x="5" y="275">over</text>
  17.144 +      </g>
  17.145 +      <g transform="translate(400,25)">
  17.146 +        <use xlink:href="#Red100" filter="url(#inNoFlood)" />
  17.147 +        <use xlink:href="#Red50" filter="url(#inNoFlood)" />
  17.148 +        <text x="35" y="275">in</text>
  17.149 +      </g>
  17.150 +      <g transform="translate(525,25)">
  17.151 +        <use xlink:href="#Red100" filter="url(#outNoFlood)" />
  17.152 +        <use xlink:href="#Red50" filter="url(#outNoFlood)" />
  17.153 +        <text x="15" y="275">out</text>
  17.154 +      </g>
  17.155 +      <g transform="translate(650,25)">
  17.156 +        <use xlink:href="#Red100" filter="url(#atopNoFlood)" />
  17.157 +        <use xlink:href="#Red50" filter="url(#atopNoFlood)" />
  17.158 +        <text x="10" y="275">atop</text>
  17.159 +      </g>
  17.160 +      <g transform="translate(775,25)">
  17.161 +        <use xlink:href="#Red100" filter="url(#xorNoFlood)" />
  17.162 +        <use xlink:href="#Red50" filter="url(#xorNoFlood)" />
  17.163 +        <text x="15" y="275">xor</text>
  17.164 +      </g>
  17.165 +      <g transform="translate(900,25)">
  17.166 +        <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" />
  17.167 +        <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" />
  17.168 +        <text x="-25" y="275">arithmetic</text>
  17.169 +      </g>
  17.170 +    </g>
  17.171 +  </g>
  17.172 +</svg>
  17.173 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/filters/master/examples/feDropShadow.svg	Mon Apr 11 10:08:48 2011 +1000
    18.3 @@ -0,0 +1,55 @@
    18.4 +<?xml version="1.0"?>
    18.5 +<svg viewBox="0 0 800 400"
    18.6 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    18.7 +  <title>Example feDropShadow - Examples of feDropShadow operations</title>
    18.8 +  <desc>Four text strings showing the effects of feComponentTransfer: 
    18.9 +        an identity function acting as a reference, 
   18.10 +        use of the feComponentTransfer table option,
   18.11 +        use of the feComponentTransfer linear option,
   18.12 +        and use of the feComponentTransfer gamma option.</desc>
   18.13 +  <defs>
   18.14 +    <filter id="feDropShadowEquiv1">
   18.15 +		<feGaussianBlur stdDeviation="3"/>
   18.16 +		<feOffset dx="3" dy="3" result="offsetblur"/>
   18.17 +		<feFlood flood-color="#720"/>
   18.18 +		<feComposite in2="offsetblur" operator="in"/>
   18.19 +		<feMerge>
   18.20 +			<feMergeNode/>
   18.21 +			<feMergeNode in="SourceGraphic"/>
   18.22 +		</feMerge>
   18.23 +    </filter>
   18.24 +    <filter id="feDropShadowEquiv2">
   18.25 +		<feGaussianBlur stdDeviation="2"/>
   18.26 +		<feOffset dx="2" dy="2" result="offsetblur"/>
   18.27 +		<feFlood/>
   18.28 +		<feComposite in2="offsetblur" operator="in"/>
   18.29 +		<feMerge>
   18.30 +			<feMergeNode/>
   18.31 +			<feMergeNode in="SourceGraphic"/>
   18.32 +		</feMerge>
   18.33 +    </filter>
   18.34 +	<filter id="feDropShadow1">
   18.35 +		<feDropShadow stdDeviation="3" flood-color="#720"/>
   18.36 +	</filter>
   18.37 +	<filter id="feDropShadow2">
   18.38 +		<feDropShadow/>
   18.39 +	</filter>
   18.40 +  </defs>
   18.41 +  <rect fill="none" stroke="blue"  
   18.42 +        x="1" y="1" width="798" height="398"/>
   18.43 +  <g font-family="Verdana" font-size="30">
   18.44 +    <g transform="translate(0,100)">
   18.45 +		<text x="210" text-anchor="middle" y="0">Reference</text>
   18.46 +		<rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/>
   18.47 +		<text x="100" y="90" filter="url(#feDropShadowEquiv1)" >feDropShadow</text>
   18.48 +		<text x="100" y="140" filter="url(#feDropShadowEquiv2)" >feDropShadow</text>
   18.49 +    </g>
   18.50 +    <g transform="translate(300,100)">
   18.51 +		<text x="210" text-anchor="middle" y="0">Actual</text>
   18.52 +		<rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/>
   18.53 +		<text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text>
   18.54 +		<text x="100" y="140" filter="url(#feDropShadow2)">feDropShadow</text>
   18.55 +	</g>
   18.56 +  </g>
   18.57 +</svg>
   18.58 +
    19.1 Binary file filters/master/examples/feGaussianBlur-motion-00.png has changed
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/filters/master/examples/feGaussianBlur-motion-00.svg	Mon Apr 11 10:08:48 2011 +1000
    20.3 @@ -0,0 +1,15 @@
    20.4 +<?xml version="1.0" encoding="UTF-8"?>
    20.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
    20.6 +  <defs>
    20.7 +    <filter id="motionblur" filterUnits="userSpaceOnUse">
    20.8 +      <feGaussianBlur stdDeviation="5 0"/>
    20.9 +    </filter>
   20.10 +    <symbol id="crow" viewBox="0 0 197 190">
   20.11 +      <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/>
   20.12 +    </symbol>
   20.13 +  </defs>
   20.14 +  
   20.15 +  <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/>
   20.16 +  <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/>
   20.17 +   
   20.18 +</svg>
    21.1 Binary file filters/master/examples/feGaussianBlur-stdDeviation-00.png has changed
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/filters/master/examples/feGaussianBlur-stdDeviation-00.svg	Mon Apr 11 10:08:48 2011 +1000
    22.3 @@ -0,0 +1,38 @@
    22.4 +<?xml version="1.0" encoding="UTF-8"?>
    22.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
    22.6 +  <defs>
    22.7 +    <font-face font-family="FORQUE">
    22.8 +      <font-face-src>
    22.9 +        <font-face-uri xlink:href="Forque.svg#FORQUE"/>
   22.10 +      </font-face-src>
   22.11 +    </font-face>
   22.12 +    <style>
   22.13 +      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
   22.14 +      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
   22.15 +      #bx { filter: url(#blurX) }
   22.16 +      #by { filter: url(#blurY) }
   22.17 +      #header { filter: url(#ds); fill: white; text-decoration: underline }
   22.18 +      #attribution { font-size: 6px }
   22.19 +      :root { background: green; fill: white }
   22.20 +    </style>
   22.21 +    <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse">
   22.22 +      <feGaussianBlur stdDeviation="4 0">
   22.23 +        <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/>
   22.24 +      </feGaussianBlur>
   22.25 +    </filter>
   22.26 +    <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse">
   22.27 +      <feGaussianBlur stdDeviation="0 4"/>
   22.28 +    </filter>
   22.29 +    <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2">
   22.30 +      <feGaussianBlur stdDeviation="3"/>
   22.31 +      <feOffset dx="2" dy="2"/>
   22.32 +      <feComposite in2="SourceGraphic" operator="in"/>
   22.33 +    </filter>
   22.34 +  </defs>
   22.35 +
   22.36 +  <text id="bx" x="40%" y="50%">BlurX</text>
   22.37 +  <text id="by" x="60%" y="70%">BlurY</text>
   22.38 +  
   22.39 +  <text id="header" y="1em" x="50%">Unidirectional blur</text>
   22.40 +  <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text>
   22.41 +</svg>
    23.1 Binary file filters/master/examples/feMorphology.png has changed
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/filters/master/examples/feMorphology.svg	Mon Apr 11 10:08:48 2011 +1000
    24.3 @@ -0,0 +1,37 @@
    24.4 +<?xml version="1.0"?>
    24.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    24.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    24.7 +<svg width="5cm" height="7cm" viewBox="0 0 700 500"
    24.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    24.9 +  <title>Example feMorphology - Examples of erode and dilate</title>
   24.10 +  <desc>Five text strings drawn as outlines.
   24.11 +        The first is unfiltered. The second and third use 'erode'.
   24.12 +        The fourth and fifth use 'dilate'.</desc>
   24.13 +  <defs>
   24.14 +    <filter id="Erode3">
   24.15 +      <feMorphology operator="erode" in="SourceGraphic" radius="3" />
   24.16 +    </filter>
   24.17 +    <filter id="Erode6">
   24.18 +      <feMorphology operator="erode" in="SourceGraphic" radius="6" />
   24.19 +    </filter>
   24.20 +    <filter id="Dilate3">
   24.21 +      <feMorphology operator="dilate" in="SourceGraphic" radius="3" />
   24.22 +    </filter>
   24.23 +    <filter id="Dilate6">
   24.24 +      <feMorphology operator="dilate" in="SourceGraphic" radius="6" />
   24.25 +    </filter>
   24.26 +  </defs>
   24.27 +  <rect fill="none" stroke="blue" stroke-width="2"  
   24.28 +        x="1" y="1" width="698" height="498"/>
   24.29 +  <g enable-background="new" >
   24.30 +    <g font-family="Verdana" font-size="75" 
   24.31 +              fill="none" stroke="black" stroke-width="6" >
   24.32 +      <text x="50" y="90">Unfiltered</text>
   24.33 +      <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text>
   24.34 +      <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text>
   24.35 +      <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text>
   24.36 +      <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text>
   24.37 +    </g>
   24.38 +  </g>
   24.39 +</svg>
   24.40 +
    25.1 Binary file filters/master/examples/feTurbulence.png has changed
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/filters/master/examples/feTurbulence.svg	Mon Apr 11 10:08:48 2011 +1000
    26.3 @@ -0,0 +1,71 @@
    26.4 +<?xml version="1.0"?>
    26.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    26.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    26.7 +<svg width="450px" height="325px" viewBox="0 0 450 325"
    26.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    26.9 +  <title>Example feTurbulence - Examples of feTurbulence operations</title>
   26.10 +  <desc>Six rectangular areas showing the effects of 
   26.11 +        various parameter settings for feTurbulence.</desc>
   26.12 +  <g  font-family="Verdana" text-anchor="middle" font-size="10" >
   26.13 +    <defs>
   26.14 +      <filter id="Turb1" filterUnits="objectBoundingBox" 
   26.15 +              x="0%" y="0%" width="100%" height="100%">
   26.16 +        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
   26.17 +      </filter>
   26.18 +      <filter id="Turb2" filterUnits="objectBoundingBox" 
   26.19 +              x="0%" y="0%" width="100%" height="100%">
   26.20 +        <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
   26.21 +      </filter>
   26.22 +      <filter id="Turb3" filterUnits="objectBoundingBox" 
   26.23 +              x="0%" y="0%" width="100%" height="100%">
   26.24 +        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/>
   26.25 +      </filter>
   26.26 +      <filter id="Turb4" filterUnits="objectBoundingBox" 
   26.27 +              x="0%" y="0%" width="100%" height="100%">
   26.28 +        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/>
   26.29 +      </filter>
   26.30 +      <filter id="Turb5" filterUnits="objectBoundingBox" 
   26.31 +              x="0%" y="0%" width="100%" height="100%">
   26.32 +        <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/>
   26.33 +      </filter>
   26.34 +      <filter id="Turb6" filterUnits="objectBoundingBox" 
   26.35 +              x="0%" y="0%" width="100%" height="100%">
   26.36 +        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/>
   26.37 +      </filter>
   26.38 +    </defs>
   26.39 +
   26.40 +    <rect x="1" y="1" width="448" height="323"
   26.41 +          fill="none" stroke="blue" stroke-width="1"  />
   26.42 +
   26.43 +    <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  />
   26.44 +    <text x="75" y="117">type=turbulence</text>
   26.45 +    <text x="75" y="129">baseFrequency=0.05</text>
   26.46 +    <text x="75" y="141">numOctaves=2</text>
   26.47 +
   26.48 +    <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  />
   26.49 +    <text x="225" y="117">type=turbulence</text>
   26.50 +    <text x="225" y="129">baseFrequency=0.1</text>
   26.51 +    <text x="225" y="141">numOctaves=2</text>
   26.52 +
   26.53 +    <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  />
   26.54 +    <text x="375" y="117">type=turbulence</text>
   26.55 +    <text x="375" y="129">baseFrequency=0.05</text>
   26.56 +    <text x="375" y="141">numOctaves=8</text>
   26.57 +
   26.58 +    <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  />
   26.59 +    <text x="75" y="272">type=fractalNoise</text>
   26.60 +    <text x="75" y="284">baseFrequency=0.1</text>
   26.61 +    <text x="75" y="296">numOctaves=4</text>
   26.62 +
   26.63 +    <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  />
   26.64 +    <text x="225" y="272">type=fractalNoise</text>
   26.65 +    <text x="225" y="284">baseFrequency=0.4</text>
   26.66 +    <text x="225" y="296">numOctaves=4</text>
   26.67 +
   26.68 +    <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  />
   26.69 +    <text x="375" y="272">type=fractalNoise</text>
   26.70 +    <text x="375" y="284">baseFrequency=0.1</text>
   26.71 +    <text x="375" y="296">numOctaves=1</text>
   26.72 +  </g>
   26.73 +</svg>
   26.74 +
    27.1 Binary file filters/master/examples/filters00.png has changed
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/filters/master/examples/filters00.svg	Mon Apr 11 10:08:48 2011 +1000
    28.3 @@ -0,0 +1,53 @@
    28.4 +<?xml version="1.0"?>
    28.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    28.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    28.7 +<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1"
    28.8 +     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    28.9 +  <title>Example filters00.svg - filter effects before and after</title>
   28.10 +  <desc>Picture of the before and after affects of filtering.</desc>
   28.11 +	<defs>
   28.12 +    <filter id="MyFilter">
   28.13 +			<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   28.14 +			<feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   28.15 +			<feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 
   28.16 +                          specularExponent="10" lighting-color="white"  
   28.17 +                          result="specOut">
   28.18 +				<fePointLight x="-5000" y="-10000" z="20000"/>
   28.19 +			</feSpecularLighting>
   28.20 +			<feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
   28.21 +			<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
   28.22 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
   28.23 +			<feMerge>
   28.24 +				<feMergeNode in="offsetBlur"/>
   28.25 +				<feMergeNode in="litPaint"/>
   28.26 +			</feMerge>
   28.27 +		</filter>
   28.28 +    <g id="CircleRectTriangle">
   28.29 +      <g>
   28.30 +        <circle cx="85" cy="80" r="40" fill="yellow"  />
   28.31 +<g>
   28.32 +        <rect x="145" y="45" width="90" height="70" fill="red"  />
   28.33 +</g>
   28.34 +        <path d="M260,40 L335,80 L260,120 z" fill="#4444ff"  />
   28.35 +      </g>
   28.36 +    </g>
   28.37 +    <path id="LineWithArrow" 
   28.38 +          d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" />
   28.39 +	</defs>
   28.40 +  <g font-family="Verdana" font-size="30" >
   28.41 +    <rect x="1" y="1" width="1128" height="218" 
   28.42 +          fill="#cccccc" stroke="blue" />
   28.43 +    <use x="0" y="0" xlink:href="#CircleRectTriangle"/>
   28.44 +    <text x="20" y="180">Original source graphic</text>
   28.45 +    <use x="380" y="80" xlink:href="#LineWithArrow"/>
   28.46 +    <text x="520" y="70">Filter</text>
   28.47 +    <text x="520" y="120">Effect</text>
   28.48 +    <use x="630" y="80" xlink:href="#LineWithArrow"/>
   28.49 +    <text x="790" y="180">Result of filter effect</text>
   28.50 +  </g>
   28.51 +  <g filter="url(#MyFilter)" >
   28.52 +    <use x="750" y="0" xlink:href="#CircleRectTriangle"/>
   28.53 +  </g>
   28.54 +</svg>
   28.55 +
   28.56 +
    29.1 Binary file filters/master/examples/filters01-0.png has changed
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/filters/master/examples/filters01-0.svg	Mon Apr 11 10:08:48 2011 +1000
    30.3 @@ -0,0 +1,23 @@
    30.4 +<?xml version="1.0"?>
    30.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    30.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    30.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1"
    30.8 +     xmlns="http://www.w3.org/2000/svg">
    30.9 +  <title>Example filters01-0.svg - source graphic with no filters</title>
   30.10 +  <desc>Shows what filters01.svg looks like without any
   30.11 +        filters.</desc>
   30.12 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   30.13 +  <g>
   30.14 +	  <g>
   30.15 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   30.16 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   30.17 +      <path fill="#D90000" 
   30.18 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   30.19 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   30.20 +  			<text x="52" y="76">SVG</text>
   30.21 +      </g>
   30.22 +	  </g>
   30.23 +  </g>
   30.24 +</svg>
   30.25 +
   30.26 +
    31.1 Binary file filters/master/examples/filters01-1.png has changed
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/filters/master/examples/filters01-1.svg	Mon Apr 11 10:08:48 2011 +1000
    32.3 @@ -0,0 +1,28 @@
    32.4 +<?xml version="1.0"?>
    32.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    32.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    32.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    32.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    32.9 +  <title>Example filters01-1.svg - after first step</title>
   32.10 +  <desc>Shows intermediate result for filters01.svg after applying
   32.11 +        the first filter element, feGaussianBlur.</desc>
   32.12 +	<defs>
   32.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   32.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   32.15 +		</filter>
   32.16 +	</defs>
   32.17 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   32.18 +  <g filter="url(#MyFilter)" >
   32.19 +	  <g>
   32.20 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   32.21 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   32.22 +      <path fill="#D90000" 
   32.23 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   32.24 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   32.25 +  			<text x="52" y="76">SVG</text>
   32.26 +      </g>
   32.27 +	  </g>
   32.28 +  </g>
   32.29 +</svg>
   32.30 +
   32.31 +
    33.1 Binary file filters/master/examples/filters01-2.png has changed
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/filters/master/examples/filters01-2.svg	Mon Apr 11 10:08:48 2011 +1000
    34.3 @@ -0,0 +1,29 @@
    34.4 +<?xml version="1.0"?>
    34.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    34.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    34.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    34.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    34.9 +  <title>Example filters01-2.svg - after second step</title>
   34.10 +  <desc>Shows intermediate result for filters01.svg after applying
   34.11 +        the second filter element, feOffset.</desc>
   34.12 +	<defs>
   34.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   34.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   34.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   34.16 +		</filter>
   34.17 +	</defs>
   34.18 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   34.19 +  <g filter="url(#MyFilter)" >
   34.20 +	  <g>
   34.21 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   34.22 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   34.23 +      <path fill="#D90000" 
   34.24 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   34.25 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   34.26 +  			<text x="52" y="76">SVG</text>
   34.27 +      </g>
   34.28 +	  </g>
   34.29 +  </g>
   34.30 +</svg>
   34.31 +
   34.32 +
    35.1 Binary file filters/master/examples/filters01-3.png has changed
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/filters/master/examples/filters01-3.svg	Mon Apr 11 10:08:48 2011 +1000
    36.3 @@ -0,0 +1,34 @@
    36.4 +<?xml version="1.0"?>
    36.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    36.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    36.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    36.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    36.9 +  <title>Example filters01-3.svg - after third step</title>
   36.10 +  <desc>Shows intermediate result for filters01.svg after applying
   36.11 +        the third filter element, feSpecularLighting.</desc>
   36.12 +	<defs>
   36.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   36.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   36.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   36.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   36.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
   36.18 +                          result="specOut">
   36.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
   36.20 +      </feSpecularLighting>
   36.21 +		</filter>
   36.22 +	</defs>
   36.23 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   36.24 +  <g filter="url(#MyFilter)" >
   36.25 +	  <g>
   36.26 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   36.27 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   36.28 +      <path fill="#D90000" 
   36.29 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   36.30 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   36.31 +  			<text x="52" y="76">SVG</text>
   36.32 +      </g>
   36.33 +	  </g>
   36.34 +  </g>
   36.35 +</svg>
   36.36 +
   36.37 +
    37.1 Binary file filters/master/examples/filters01-4.png has changed
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/filters/master/examples/filters01-4.svg	Mon Apr 11 10:08:48 2011 +1000
    38.3 @@ -0,0 +1,35 @@
    38.4 +<?xml version="1.0"?>
    38.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    38.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    38.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    38.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    38.9 +  <title>Example filters01-4.svg - after fourth step</title>
   38.10 +  <desc>Shows intermediate result for filters01.svg after applying
   38.11 +        the fourth filter element, feComposite.</desc>
   38.12 +	<defs>
   38.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   38.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   38.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   38.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   38.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
   38.18 +                          result="specOut">
   38.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
   38.20 +      </feSpecularLighting>
   38.21 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
   38.22 +		</filter>
   38.23 +	</defs>
   38.24 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   38.25 +  <g filter="url(#MyFilter)" >
   38.26 +	  <g>
   38.27 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   38.28 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   38.29 +      <path fill="#D90000" 
   38.30 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   38.31 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   38.32 +  			<text x="52" y="76">SVG</text>
   38.33 +      </g>
   38.34 +	  </g>
   38.35 +  </g>
   38.36 +</svg>
   38.37 +
   38.38 +
    39.1 Binary file filters/master/examples/filters01-5.png has changed
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/filters/master/examples/filters01-5.svg	Mon Apr 11 10:08:48 2011 +1000
    40.3 @@ -0,0 +1,37 @@
    40.4 +<?xml version="1.0"?>
    40.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    40.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    40.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    40.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    40.9 +  <title>Example filters01-5.svg - after fifth step</title>
   40.10 +  <desc>Shows intermediate result for filters01.svg after applying
   40.11 +        the fifth filter element, feComposite.</desc>
   40.12 +	<defs>
   40.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   40.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   40.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   40.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   40.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
   40.18 +                          result="specOut">
   40.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
   40.20 +      </feSpecularLighting>
   40.21 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
   40.22 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
   40.23 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
   40.24 +    </filter>
   40.25 +	</defs>
   40.26 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   40.27 +  <g filter="url(#MyFilter)" >
   40.28 +	  <g>
   40.29 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   40.30 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   40.31 +      <path fill="#D90000" 
   40.32 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   40.33 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   40.34 +  			<text x="52" y="76">SVG</text>
   40.35 +      </g>
   40.36 +	  </g>
   40.37 +  </g>
   40.38 +</svg>
   40.39 +
   40.40 +
    41.1 Binary file filters/master/examples/filters01-6.png has changed
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/filters/master/examples/filters01-6.svg	Mon Apr 11 10:08:48 2011 +1000
    42.3 @@ -0,0 +1,43 @@
    42.4 +<?xml version="1.0"?>
    42.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    42.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    42.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
    42.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    42.9 +  <title>Example filters01.svg - introducing filter effects</title>
   42.10 +  <desc>An example which combines multiple filter primitives
   42.11 +        to produce a 3D lighting effect on a graphic consisting
   42.12 +        of the string "SVG" sitting on top of oval filled in red
   42.13 +        and surrounded by an oval outlined in red.</desc>
   42.14 +  <defs>
   42.15 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   42.16 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   42.17 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   42.18 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   42.19 +                          specularExponent="20" lighting-color="#bbbbbb"  
   42.20 +                          result="specOut">
   42.21 +        <fePointLight x="-5000" y="-10000" z="20000"/>
   42.22 +      </feSpecularLighting>
   42.23 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
   42.24 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
   42.25 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
   42.26 +      <feMerge>
   42.27 +        <feMergeNode in="offsetBlur"/>
   42.28 +        <feMergeNode in="litPaint"/>
   42.29 +      </feMerge>
   42.30 +    </filter>
   42.31 +  </defs>
   42.32 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   42.33 +  <g filter="url(#MyFilter)" >
   42.34 +	  <g>
   42.35 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   42.36 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   42.37 +      <path fill="#D90000" 
   42.38 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   42.39 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   42.40 +        <text x="52" y="76">SVG</text>
   42.41 +      </g>
   42.42 +    </g>
   42.43 +  </g>
   42.44 +</svg>
   42.45 +
   42.46 +
    43.1 Binary file filters/master/examples/filters01.png has changed
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/filters/master/examples/filters01.svg	Mon Apr 11 10:08:48 2011 +1000
    44.3 @@ -0,0 +1,43 @@
    44.4 +<?xml version="1.0"?>
    44.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    44.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    44.7 +<svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
    44.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
    44.9 +  <title>Example filters01.svg - introducing filter effects</title>
   44.10 +  <desc>An example which combines multiple filter primitives
   44.11 +        to produce a 3D lighting effect on a graphic consisting
   44.12 +        of the string "SVG" sitting on top of oval filled in red
   44.13 +        and surrounded by an oval outlined in red.</desc>
   44.14 +  <defs>
   44.15 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
   44.16 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
   44.17 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
   44.18 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
   44.19 +                          specularExponent="20" lighting-color="#bbbbbb"  
   44.20 +                          result="specOut">
   44.21 +        <fePointLight x="-5000" y="-10000" z="20000"/>
   44.22 +      </feSpecularLighting>
   44.23 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
   44.24 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
   44.25 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
   44.26 +      <feMerge>
   44.27 +        <feMergeNode in="offsetBlur"/>
   44.28 +        <feMergeNode in="litPaint"/>
   44.29 +      </feMerge>
   44.30 +    </filter>
   44.31 +  </defs>
   44.32 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
   44.33 +  <g filter="url(#MyFilter)" >
   44.34 +	  <g>
   44.35 +      <path fill="none" stroke="#D90000" stroke-width="10" 
   44.36 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
   44.37 +      <path fill="#D90000" 
   44.38 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
   44.39 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
   44.40 +        <text x="52" y="76">SVG</text>
   44.41 +      </g>
   44.42 +    </g>
   44.43 +  </g>
   44.44 +</svg>
   44.45 +
   44.46 +
    45.1 Binary file filters/master/examples/filtersubregion00.png has changed
    46.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.2 +++ b/filters/master/examples/filtersubregion00.svg	Mon Apr 11 10:08:48 2011 +1000
    46.3 @@ -0,0 +1,43 @@
    46.4 +<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 
    46.5 +	<defs>
    46.6 +		<filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox">
    46.7 +		   <feFlood x="25%" y="25%" width="50%" height="50%"
    46.8 +					flood-color="green" flood-opacity="0.75"/>
    46.9 +		</filter>
   46.10 +		<filter id="blend" primitiveUnits="objectBoundingBox">
   46.11 +		   <feBlend x="25%" y="25%" width="50%" height="50%"
   46.12 +					in2="SourceGraphic" mode="multiply"/>
   46.13 +		</filter>
   46.14 +		<filter id="merge" primitiveUnits="objectBoundingBox">
   46.15 +		   <feMerge x="25%" y="25%" width="50%" height="50%">
   46.16 +				<feMergeNode in="SourceGraphic"/>
   46.17 +				<feMergeNode in="FillPaint"/>
   46.18 +		   </feMerge>
   46.19 +		</filter>
   46.20 +	</defs>
   46.21 +	
   46.22 +	<g fill="none" stroke="blue" stroke-width="4">
   46.23 +	   <rect width="200" height="200"/>
   46.24 +	   <line x2="200" y2="200"/>
   46.25 +	   <line x1="200" y2="200"/>
   46.26 +	</g>
   46.27 +	<circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/>
   46.28 +
   46.29 +	<g transform="translate(200 0)">
   46.30 +		<g fill="none" stroke="blue" stroke-width="4">
   46.31 +		   <rect width="200" height="200"/>
   46.32 +		   <line x2="200" y2="200"/>
   46.33 +		   <line x1="200" y2="200"/>
   46.34 +		</g>
   46.35 +		<circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/>
   46.36 +	</g>
   46.37 +	
   46.38 +	<g transform="translate(0 200)">
   46.39 +		<g fill="none" stroke="blue" stroke-width="4">
   46.40 +		   <rect width="200" height="200"/>
   46.41 +		   <line x2="200" y2="200"/>
   46.42 +		   <line x1="200" y2="200"/>
   46.43 +		</g>
   46.44 +		<circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/>
   46.45 +	</g>
   46.46 +</svg>
   46.47 \ No newline at end of file
    47.1 Binary file filters/master/examples/forest-small.jpg has changed
    48.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.2 +++ b/filters/master/mathml/feColorMatrix00.mml	Mon Apr 11 10:08:48 2011 +1000
    48.3 @@ -0,0 +1,209 @@
    48.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    48.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    48.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    48.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    48.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    48.9 +  <mrow>
   48.10 +  <mfenced open="[" close="]">
   48.11 +  	<mrow>
   48.12 +	    <mtable>
   48.13 +	      <mtr>
   48.14 +			<msup>
   48.15 +				<mi>R</mi>
   48.16 +				<mo>'</mo>
   48.17 +			</msup>
   48.18 +	      </mtr>
   48.19 +	      <mtr>
   48.20 +			<msup>
   48.21 +				<mi>G</mi>
   48.22 +				<mo>'</mo>
   48.23 +			</msup>
   48.24 +	      </mtr>
   48.25 +	      <mtr>
   48.26 +			<msup>
   48.27 +				<mi>B</mi>
   48.28 +				<mo>'</mo>
   48.29 +			</msup>
   48.30 +	      </mtr>
   48.31 +		  <mtr>
   48.32 +			<msup>
   48.33 +				<mi>A</mi>
   48.34 +				<mo>'</mo>
   48.35 +			</msup>
   48.36 +	      </mtr>
   48.37 +	    </mtable>
   48.38 +    </mrow>
   48.39 +  </mfenced>
   48.40 +  <mo>=</mo>
   48.41 +  <mfenced open="[" close="]">
   48.42 +   <mrow>
   48.43 +    <mtable>
   48.44 +        <mtr>
   48.45 +          <mtd>
   48.46 +			<msub>
   48.47 +				<mi>a</mi>
   48.48 +				<mn>00</mn>
   48.49 +			</msub>
   48.50 +          </mtd>
   48.51 +          <mtd>
   48.52 +			<msub>
   48.53 +				<mi>a</mi>
   48.54 +				<mn>01</mn>
   48.55 +			</msub>
   48.56 +          </mtd>
   48.57 +          <mtd>
   48.58 +			<msub>
   48.59 +				<mi>a</mi>
   48.60 +				<mn>02</mn>
   48.61 +			</msub>
   48.62 +		  </mtd>
   48.63 +          <mtd>
   48.64 +		  <msub>
   48.65 +            <mi>a</mi>
   48.66 +            <mn>03</mn>
   48.67 +          </msub>
   48.68 +		  </mtd>
   48.69 +          <mtd>
   48.70 +		  <msub>
   48.71 +            <mi>a</mi>
   48.72 +            <mn>04</mn>
   48.73 +          </msub>
   48.74 +		  </mtd>
   48.75 +        </mtr>
   48.76 +        <mtr>
   48.77 +          <mtd>
   48.78 +            <msub>
   48.79 +			<mi>a</mi>
   48.80 +            <mn>10</mn>
   48.81 +			</msub>
   48.82 +		  </mtd>
   48.83 +          <mtd>
   48.84 +		  <msub>
   48.85 +            <mi>a</mi>
   48.86 +            <mn>11</mn>
   48.87 +		  </msub>
   48.88 +          </mtd>
   48.89 +          <mtd>
   48.90 +          <msub>
   48.91 +			<mi>a</mi>
   48.92 +            <mn>12</mn>
   48.93 +          </msub>
   48.94 +		  </mtd>
   48.95 +          <mtd>
   48.96 +            <msub>
   48.97 +			<mi>a</mi>
   48.98 +            <mn>13</mn>
   48.99 +            </msub>
  48.100 +		  </mtd>
  48.101 +          <mtd>
  48.102 +		  <msub>
  48.103 +            <mi>a</mi>
  48.104 +            <mn>14</mn>
  48.105 +          </msub>
  48.106 +		  </mtd>
  48.107 +        </mtr>
  48.108 +        <mtr>
  48.109 +          <mtd>
  48.110 +            <msub>
  48.111 +			<mi>a</mi>
  48.112 +            <mn>20</mn>
  48.113 +          </msub>
  48.114 +		  </mtd>
  48.115 +          <mtd>
  48.116 +            <msub>
  48.117 +			<mi>a</mi>
  48.118 +            <mn>21</mn>
  48.119 +          </msub>
  48.120 +		  </mtd>
  48.121 +          <mtd>
  48.122 +		  <msub>
  48.123 +            <mi>a</mi>
  48.124 +            <mn>22</mn>
  48.125 +          </msub>
  48.126 +		  </mtd>
  48.127 +          <mtd>
  48.128 +            <msub>
  48.129 +			<mi>a</mi>
  48.130 +            <mn>23</mn>
  48.131 +          </msub>
  48.132 +		  </mtd>
  48.133 +          <mtd>
  48.134 +            <msub>
  48.135 +			<mi>a</mi>
  48.136 +            <mn>24</mn>
  48.137 +          </msub>
  48.138 +		  </mtd>
  48.139 +        </mtr>
  48.140 +        <mtr>
  48.141 +          <mtd>
  48.142 +            <msub>
  48.143 +			<mi>a</mi>
  48.144 +            <mn>30</mn>
  48.145 +          </msub>
  48.146 +		  </mtd>
  48.147 +          <mtd>
  48.148 +            <msub>
  48.149 +			<mi>a</mi>
  48.150 +            <mn>31</mn>
  48.151 +          </msub>
  48.152 +		  </mtd>
  48.153 +          <mtd>
  48.154 +            <msub>
  48.155 +			<mi>a</mi>
  48.156 +            <mn>32</mn>
  48.157 +          </msub>
  48.158 +		  </mtd>
  48.159 +          <mtd>
  48.160 +            <msub>
  48.161 +			<mi>a</mi>
  48.162 +            <mn>33</mn>
  48.163 +          </msub>
  48.164 +		  </mtd>
  48.165 +          <mtd>
  48.166 +            <msub>
  48.167 +			<mi>a</mi>
  48.168 +            <mn>34</mn>
  48.169 +          </msub>
  48.170 +		  </mtd>
  48.171 +        </mtr>
  48.172 +        <mtr>
  48.173 +          <mtd>
  48.174 +            <mn>0</mn>
  48.175 +          </mtd>
  48.176 +          <mtd>
  48.177 +            <mn>0</mn>
  48.178 +          </mtd>
  48.179 +          <mtd>
  48.180 +            <mn>0</mn>
  48.181 +          </mtd>
  48.182 +          <mtd>
  48.183 +            <mn>0</mn>
  48.184 +          </mtd>
  48.185 +          <mtd>
  48.186 +            <mn>1</mn>
  48.187 +          </mtd>
  48.188 +        </mtr>
  48.189 +    </mtable>
  48.190 +    </mrow>
  48.191 +	</mfenced>
  48.192 +	<mo>.</mo>
  48.193 +    <mfenced open="[" close="]">
  48.194 +  	<mrow>
  48.195 +	    <mtable>
  48.196 +	      <mtr>
  48.197 +			<mi>R</mi>
  48.198 +	      </mtr>
  48.199 +	      <mtr>
  48.200 +			<mi>G</mi>
  48.201 +	      </mtr>
  48.202 +	      <mtr>
  48.203 +			<mi>B</mi>
  48.204 +	      </mtr>
  48.205 +		  <mtr>
  48.206 +			<mi>A</mi>
  48.207 +	      </mtr>
  48.208 +	    </mtable>
  48.209 +    </mrow>
  48.210 +  </mfenced>
  48.211 +</mrow>
  48.212 +</math>
    49.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.2 +++ b/filters/master/mathml/feColorMatrix01.mml	Mon Apr 11 10:08:48 2011 +1000
    49.3 @@ -0,0 +1,198 @@
    49.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    49.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    49.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    49.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    49.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    49.9 +  <mrow>
   49.10 +    <mfenced>
   49.11 +      <mtable>
   49.12 +        <mtr>
   49.13 +          <mtd>
   49.14 +            <msup>
   49.15 +              <mi>R</mi>
   49.16 +              <mo>'</mo>
   49.17 +            </msup>
   49.18 +          </mtd>
   49.19 +        </mtr>
   49.20 +        <mtr>
   49.21 +          <mtd>
   49.22 +            <msup>
   49.23 +              <mi>G</mi>
   49.24 +              <mo>'</mo>
   49.25 +            </msup>
   49.26 +          </mtd>
   49.27 +        </mtr>
   49.28 +        <mtr>
   49.29 +          <mtd>
   49.30 +            <msup>
   49.31 +              <mi>B</mi>
   49.32 +              <mo>'</mo>
   49.33 +            </msup>
   49.34 +          </mtd>
   49.35 +        </mtr>
   49.36 +        <mtr>
   49.37 +          <mtd>
   49.38 +            <msup>
   49.39 +              <mi>A</mi>
   49.40 +              <mo>'</mo>
   49.41 +            </msup>
   49.42 +          </mtd>
   49.43 +        </mtr>
   49.44 +        <mtr>
   49.45 +          <mtd>
   49.46 +            <mn>1</mn>
   49.47 +          </mtd>
   49.48 +        </mtr>
   49.49 +      </mtable>
   49.50 +    </mfenced>
   49.51 +    <mo>=</mo>
   49.52 +    <mrow>
   49.53 +      <mfenced>
   49.54 +        <mtable>
   49.55 +          <mtr>
   49.56 +            <mtd>
   49.57 +              <mn>0.213</mn>
   49.58 +              <mo>+</mo>
   49.59 +              <mn>0.787</mn>
   49.60 +              <mi>s</mi>
   49.61 +            </mtd>
   49.62 +            <mtd>
   49.63 +              <mn>0.715</mn>
   49.64 +              <mo>&minus;</mo>
   49.65 +              <mo>0.715</mo>
   49.66 +              <mi>s</mi>
   49.67 +            </mtd>
   49.68 +            <mtd>
   49.69 +              <mn>0.072</mn>
   49.70 +              <mo>&minus;</mo>
   49.71 +              <mn>0.072</mn>
   49.72 +              <mi>s</mi>
   49.73 +            </mtd>
   49.74 +            <mtd>
   49.75 +              <mn>0</mn>
   49.76 +            </mtd>
   49.77 +            <mtd>
   49.78 +              <mn>0</mn>
   49.79 +            </mtd>
   49.80 +          </mtr>
   49.81 +          <mtr>
   49.82 +            <mtd>
   49.83 +              <mn>0.213</mn>
   49.84 +              <mo>&minus;</mo>
   49.85 +              <mn>0.213</mn>
   49.86 +              <mi>s</mi>
   49.87 +            </mtd>
   49.88 +            <mtd>
   49.89 +              <mn>0.715</mn>
   49.90 +              <mo>+</mo>
   49.91 +              <mn>0.285</mn>
   49.92 +              <mi>s</mi>
   49.93 +            </mtd>
   49.94 +            <mtd>
   49.95 +              <mn>0.072</mn>
   49.96 +              <mo>&minus;</mo>
   49.97 +              <mn>0.072</mn>
   49.98 +              <mi>s</mi>
   49.99 +            </mtd>
  49.100 +            <mtd>
  49.101 +              <mn>0</mn>
  49.102 +            </mtd>
  49.103 +            <mtd>
  49.104 +              <mn>0</mn>
  49.105 +            </mtd>
  49.106 +          </mtr>
  49.107 +          <mtr>
  49.108 +            <mtd>
  49.109 +              <mn>0.213</mn>
  49.110 +              <mo>&minus;</mo>
  49.111 +              <mn>0.213</mn>
  49.112 +              <mi>s</mi>
  49.113 +            </mtd>
  49.114 +            <mtd>
  49.115 +              <mn>0.715</mn>
  49.116 +              <mo>&minus;</mo>
  49.117 +              <mn>0.715</mn>
  49.118 +              <mi>s</mi>
  49.119 +            </mtd>
  49.120 +            <mtd>
  49.121 +              <mn>0.072</mn>
  49.122 +              <mo>+</mo>
  49.123 +              <mn>0.928</mn>
  49.124 +              <mi>s</mi>
  49.125 +            </mtd>
  49.126 +            <mtd>
  49.127 +              <mn>0</mn>
  49.128 +            </mtd>
  49.129 +            <mtd>
  49.130 +              <mn>0</mn>
  49.131 +            </mtd>
  49.132 +          </mtr>
  49.133 +          <mtr>
  49.134 +            <mtd>
  49.135 +              <mn>0</mn>
  49.136 +            </mtd>
  49.137 +            <mtd>
  49.138 +              <mn>0</mn>
  49.139 +            </mtd>
  49.140 +            <mtd>
  49.141 +              <mn>0</mn>
  49.142 +            </mtd>
  49.143 +            <mtd>
  49.144 +              <mn>1</mn>
  49.145 +            </mtd>
  49.146 +            <mtd>
  49.147 +              <mn>0</mn>
  49.148 +            </mtd>
  49.149 +          </mtr>
  49.150 +          <mtr>
  49.151 +            <mtd>
  49.152 +              <mn>0</mn>
  49.153 +            </mtd>
  49.154 +            <mtd>
  49.155 +              <mn>0</mn>
  49.156 +            </mtd>
  49.157 +            <mtd>
  49.158 +              <mn>0</mn>
  49.159 +            </mtd>
  49.160 +            <mtd>
  49.161 +              <mn>0</mn>
  49.162 +            </mtd>
  49.163 +            <mtd>
  49.164 +              <mn>1</mn>
  49.165 +            </mtd>
  49.166 +          </mtr>
  49.167 +        </mtable>
  49.168 +      </mfenced>
  49.169 +      <mo>.</mo>
  49.170 +      <mfenced>
  49.171 +        <mtable>
  49.172 +          <mtr>
  49.173 +            <mtd>
  49.174 +              <mi>R</mi>
  49.175 +            </mtd>
  49.176 +          </mtr>
  49.177 +          <mtr>
  49.178 +            <mtd>
  49.179 +              <mi>G</mi>
  49.180 +            </mtd>
  49.181 +          </mtr>
  49.182 +          <mtr>
  49.183 +            <mtd>
  49.184 +              <mi>B</mi>
  49.185 +            </mtd>
  49.186 +          </mtr>
  49.187 +          <mtr>
  49.188 +            <mtd>
  49.189 +              <mi>A</mi>
  49.190 +            </mtd>
  49.191 +          </mtr>
  49.192 +          <mtr>
  49.193 +            <mtd>
  49.194 +              <mn>1</mn>
  49.195 +            </mtd>
  49.196 +          </mtr>
  49.197 +        </mtable>
  49.198 +      </mfenced>
  49.199 +    </mrow>
  49.200 +  </mrow>
  49.201 +</math>
  49.202 \ No newline at end of file
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/filters/master/mathml/feColorMatrix02.mml	Mon Apr 11 10:08:48 2011 +1000
    50.3 @@ -0,0 +1,179 @@
    50.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    50.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    50.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    50.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    50.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    50.9 +  <mfenced>
   50.10 +    <mtable>
   50.11 +      <mtr>
   50.12 +        <mtd>
   50.13 +          <msup>
   50.14 +            <mi>R</mi>
   50.15 +            <mo>'</mo>
   50.16 +          </msup>
   50.17 +        </mtd>
   50.18 +      </mtr>
   50.19 +      <mtr>
   50.20 +        <mtd>
   50.21 +          <msup>
   50.22 +            <mi>G</mi>
   50.23 +            <mo>'</mo>
   50.24 +          </msup>
   50.25 +        </mtd>
   50.26 +      </mtr>
   50.27 +      <mtr>
   50.28 +        <mtd>
   50.29 +          <msup>
   50.30 +            <mi>B</mi>
   50.31 +            <mo>'</mo>
   50.32 +          </msup>
   50.33 +        </mtd>
   50.34 +      </mtr>
   50.35 +      <mtr>
   50.36 +        <mtd>
   50.37 +          <msup>
   50.38 +            <mi>A</mi>
   50.39 +            <mo>'</mo>
   50.40 +          </msup>
   50.41 +        </mtd>
   50.42 +      </mtr>
   50.43 +      <mtr>
   50.44 +        <mtd>
   50.45 +          <mn>1</mn>
   50.46 +        </mtd>
   50.47 +      </mtr>
   50.48 +    </mtable>
   50.49 +  </mfenced>
   50.50 +  <mo>=</mo>
   50.51 +  <mrow>
   50.52 +    <mn><mfenced>
   50.53 +      <mtable>
   50.54 +        <mtr>
   50.55 +          <mtd>
   50.56 +            <mi>a</mi>
   50.57 +            <mn>00</mn>
   50.58 +          </mtd>
   50.59 +          <mtd>
   50.60 +            <mi>a</mi>
   50.61 +            <mn>01</mn>
   50.62 +          </mtd>
   50.63 +          <mtd>
   50.64 +            <mi>a</mi>
   50.65 +            <mn>02</mn>
   50.66 +          </mtd>
   50.67 +          <mtd>
   50.68 +            <mn>0</mn>
   50.69 +          </mtd>
   50.70 +          <mtd>
   50.71 +            <mn>0</mn>
   50.72 +          </mtd>
   50.73 +        </mtr>
   50.74 +        <mtr>
   50.75 +          <mtd>
   50.76 +            <mi>a</mi>
   50.77 +            <mn>10</mn>
   50.78 +          </mtd>
   50.79 +          <mtd>
   50.80 +            <mi>a</mi>
   50.81 +            <mn>11</mn>
   50.82 +          </mtd>
   50.83 +          <mtd>
   50.84 +            <mi>a</mi>
   50.85 +            <mn>12</mn>
   50.86 +          </mtd>
   50.87 +          <mtd>
   50.88 +            <mn>0</mn>
   50.89 +          </mtd>
   50.90 +          <mtd>
   50.91 +            <mn>0</mn>
   50.92 +          </mtd>
   50.93 +        </mtr>
   50.94 +        <mtr>
   50.95 +          <mtd>
   50.96 +            <mi>a</mi>
   50.97 +            <mn>20</mn>
   50.98 +          </mtd>
   50.99 +          <mtd>
  50.100 +            <mi>a</mi>
  50.101 +            <mn>21</mn>
  50.102 +          </mtd>
  50.103 +          <mtd>
  50.104 +            <mi>a</mi>
  50.105 +            <mn>22</mn>
  50.106 +          </mtd>
  50.107 +          <mtd>
  50.108 +            <mn>0</mn>
  50.109 +          </mtd>
  50.110 +          <mtd>
  50.111 +            <mn>0</mn>
  50.112 +          </mtd>
  50.113 +        </mtr>
  50.114 +        <mtr>
  50.115 +          <mtd>
  50.116 +            <mn>0</mn>
  50.117 +          </mtd>
  50.118 +          <mtd>
  50.119 +            <mn>0</mn>
  50.120 +          </mtd>
  50.121 +          <mtd>
  50.122 +            <mn>0</mn>
  50.123 +          </mtd>
  50.124 +          <mtd>
  50.125 +            <mn>1</mn>
  50.126 +          </mtd>
  50.127 +          <mtd>
  50.128 +            <mn>0</mn>
  50.129 +          </mtd>
  50.130 +        </mtr>
  50.131 +        <mtr>
  50.132 +          <mtd>
  50.133 +            <mn>0</mn>
  50.134 +          </mtd>
  50.135 +          <mtd>
  50.136 +            <mn>0</mn>
  50.137 +          </mtd>
  50.138 +          <mtd>
  50.139 +            <mn>0</mn>
  50.140 +          </mtd>
  50.141 +          <mtd>
  50.142 +            <mn>0</mn>
  50.143 +          </mtd>
  50.144 +          <mtd>
  50.145 +            <mn>1</mn>
  50.146 +          </mtd>
  50.147 +        </mtr>
  50.148 +      </mtable>
  50.149 +    </mfenced>
  50.150 +    </mn>
  50.151 +    <mo>.</mo>
  50.152 +    <mfenced>
  50.153 +      <mtable>
  50.154 +        <mtr>
  50.155 +          <mtd>
  50.156 +            <mi>R</mi>
  50.157 +          </mtd>
  50.158 +        </mtr>
  50.159 +        <mtr>
  50.160 +          <mtd>
  50.161 +            <mi>G</mi>
  50.162 +          </mtd>
  50.163 +        </mtr>
  50.164 +        <mtr>
  50.165 +          <mtd>
  50.166 +            <mi>B</mi>
  50.167 +          </mtd>
  50.168 +        </mtr>
  50.169 +        <mtr>
  50.170 +          <mtd>
  50.171 +            <mi>A</mi>
  50.172 +          </mtd>
  50.173 +        </mtr>
  50.174 +        <mtr>
  50.175 +          <mtd>
  50.176 +            <mn>1</mn>
  50.177 +          </mtd>
  50.178 +        </mtr>
  50.179 +      </mtable>
  50.180 +    </mfenced>
  50.181 +  </mrow>
  50.182 +</math>
  50.183 \ No newline at end of file
    51.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.2 +++ b/filters/master/mathml/feColorMatrix03.mml	Mon Apr 11 10:08:48 2011 +1000
    51.3 @@ -0,0 +1,212 @@
    51.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    51.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    51.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    51.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    51.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    51.9 +  <mrow>
   51.10 +    <mfenced>
   51.11 +      <mtable>
   51.12 +        <mtr>
   51.13 +          <mtd>
   51.14 +            <mi>a</mi>
   51.15 +            <mn>00</mn>
   51.16 +          </mtd>
   51.17 +          <mtd>
   51.18 +            <mi>a</mi>
   51.19 +            <mn>01</mn>
   51.20 +          </mtd>
   51.21 +          <mtd>
   51.22 +            <mi>a</mi>
   51.23 +            <mn>02</mn>
   51.24 +          </mtd>
   51.25 +        </mtr>
   51.26 +        <mtr>
   51.27 +          <mtd>
   51.28 +            <mi>a</mi>
   51.29 +            <mn>10</mn>
   51.30 +          </mtd>
   51.31 +          <mtd>
   51.32 +            <mi>a</mi>
   51.33 +            <mn>11</mn>
   51.34 +          </mtd>
   51.35 +          <mtd>
   51.36 +            <mi>a</mi>
   51.37 +            <mn>12</mn>
   51.38 +          </mtd>
   51.39 +        </mtr>
   51.40 +        <mtr>
   51.41 +          <mtd>
   51.42 +            <mi>a</mi>
   51.43 +            <mn>20</mn>
   51.44 +          </mtd>
   51.45 +          <mtd>
   51.46 +            <mi>a</mi>
   51.47 +            <mn>21</mn>
   51.48 +          </mtd>
   51.49 +          <mtd>
   51.50 +            <mi>a</mi>
   51.51 +            <mn>22</mn>
   51.52 +          </mtd>
   51.53 +        </mtr>
   51.54 +      </mtable>
   51.55 +    </mfenced>
   51.56 +    <mo>=</mo>
   51.57 +    <mfenced close="+">
   51.58 +      <mtable>
   51.59 +        <mtr>
   51.60 +          <mtd>
   51.61 +            <mn>0.213</mn>
   51.62 +          </mtd>
   51.63 +          <mtd>
   51.64 +            <mn>0.715</mn>
   51.65 +          </mtd>
   51.66 +          <mtd>
   51.67 +            <mn>0.072</mn>
   51.68 +          </mtd>
   51.69 +        </mtr>
   51.70 +        <mtr>
   51.71 +          <mtd>
   51.72 +            <mn>0.213</mn>
   51.73 +          </mtd>
   51.74 +          <mtd>
   51.75 +            <mn>0.715</mn>
   51.76 +          </mtd>
   51.77 +          <mtd>
   51.78 +            <mn>0.072</mn>
   51.79 +          </mtd>
   51.80 +        </mtr>
   51.81 +        <mtr>
   51.82 +          <mtd>
   51.83 +            <mn>0.213</mn>
   51.84 +          </mtd>
   51.85 +          <mtd>
   51.86 +            <mn>0.715</mn>
   51.87 +          </mtd>
   51.88 +          <mtd>
   51.89 +            <mn>0.072</mn>
   51.90 +          </mtd>
   51.91 +        </mtr>
   51.92 +      </mtable>
   51.93 +    </mfenced>
   51.94 +    <mo>+</mo>
   51.95 +    <mrow>
   51.96 +      <mrow>
   51.97 +        <mi>cos</mi>
   51.98 +        <mo>&#x2061;</mo>
   51.99 +        <mrow>
  51.100 +          <mo>(</mo>
  51.101 +          <mi>hueRotate</mi>
  51.102 +          <mi>value</mi>
  51.103 +          <mo>)</mo>
  51.104 +        </mrow>
  51.105 +      </mrow>
  51.106 +      <mo>.</mo>
  51.107 +      <mfenced>
  51.108 +        <mtable>
  51.109 +          <mtr>
  51.110 +            <mtd>
  51.111 +              <mn>0.787</mn>
  51.112 +            </mtd>
  51.113 +            <mtd>
  51.114 +              <mo>&minus;</mo>
  51.115 +              <mn>0.715</mn>
  51.116 +            </mtd>
  51.117 +            <mtd>
  51.118 +              <mrow>
  51.119 +                <mo>&minus;</mo>
  51.120 +                <mn>0.072</mn>
  51.121 +              </mrow>
  51.122 +            </mtd>
  51.123 +          </mtr>
  51.124 +          <mtr>
  51.125 +            <mtd>
  51.126 +              <mo>&minus;</mo>
  51.127 +              <mn>0.213</mn>
  51.128 +            </mtd>
  51.129 +            <mtd>
  51.130 +              <mn>0.285</mn>
  51.131 +            </mtd>
  51.132 +            <mtd>
  51.133 +              <mo>&minus;</mo>
  51.134 +              <mn>0.072</mn>
  51.135 +            </mtd>
  51.136 +          </mtr>
  51.137 +          <mtr>
  51.138 +            <mtd>
  51.139 +              <mo>&minus;</mo>
  51.140 +              <mn>0.213</mn>
  51.141 +            </mtd>
  51.142 +            <mtd>
  51.143 +              <mo>&minus;</mo>
  51.144 +              <mn>0.715</mn>
  51.145 +            </mtd>
  51.146 +            <mtd>
  51.147 +              <mn>0.928</mn>
  51.148 +            </mtd>
  51.149 +          </mtr>
  51.150 +        </mtable>
  51.151 +      </mfenced>
  51.152 +    </mrow>
  51.153 +    <mo>+</mo>
  51.154 +    <mrow>
  51.155 +      <mrow>
  51.156 +        <mi>sin</mi>
  51.157 +        <mo>&#x2061;</mo>
  51.158 +        <mo>(</mo>
  51.159 +        <mi>hueRotate</mi>
  51.160 +        <mi>value</mi>
  51.161 +        <mo>)</mo>
  51.162 +      </mrow>
  51.163 +      <mo>.</mo>
  51.164 +      <mfenced>
  51.165 +        <mtable>
  51.166 +          <mtr>
  51.167 +            <mtd>
  51.168 +              <mrow>
  51.169 +                <mo>&minus;</mo>
  51.170 +                <mn>0.213</mn>
  51.171 +              </mrow>
  51.172 +            </mtd>
  51.173 +            <mtd>
  51.174 +              <mrow>
  51.175 +                <mo>&minus;</mo>
  51.176 +                <mn>0.715</mn>
  51.177 +              </mrow>
  51.178 +            </mtd>
  51.179 +            <mtd>
  51.180 +              <mn>0.928</mn>
  51.181 +            </mtd>
  51.182 +          </mtr>
  51.183 +          <mtr>
  51.184 +            <mtd>
  51.185 +              <mn>0.143</mn>
  51.186 +            </mtd>
  51.187 +            <mtd>
  51.188 +              <mn>0.140</mn>
  51.189 +            </mtd>
  51.190 +            <mtd>
  51.191 +              <mrow>
  51.192 +                <mo>&minus;</mo>
  51.193 +                <mn>0.283</mn>
  51.194 +              </mrow>
  51.195 +            </mtd>
  51.196 +          </mtr>
  51.197 +          <mtr>
  51.198 +            <mtd>
  51.199 +              <mrow>
  51.200 +                <mo>&minus;</mo>
  51.201 +                <mn>0.787</mn>
  51.202 +              </mrow>
  51.203 +            </mtd>
  51.204 +            <mtd>
  51.205 +              <mn>0.715</mn>
  51.206 +            </mtd>
  51.207 +            <mtd>
  51.208 +              <mn>0.072</mn>
  51.209 +            </mtd>
  51.210 +          </mtr>
  51.211 +        </mtable>
  51.212 +      </mfenced>
  51.213 +    </mrow>
  51.214 +  </mrow>
  51.215 +</math>
  51.216 \ No newline at end of file
    52.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.2 +++ b/filters/master/mathml/feColorMatrix04.mml	Mon Apr 11 10:08:48 2011 +1000
    52.3 @@ -0,0 +1,36 @@
    52.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    52.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    52.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    52.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    52.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    52.9 +  <mrow>
   52.10 +    <mi>a</mi>
   52.11 +    <mn>00</mn>
   52.12 +    <mo>=</mo>
   52.13 +    <mrow>
   52.14 +      <mn>0.213</mn>
   52.15 +      <mo>+</mo>
   52.16 +      <mrow>
   52.17 +        <mrow>
   52.18 +          <mrow>
   52.19 +            <mi>cos</mi>
   52.20 +            <mo>&#x2061;</mo>
   52.21 +            <mtext>(hueRotate value)</mtext>
   52.22 +          </mrow>
   52.23 +          <mo>×</mo>
   52.24 +          <mn>0.787</mn>
   52.25 +        </mrow>
   52.26 +        <mo>&minus;</mo>
   52.27 +        <mrow>
   52.28 +          <mrow>
   52.29 +            <mi>sin</mi>
   52.30 +            <mo>&#x2061;</mo>
   52.31 +            <mtext>(hueRotate value)</mtext>
   52.32 +          </mrow>
   52.33 +          <mo>×</mo>
   52.34 +          <mn>0.213</mn>
   52.35 +        </mrow>
   52.36 +      </mrow>
   52.37 +    </mrow>
   52.38 +  </mrow>
   52.39 +</math>
   52.40 \ No newline at end of file
    53.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    53.2 +++ b/filters/master/mathml/feColorMatrix05.mml	Mon Apr 11 10:08:48 2011 +1000
    53.3 @@ -0,0 +1,170 @@
    53.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    53.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    53.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    53.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    53.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    53.9 +  <mfenced>
   53.10 +    <mtable>
   53.11 +      <mtr>
   53.12 +        <mtd>
   53.13 +          <msup>
   53.14 +            <mi>R</mi>
   53.15 +            <mo>'</mo>
   53.16 +          </msup>
   53.17 +        </mtd>
   53.18 +      </mtr>
   53.19 +      <mtr>
   53.20 +        <mtd>
   53.21 +          <msup>
   53.22 +            <mi>G</mi>
   53.23 +            <mo>'</mo>
   53.24 +          </msup>
   53.25 +        </mtd>
   53.26 +      </mtr>
   53.27 +      <mtr>
   53.28 +        <mtd>
   53.29 +          <msup>
   53.30 +            <mi>B</mi>
   53.31 +            <mo>'</mo>
   53.32 +          </msup>
   53.33 +        </mtd>
   53.34 +      </mtr>
   53.35 +      <mtr>
   53.36 +        <mtd>
   53.37 +          <msup>
   53.38 +            <mi>A</mi>
   53.39 +            <mo>'</mo>
   53.40 +          </msup>
   53.41 +        </mtd>
   53.42 +      </mtr>
   53.43 +      <mtr>
   53.44 +        <mtd>
   53.45 +          <mn>1</mn>
   53.46 +        </mtd>
   53.47 +      </mtr>
   53.48 +    </mtable>
   53.49 +  </mfenced>
   53.50 +  <mo>=</mo>
   53.51 +  <mrow>
   53.52 +    <mn><mfenced>
   53.53 +      <mtable>
   53.54 +        <mtr>
   53.55 +          <mtd>
   53.56 +            <mn>0</mn>
   53.57 +          </mtd>
   53.58 +          <mtd>
   53.59 +            <mn>0</mn>
   53.60 +          </mtd>
   53.61 +          <mtd>
   53.62 +            <mn>0</mn>
   53.63 +          </mtd>
   53.64 +          <mtd>
   53.65 +            <mn>0</mn>
   53.66 +          </mtd>
   53.67 +          <mtd>
   53.68 +            <mn>0</mn>
   53.69 +          </mtd>
   53.70 +        </mtr>
   53.71 +        <mtr>
   53.72 +          <mtd>
   53.73 +            <mn>0</mn>
   53.74 +          </mtd>
   53.75 +          <mtd>
   53.76 +            <mn>0</mn>
   53.77 +          </mtd>
   53.78 +          <mtd>
   53.79 +            <mn>0</mn>
   53.80 +          </mtd>
   53.81 +          <mtd>
   53.82 +            <mn>0</mn>
   53.83 +          </mtd>
   53.84 +          <mtd>
   53.85 +            <mn>0</mn>
   53.86 +          </mtd>
   53.87 +        </mtr>
   53.88 +        <mtr>
   53.89 +          <mtd>
   53.90 +            <mn>0</mn>
   53.91 +          </mtd>
   53.92 +          <mtd>
   53.93 +            <mn>0</mn>
   53.94 +          </mtd>
   53.95 +          <mtd>
   53.96 +            <mn>0</mn>
   53.97 +          </mtd>
   53.98 +          <mtd>
   53.99 +            <mn>0</mn>
  53.100 +          </mtd>
  53.101 +          <mtd>
  53.102 +            <mn>0</mn>
  53.103 +          </mtd>
  53.104 +        </mtr>
  53.105 +        <mtr>
  53.106 +          <mtd>
  53.107 +            <mn>0.2125</mn>
  53.108 +          </mtd>
  53.109 +          <mtd>
  53.110 +            <mn>0.7154</mn>
  53.111 +          </mtd>
  53.112 +          <mtd>
  53.113 +            <mn>0.0721</mn>
  53.114 +          </mtd>
  53.115 +          <mtd>
  53.116 +            <mn>0</mn>
  53.117 +          </mtd>
  53.118 +          <mtd>
  53.119 +            <mn>0</mn>
  53.120 +          </mtd>
  53.121 +        </mtr>
  53.122 +        <mtr>
  53.123 +          <mtd>
  53.124 +            <mn>0</mn>
  53.125 +          </mtd>
  53.126 +          <mtd>
  53.127 +            <mn>0</mn>
  53.128 +          </mtd>
  53.129 +          <mtd>
  53.130 +            <mn>0</mn>
  53.131 +          </mtd>
  53.132 +          <mtd>
  53.133 +            <mn>0</mn>
  53.134 +          </mtd>
  53.135 +          <mtd>
  53.136 +            <mn>1</mn>
  53.137 +          </mtd>
  53.138 +        </mtr>
  53.139 +      </mtable>
  53.140 +    </mfenced>
  53.141 +    </mn>
  53.142 +    <mo>.</mo>
  53.143 +    <mfenced>
  53.144 +      <mtable>
  53.145 +        <mtr>
  53.146 +          <mtd>
  53.147 +            <mi>R</mi>
  53.148 +          </mtd>
  53.149 +        </mtr>
  53.150 +        <mtr>
  53.151 +          <mtd>
  53.152 +            <mi>G</mi>
  53.153 +          </mtd>
  53.154 +        </mtr>
  53.155 +        <mtr>
  53.156 +          <mtd>
  53.157 +            <mi>B</mi>
  53.158 +          </mtd>
  53.159 +        </mtr>
  53.160 +        <mtr>
  53.161 +          <mtd>
  53.162 +            <mi>A</mi>
  53.163 +          </mtd>
  53.164 +        </mtr>
  53.165 +        <mtr>
  53.166 +          <mtd>
  53.167 +            <mn>1</mn>
  53.168 +          </mtd>
  53.169 +        </mtr>
  53.170 +      </mtable>
  53.171 +    </mfenced>
  53.172 +  </mrow>
  53.173 +</math>
  53.174 \ No newline at end of file
    54.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.2 +++ b/filters/master/mathml/feComponentTransfer00.mml	Mon Apr 11 10:08:48 2011 +1000
    54.3 @@ -0,0 +1,85 @@
    54.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    54.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    54.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    54.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    54.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    54.9 +  <mrow>
   54.10 +    <mtable>
   54.11 +      <mtr>
   54.12 +        <mtd>
   54.13 +          <msup>
   54.14 +            <mi>R</mi>
   54.15 +            <mo>'</mo>
   54.16 +          </msup>
   54.17 +        </mtd>
   54.18 +      </mtr>
   54.19 +      <mtr>
   54.20 +        <mtd>
   54.21 +          <msup>
   54.22 +            <mi>G</mi>
   54.23 +            <mo>'</mo>
   54.24 +          </msup>
   54.25 +        </mtd>
   54.26 +      </mtr>
   54.27 +      <mtr>
   54.28 +        <mtd>
   54.29 +          <msup>
   54.30 +            <mi>B</mi>
   54.31 +            <mo>'</mo>
   54.32 +          </msup>
   54.33 +        </mtd>
   54.34 +      </mtr>
   54.35 +      <mtr>
   54.36 +        <mtd>
   54.37 +          <msup>
   54.38 +            <mi>A</mi>
   54.39 +            <mo>'</mo>
   54.40 +          </msup>
   54.41 +        </mtd>
   54.42 +      </mtr>
   54.43 +    </mtable>
   54.44 +    <mo>=</mo>
   54.45 +    <mtable>
   54.46 +      <mtr>
   54.47 +        <mtd>
   54.48 +          <mi>FeFuncR</mi>
   54.49 +          <mrow>
   54.50 +            <mo>(</mo>
   54.51 +            <mi>R</mi>
   54.52 +            <mo>)</mo>
   54.53 +          </mrow>
   54.54 +        </mtd>
   54.55 +      </mtr>
   54.56 +      <mtr>
   54.57 +        <mtd>
   54.58 +          <mi>FeFuncG</mi>
   54.59 +          <mrow>
   54.60 +            <mo>(</mo>
   54.61 +            <mi>G</mi>
   54.62 +            <mo>)</mo>
   54.63 +          </mrow>
   54.64 +        </mtd>
   54.65 +      </mtr>
   54.66 +      <mtr>
   54.67 +        <mtd>
   54.68 +          <mi>FeFuncB</mi>
   54.69 +          <mrow>
   54.70 +            <mo>(</mo>
   54.71 +            <mi>B</mi>
   54.72 +            <mo>)</mo>
   54.73 +          </mrow>
   54.74 +        </mtd>
   54.75 +      </mtr>
   54.76 +      <mtr>
   54.77 +        <mtd>
   54.78 +          <mi>FeFuncA</mi>
   54.79 +          <mrow>
   54.80 +            <mo>(</mo>
   54.81 +            <mi>A</mi>
   54.82 +            <mo>)</mo>
   54.83 +          </mrow>
   54.84 +        </mtd>
   54.85 +      </mtr>
   54.86 +    </mtable>
   54.87 +  </mrow>
   54.88 +</math>
   54.89 \ No newline at end of file
    55.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.2 +++ b/filters/master/mathml/feComponentTransfer01.mml	Mon Apr 11 10:08:48 2011 +1000
    55.3 @@ -0,0 +1,14 @@
    55.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    55.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    55.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    55.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    55.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    55.9 +  <mrow>
   55.10 +    <msup>
   55.11 +      <mi>C</mi>
   55.12 +      <mo>'</mo>
   55.13 +    </msup>
   55.14 +    <mo>=</mo>
   55.15 +    <mi>C</mi>
   55.16 +  </mrow>
   55.17 +</math>
   55.18 \ No newline at end of file
    56.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.2 +++ b/filters/master/mathml/feComponentTransfer02.mml	Mon Apr 11 10:08:48 2011 +1000
    56.3 @@ -0,0 +1,29 @@
    56.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    56.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    56.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    56.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    56.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    56.9 +  <mrow>
   56.10 +    <mfrac>
   56.11 +      <mi>k</mi>
   56.12 +      <mi>N</mi>
   56.13 +    </mfrac>
   56.14 +    <mo>&le;</mo>
   56.15 +    <mrow>
   56.16 +      <mi>C</mi>
   56.17 +      <mo>&lt;</mo>
   56.18 +      <mfrac>
   56.19 +        <mrow>
   56.20 +          <mo>(</mo>
   56.21 +          <mrow>
   56.22 +            <mi>k</mi>
   56.23 +            <mo>+</mo>
   56.24 +            <mn>1</mn>
   56.25 +          </mrow>
   56.26 +          <mo>)</mo>
   56.27 +        </mrow>
   56.28 +        <mi>N</mi>
   56.29 +      </mfrac>
   56.30 +    </mrow>
   56.31 +  </mrow>
   56.32 +</math>
   56.33 \ No newline at end of file
    57.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.2 +++ b/filters/master/mathml/feComponentTransfer03.mml	Mon Apr 11 10:08:48 2011 +1000
    57.3 @@ -0,0 +1,56 @@
    57.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    57.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    57.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    57.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    57.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    57.9 +  <mrow>
   57.10 +    <msup>
   57.11 +      <mi>C</mi>
   57.12 +      <mo>'</mo>
   57.13 +    </msup>
   57.14 +    <mo>=</mo>
   57.15 +    <mrow>
   57.16 +      <msub>
   57.17 +        <mi>v</mi>
   57.18 +        <mi>k</mi>
   57.19 +      </msub>
   57.20 +      <mo>+</mo>
   57.21 +      <mrow>
   57.22 +        <mrow>
   57.23 +          <mo>(</mo>
   57.24 +          <mrow>
   57.25 +            <mi>C</mi>
   57.26 +            <mo>&minus;</mo>
   57.27 +            <mfrac>
   57.28 +              <mi>k</mi>
   57.29 +              <mi>N</mi>
   57.30 +            </mfrac>
   57.31 +          </mrow>
   57.32 +          <mo>)</mo>
   57.33 +        </mrow>
   57.34 +        <mo>×</mo>
   57.35 +        <mi>N</mi>
   57.36 +        <mo>×</mo>
   57.37 +        <mrow>
   57.38 +          <mo>(</mo>
   57.39 +          <mrow>
   57.40 +            <msub>
   57.41 +              <mi>v</mi>
   57.42 +              <mrow>
   57.43 +                <mi>k</mi>
   57.44 +                <mo>+</mo>
   57.45 +                <mn>1</mn>
   57.46 +              </mrow>
   57.47 +            </msub>
   57.48 +            <mo>&minus;</mo>
   57.49 +            <msub>
   57.50 +              <mi>v</mi>
   57.51 +              <mi>k</mi>
   57.52 +            </msub>
   57.53 +          </mrow>
   57.54 +          <mo>)</mo>
   57.55 +        </mrow>
   57.56 +      </mrow>
   57.57 +    </mrow>
   57.58 +  </mrow>
   57.59 +</math>
   57.60 \ No newline at end of file
    58.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.2 +++ b/filters/master/mathml/feComponentTransfer04.mml	Mon Apr 11 10:08:48 2011 +1000
    58.3 @@ -0,0 +1,17 @@
    58.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    58.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    58.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    58.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    58.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    58.9 +  <mrow>
   58.10 +    <msup>
   58.11 +      <mi>C</mi>
   58.12 +      <mo>'</mo>
   58.13 +    </msup>
   58.14 +    <mo>=</mo>
   58.15 +    <msub>
   58.16 +      <mi>v</mi>
   58.17 +      <mi>k</mi>
   58.18 +    </msub>
   58.19 +  </mrow>
   58.20 +</math>
   58.21 \ No newline at end of file
    59.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.2 +++ b/filters/master/mathml/feComponentTransfer05.mml	Mon Apr 11 10:08:48 2011 +1000
    59.3 @@ -0,0 +1,22 @@
    59.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    59.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    59.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    59.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    59.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    59.9 +  <mrow>
   59.10 +    <msup>
   59.11 +      <mi>C</mi>
   59.12 +      <mo>'</mo>
   59.13 +    </msup>
   59.14 +    <mo>=</mo>
   59.15 +    <mrow>
   59.16 +      <mrow>
   59.17 +        <mi>slope</mi>
   59.18 +        <mo>×</mo>
   59.19 +        <mi>C</mi>
   59.20 +      </mrow>
   59.21 +      <mo>+</mo>
   59.22 +      <mi>intercept</mi>
   59.23 +    </mrow>
   59.24 +  </mrow>
   59.25 +</math>
   59.26 \ No newline at end of file
    60.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.2 +++ b/filters/master/mathml/feComponentTransfer06.mml	Mon Apr 11 10:08:48 2011 +1000
    60.3 @@ -0,0 +1,31 @@
    60.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    60.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    60.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    60.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    60.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    60.9 +  <mrow>
   60.10 +    <msup>
   60.11 +      <mi>C</mi>
   60.12 +      <mo>'</mo>
   60.13 +    </msup>
   60.14 +    <mo>=</mo>
   60.15 +    <mrow>
   60.16 +      <mrow>
   60.17 +        <mi>amplitude</mi>
   60.18 +        <mo>×</mo>
   60.19 +        <mi>pow</mi>
   60.20 +        <mfenced>
   60.21 +          <mrow>
   60.22 +            <mi>C</mi>
   60.23 +          </mrow>
   60.24 +          <mrow>
   60.25 +            <mi>exp</mi>
   60.26 +            <mi>onent</mi>
   60.27 +          </mrow>
   60.28 +        </mfenced>
   60.29 +      </mrow>
   60.30 +      <mo>+</mo>
   60.31 +      <mi>offset</mi>
   60.32 +    </mrow>
   60.33 +  </mrow>
   60.34 +</math>
    61.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.2 +++ b/filters/master/mathml/feComposite00.mml	Mon Apr 11 10:08:48 2011 +1000
    61.3 @@ -0,0 +1,55 @@
    61.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    61.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    61.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    61.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    61.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    61.9 +  <mrow>
   61.10 +    <mi>result</mi>
   61.11 +    <mo>=</mo>
   61.12 +    <mrow>
   61.13 +      <mrow>
   61.14 +        <mi>k</mi>
   61.15 +        <mn>1</mn>
   61.16 +        <mo>×</mo>
   61.17 +        <mrow>
   61.18 +          <mi>i</mi>
   61.19 +          <mn>1</mn>
   61.20 +        </mrow>
   61.21 +        <mo>×</mo>
   61.22 +        <mrow>
   61.23 +          <mi>i</mi>
   61.24 +          <mn>2</mn>
   61.25 +        </mrow>
   61.26 +      </mrow>
   61.27 +      <mo>+</mo>
   61.28 +      <mrow>
   61.29 +        <mrow>
   61.30 +          <mi>k</mi>
   61.31 +          <mn>2</mn>
   61.32 +        </mrow>
   61.33 +        <mo>×</mo>
   61.34 +        <mrow>
   61.35 +          <mi>i</mi>
   61.36 +          <mn>1</mn>
   61.37 +        </mrow>
   61.38 +      </mrow>
   61.39 +      <mo>+</mo>
   61.40 +      <mrow>
   61.41 +        <mrow>
   61.42 +          <mi>k</mi>
   61.43 +          <mn>3</mn>
   61.44 +        </mrow>
   61.45 +        <mo>×</mo>
   61.46 +        <mrow>
   61.47 +          <mi>i</mi>
   61.48 +          <mn>2</mn>
   61.49 +        </mrow>
   61.50 +      </mrow>
   61.51 +      <mo>+</mo>
   61.52 +      <mrow>
   61.53 +        <mi>k</mi>
   61.54 +        <mn>4</mn>
   61.55 +      </mrow>
   61.56 +    </mrow>
   61.57 +  </mrow>
   61.58 +</math>
   61.59 \ No newline at end of file
    62.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.2 +++ b/filters/master/mathml/feConvolveMatrix00.mml	Mon Apr 11 10:08:48 2011 +1000
    62.3 @@ -0,0 +1,80 @@
    62.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    62.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    62.6 +       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    62.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    62.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    62.9 +  <mrow>
   62.10 +    <msub>
   62.11 +      <mi>result</mi>
   62.12 +      <mrow>
   62.13 +        <mi>X</mi>
   62.14 +        <mo>,</mo>
   62.15 +        <mi>Y</mi>
   62.16 +      </mrow>
   62.17 +    </msub>
   62.18 +    <mo>=</mo>
   62.19 +    <mrow>
   62.20 +      <mfrac>
   62.21 +        <mrow>
   62.22 +          <munderover>
   62.23 +            <mo>&sum;</mo>
   62.24 +            <mrow>
   62.25 +              <mi>I</mi>
   62.26 +              <mo>=</mo>
   62.27 +              <mn>0</mn>
   62.28 +            </mrow>
   62.29 +            <mrow>
   62.30 +              <mi>orderY</mi>
   62.31 +              <mo>&minus;</mo>
   62.32 +              <mn>1</mn>
   62.33 +            </mrow>
   62.34 +          </munderover>
   62.35 +          <mrow>
   62.36 +            <munderover>
   62.37 +              <mo>&sum;</mo>
   62.38 +              <mrow>
   62.39 +                <mi>J</mi>
   62.40 +                <mo>=</mo>
   62.41 +                <mn>0</mn>
   62.42 +              </mrow>
   62.43 +              <mrow>
   62.44 +                <mi>orderX</mi>
   62.45 +                <mo>&minus;</mo>
   62.46 +                <mn>1</mn>
   62.47 +              </mrow>
   62.48 +            </munderover>
   62.49 +            <mrow>
   62.50 +              <msub>
   62.51 +                <mi>source</mi>
   62.52 +                <mfenced open="t">
   62.53 +                  <mrow>
   62.54 +                    <mi></mi>
   62.55 +                  </mrow>
   62.56 +                </mfenced>
   62.57 +              </msub>
   62.58 +              <mo>×</mo>
   62.59 +              <msub>
   62.60 +                <mi>kernelMatrix</mi>
   62.61 +                <mfenced open="1">
   62.62 +                  <mrow>
   62.63 +                    <mi>orderY</mi>
   62.64 +                    <mo>&minus;</mo>
   62.65 +                    <mi>I</mi>
   62.66 +                    <mo>&minus;</mo>
   62.67 +                    <mn>1</mn>
   62.68 +                  </mrow>
   62.69 +                </mfenced>
   62.70 +              </msub>
   62.71 +            </mrow>
   62.72 +          </mrow>
   62.73 +        </mrow>
   62.74 +        <mrow>
   62.75 +          <mi>div</mi>
   62.76 +          <mi>isor</mi>
   62.77 +        </mrow>
   62.78 +      </mfrac>
   62.79 +      <mo>+</mo>
   62.80 +      <mi>bias</mi>
   62.81 +    </mrow>
   62.82 +  </mrow>
   62.83 +</math>
   62.84 \ No newline at end of file
    63.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.2 +++ b/filters/master/mathml/feConvolveMatrix01.mml	Mon Apr 11 10:08:48 2011 +1000
    63.3 @@ -0,0 +1,95 @@
    63.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    63.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    63.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    63.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    63.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    63.9 +  <mfenced>
   63.10 +    <mtable>
   63.11 +      <mtr>
   63.12 +        <mtd>
   63.13 +          <mn>0</mn>
   63.14 +        </mtd>
   63.15 +        <mtd>
   63.16 +          <mn>20</mn>
   63.17 +        </mtd>
   63.18 +        <mtd>
   63.19 +          <mn>40</mn>
   63.20 +        </mtd>
   63.21 +        <mtd>
   63.22 +          <mn>235</mn>
   63.23 +        </mtd>
   63.24 +        <mtd>
   63.25 +          <mn>235</mn>
   63.26 +        </mtd>
   63.27 +      </mtr>
   63.28 +      <mtr>
   63.29 +        <mtd>
   63.30 +          <mn>100</mn>
   63.31 +        </mtd>
   63.32 +        <mtd>
   63.33 +          <mn>120</mn>
   63.34 +        </mtd>
   63.35 +        <mtd>
   63.36 +          <mn>140</mn>
   63.37 +        </mtd>
   63.38 +        <mtd>
   63.39 +          <mn>235</mn>
   63.40 +        </mtd>
   63.41 +        <mtd>
   63.42 +          <mn>235</mn>
   63.43 +        </mtd>
   63.44 +      </mtr>
   63.45 +      <mtr>
   63.46 +        <mtd>
   63.47 +          <mn>200</mn>
   63.48 +        </mtd>
   63.49 +        <mtd>
   63.50 +          <mn>220</mn>
   63.51 +        </mtd>
   63.52 +        <mtd>
   63.53 +          <mn>240</mn>
   63.54 +        </mtd>
   63.55 +        <mtd>
   63.56 +          <mn>235</mn>
   63.57 +        </mtd>
   63.58 +        <mtd>
   63.59 +          <mn>235</mn>
   63.60 +        </mtd>
   63.61 +      </mtr>
   63.62 +      <mtr>
   63.63 +        <mtd>
   63.64 +          <mn>255</mn>
   63.65 +        </mtd>
   63.66 +        <mtd>
   63.67 +          <mn>255</mn>
   63.68 +        </mtd>
   63.69 +        <mtd>
   63.70 +          <mn>255</mn>
   63.71 +        </mtd>
   63.72 +        <mtd>
   63.73 +          <mn>255</mn>
   63.74 +        </mtd>
   63.75 +        <mtd>
   63.76 +          <mn>255</mn>
   63.77 +        </mtd>
   63.78 +      </mtr>
   63.79 +      <mtr>
   63.80 +        <mtd>
   63.81 +          <mn>255</mn>
   63.82 +        </mtd>
   63.83 +        <mtd>
   63.84 +          <mn>255</mn>
   63.85 +        </mtd>
   63.86 +        <mtd>
   63.87 +          <mn>255</mn>
   63.88 +        </mtd>
   63.89 +        <mtd>
   63.90 +          <mn>255</mn>
   63.91 +        </mtd>
   63.92 +        <mtd>
   63.93 +          <mn>255</mn>
   63.94 +        </mtd>
   63.95 +      </mtr>
   63.96 +    </mtable>
   63.97 +  </mfenced>
   63.98 +</math>
   63.99 \ No newline at end of file
    64.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.2 +++ b/filters/master/mathml/feConvolveMatrix02.mml	Mon Apr 11 10:08:48 2011 +1000
    64.3 @@ -0,0 +1,43 @@
    64.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    64.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    64.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    64.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    64.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    64.9 +  <mfenced>
   64.10 +    <mtable>
   64.11 +      <mtr>
   64.12 +        <mtd>
   64.13 +          <mn>1</mn>
   64.14 +        </mtd>
   64.15 +        <mtd>
   64.16 +          <mn>2</mn>
   64.17 +        </mtd>
   64.18 +        <mtd>
   64.19 +          <mn>3</mn>
   64.20 +        </mtd>
   64.21 +      </mtr>
   64.22 +      <mtr>
   64.23 +        <mtd>
   64.24 +          <mn>4</mn>
   64.25 +        </mtd>
   64.26 +        <mtd>
   64.27 +          <mn>5</mn>
   64.28 +        </mtd>
   64.29 +        <mtd>
   64.30 +          <mn>6</mn>
   64.31 +        </mtd>
   64.32 +      </mtr>
   64.33 +      <mtr>
   64.34 +        <mtd>
   64.35 +          <mn>7</mn>
   64.36 +        </mtd>
   64.37 +        <mtd>
   64.38 +          <mn>8</mn>
   64.39 +        </mtd>
   64.40 +        <mtd>
   64.41 +          <mn>9</mn>
   64.42 +        </mtd>
   64.43 +      </mtr>
   64.44 +    </mtable>
   64.45 +  </mfenced>
   64.46 +</math>
   64.47 \ No newline at end of file
    65.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.2 +++ b/filters/master/mathml/feConvolveMatrix03.mml	Mon Apr 11 10:08:48 2011 +1000
    65.3 @@ -0,0 +1,93 @@
    65.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    65.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    65.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    65.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    65.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    65.9 +  <mrow>
   65.10 +    <msub>
   65.11 +      <mi>resultChannel</mi>
   65.12 +      <mn>2,2</mn>
   65.13 +    </msub>
   65.14 +    <mo>=</mo>
   65.15 +    <mfrac>
   65.16 +      <mrow>
   65.17 +        <mo>(</mo>
   65.18 +        <mrow>
   65.19 +          <mrow>
   65.20 +            <mn>9</mn>
   65.21 +            <mo>×</mo>
   65.22 +            <mn>0</mn>
   65.23 +          </mrow>
   65.24 +          <mo>+</mo>
   65.25 +          <mrow>
   65.26 +            <mn>8</mn>
   65.27 +            <mo>×</mo>
   65.28 +            <mn>20</mn>
   65.29 +          </mrow>
   65.30 +          <mo>+</mo>
   65.31 +          <mrow>
   65.32 +            <mn>7</mn>
   65.33 +            <mo>×</mo>
   65.34 +            <mn>40</mn>
   65.35 +          </mrow>
   65.36 +          <mo>+</mo>
   65.37 +          <mrow>
   65.38 +            <mn>6</mn>
   65.39 +            <mo>×</mo>
   65.40 +            <mn>100</mn>
   65.41 +          </mrow>
   65.42 +          <mo>+</mo>
   65.43 +          <mrow>
   65.44 +            <mn>5</mn>
   65.45 +            <mo>×</mo>
   65.46 +            <mn>120</mn>
   65.47 +          </mrow>
   65.48 +          <mo>+</mo>
   65.49 +          <mrow>
   65.50 +            <mn>4</mn>
   65.51 +            <mo>×</mo>
   65.52 +            <mn>140</mn>
   65.53 +          </mrow>
   65.54 +          <mo>+</mo>
   65.55 +          <mrow>
   65.56 +            <mn>3</mn>
   65.57 +            <mo>×</mo>
   65.58 +            <mn>200</mn>
   65.59 +          </mrow>
   65.60 +          <mo>+</mo>
   65.61 +          <mrow>
   65.62 +            <mn>2</mn>
   65.63 +            <mo>×</mo>
   65.64 +            <mn>220</mn>
   65.65 +          </mrow>
   65.66 +          <mo>+</mo>
   65.67 +          <mrow>
   65.68 +            <mn>1</mn>
   65.69 +            <mo>×</mo>
   65.70 +            <mn>240</mn>
   65.71 +          </mrow>
   65.72 +        </mrow>
   65.73 +        <mo>)</mo>
   65.74 +      </mrow>
   65.75 +      <mrow>
   65.76 +        <mn>9</mn>
   65.77 +        <mo>+</mo>
   65.78 +        <mn>8</mn>
   65.79 +        <mo>+</mo>
   65.80 +        <mn>7</mn>
   65.81 +        <mo>+</mo>
   65.82 +        <mn>6</mn>
   65.83 +        <mo>+</mo>
   65.84 +        <mn>5</mn>
   65.85 +        <mo>+</mo>
   65.86 +        <mn>4</mn>
   65.87 +        <mo>+</mo>
   65.88 +        <mn>3</mn>
   65.89 +        <mo>+</mo>
   65.90 +        <mn>2</mn>
   65.91 +        <mo>+</mo>
   65.92 +        <mn>1</mn>
   65.93 +      </mrow>
   65.94 +    </mfrac>
   65.95 +  </mrow>
   65.96 +</math>
   65.97 \ No newline at end of file
    66.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    66.2 +++ b/filters/master/mathml/feConvolveMatrix04.mml	Mon Apr 11 10:08:48 2011 +1000
    66.3 @@ -0,0 +1,119 @@
    66.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    66.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    66.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    66.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    66.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    66.9 +  <mtable>
   66.10 +    <mtr>
   66.11 +      <mtd>
   66.12 +        <mn>11</mn>
   66.13 +      </mtd>
   66.14 +      <mtd>
   66.15 +        <mn>12</mn>
   66.16 +      </mtd>
   66.17 +      <mtd>
   66.18 +        <mo>.</mo>
   66.19 +        <mo>.</mo>
   66.20 +        <mo>.</mo>
   66.21 +      </mtd>
   66.22 +      <mtd>
   66.23 +        <mn>1</mn>
   66.24 +        <mi>m</mi>
   66.25 +      </mtd>
   66.26 +      <mtd>
   66.27 +        <mn>1</mn>
   66.28 +        <mi>M</mi>
   66.29 +      </mtd>
   66.30 +    </mtr>
   66.31 +    <mtr>
   66.32 +      <mtd>
   66.33 +        <mn>21</mn>
   66.34 +      </mtd>
   66.35 +      <mtd>
   66.36 +        <mn>22</mn>
   66.37 +      </mtd>
   66.38 +      <mtd>
   66.39 +        <mo>.</mo>
   66.40 +        <mo>.</mo>
   66.41 +        <mo>.</mo>
   66.42 +      </mtd>
   66.43 +      <mtd>
   66.44 +        <mn>2</mn>
   66.45 +        <mi>m</mi>
   66.46 +      </mtd>
   66.47 +      <mtd>
   66.48 +        <mn>2</mn>
   66.49 +        <mi>M</mi>
   66.50 +      </mtd>
   66.51 +    </mtr>
   66.52 +    <mtr>
   66.53 +      <mtd>
   66.54 +        <mo>.</mo>
   66.55 +        <mo>.</mo>
   66.56 +        <mo>.</mo>
   66.57 +      </mtd>
   66.58 +      <mtd>
   66.59 +        <mo>.</mo>
   66.60 +        <mo>.</mo>
   66.61 +        <mo>.</mo>
   66.62 +      </mtd>
   66.63 +      <mtd>
   66.64 +        <mo>.</mo>
   66.65 +        <mo>.</mo>
   66.66 +        <mo>.</mo>
   66.67 +      </mtd>
   66.68 +      <mtd>
   66.69 +        <mo>.</mo>
   66.70 +        <mo>.</mo>
   66.71 +        <mo>.</mo>
   66.72 +      </mtd>
   66.73 +      <mtd>
   66.74 +        <mo>.</mo>
   66.75 +        <mo>.</mo>
   66.76 +        <mo>.</mo>
   66.77 +      </mtd>
   66.78 +    </mtr>
   66.79 +    <mtr>
   66.80 +      <mtd>
   66.81 +        <mi>n</mi>
   66.82 +        <mn>1</mn>
   66.83 +      </mtd>
   66.84 +      <mtd>
   66.85 +        <mi>n</mi>
   66.86 +        <mn>2</mn>
   66.87 +      </mtd>
   66.88 +      <mtd>
   66.89 +        <mo>.</mo>
   66.90 +        <mo>.</mo>
   66.91 +        <mo>.</mo>
   66.92 +      </mtd>
   66.93 +      <mtd>
   66.94 +        <mi>nm</mi>
   66.95 +      </mtd>
   66.96 +      <mtd>
   66.97 +        <mi>nM</mi>
   66.98 +      </mtd>
   66.99 +    </mtr>
  66.100 +    <mtr>
  66.101 +      <mtd>
  66.102 +        <mi>N</mi>
  66.103 +        <mn>1</mn>
  66.104 +      </mtd>
  66.105 +      <mtd>
  66.106 +        <mi>N</mi>
  66.107 +        <mn>2</mn>
  66.108 +      </mtd>
  66.109 +      <mtd>
  66.110 +        <mo>.</mo>
  66.111 +        <mo>.</mo>
  66.112 +        <mo>.</mo>
  66.113 +      </mtd>
  66.114 +      <mtd>
  66.115 +        <mi>Nm</mi>
  66.116 +      </mtd>
  66.117 +      <mtd>
  66.118 +        <mi>NM</mi>
  66.119 +      </mtd>
  66.120 +    </mtr>
  66.121 +  </mtable>
  66.122 +</math>
  66.123 \ No newline at end of file
    67.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.2 +++ b/filters/master/mathml/feConvolveMatrix05.mml	Mon Apr 11 10:08:48 2011 +1000
    67.3 @@ -0,0 +1,335 @@
    67.4 +<?xml version="1.0" encoding="iso-8859-1"?>
    67.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
    67.6 +      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
    67.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
    67.8 +<math xmlns="http://www.w3.org/1998/Math/MathML">
    67.9 +  <mtable>
   67.10 +    <mtr>
   67.11 +      <mtd>
   67.12 +        <mn>11</mn>
   67.13 +      </mtd>
   67.14 +      <mtd>
   67.15 +        <mn>11</mn>
   67.16 +      </mtd>
   67.17 +      <mtd>
   67.18 +        <mn>11</mn>
   67.19 +      </mtd>
   67.20 +      <mtd>
   67.21 +        <mn>12</mn>
   67.22 +      </mtd>
   67.23 +      <mtd>
   67.24 +        <mo>.</mo>
   67.25 +        <mo>.</mo>
   67.26 +        <mo>.</mo>
   67.27 +      </mtd>
   67.28 +      <mtd>
   67.29 +        <mn>1</mn>
   67.30 +        <mi>m</mi>
   67.31 +      </mtd>
   67.32 +      <mtd>
   67.33 +        <mn>1</mn>
   67.34 +        <mi>M</mi>
   67.35 +      </mtd>
   67.36 +      <mtd>
   67.37 +        <mn>1</mn>
   67.38 +        <mi>M</mi>
   67.39 +      </mtd>
   67.40 +      <mtd>
   67.41 +        <mn>1</mn>
   67.42 +        <mi>M</mi>
   67.43 +      </mtd>
   67.44 +    </mtr>
   67.45 +    <mtr>
   67.46 +      <mtd>
   67.47 +        <mn>11</mn>
   67.48 +      </mtd>
   67.49 +      <mtd>
   67.50 +        <mn>11</mn>
   67.51 +      </mtd>
   67.52 +      <mtd>
   67.53 +        <mn>11</mn>
   67.54 +      </mtd>
   67.55 +      <mtd>
   67.56 +        <mn>12</mn>
   67.57 +      </mtd>
   67.58 +      <mtd>
   67.59 +        <mo>.</mo>
   67.60 +        <mo>.</mo>
   67.61 +        <mo>.</mo>
   67.62 +      </mtd>
   67.63 +      <mtd>
   67.64 +        <mn>1</mn>
   67.65 +        <mi>m</mi>
   67.66 +      </mtd>
   67.67 +      <mtd>
   67.68 +        <mn>1</mn>
   67.69 +        <mi>M</mi>
   67.70 +      </mtd>
   67.71 +      <mtd>
   67.72 +        <mn>1</mn>
   67.73 +        <mi>M</mi>
   67.74 +      </mtd>
   67.75 +      <mtd>
   67.76 +        <mn>1</mn>
   67.77 +        <mi>M</mi>
   67.78 +      </mtd>
   67.79 +    </mtr>
   67.80 +    <mtr>
   67.81 +      <mtd>
   67.82 +        <mn>11</mn>
   67.83 +      </mtd>
   67.84 +      <mtd>
   67.85 +        <mn>11</mn>
   67.86 +      </mtd>
   67.87 +      <mtd>
   67.88 +        <mn>11</mn>
   67.89 +      </mtd>
   67.90 +      <mtd>
   67.91 +        <mn>12</mn>
   67.92 +      </mtd>
   67.93 +      <mtd>
   67.94 +        <mo>.</mo>
   67.95 +        <mo>.</mo>
   67.96 +        <mo>.</mo>
   67.97 +      </mtd>
   67.98 +      <mtd>
   67.99 +        <mn>1</mn>
  67.100 +        <mi>m</mi>
  67.101 +      </mtd>
  67.102 +      <mtd>
  67.103 +        <mn>1</mn>
  67.104 +        <mi>M</mi>
  67.105 +      </mtd>
  67.106 +      <mtd>
  67.107 +        <mn>1</mn>
  67.108 +        <mi>M</mi>
  67.109 +      </mtd>
  67.110 +      <mtd>
  67.111 +        <mn>1</mn>
  67.112 +        <mi>M</mi>
  67.113 +      </mtd>
  67.114 +    </mtr>
  67.115 +    <mtr>
  67.116 +      <mtd>
  67.117 +        <mn>21</mn>
  67.118 +      </mtd>
  67.119 +      <mtd>
  67.120 +        <mn>21</mn>
  67.121 +      </mtd>
  67.122 +      <mtd>
  67.123 +        <mn>21</mn>
  67.124 +      </mtd>
  67.125 +      <mtd>
  67.126 +        <mn>22</mn>
  67.127 +      </mtd>
  67.128 +      <mtd>
  67.129 +        <mo>.</mo>
  67.130 +        <mo>.</mo>
  67.131 +        <mo>.</mo>
  67.132 +      </mtd>
  67.133 +      <mtd>
  67.134 +        <mn>2</mn>
  67.135 +        <mi>m</mi>
  67.136 +      </mtd>
  67.137 +      <mtd>
  67.138 +        <mn>2</mn>
  67.139 +        <mi>M</mi>
  67.140 +      </mtd>
  67.141 +      <mtd>
  67.142 +        <mn>2</mn>
  67.143 +        <mi>M</mi>
  67.144 +      </mtd>
  67.145 +      <mtd>
  67.146 +        <mn>2</mn>
  67.147 +        <mi>M</mi>
  67.148 +      </mtd>
  67.149 +    </mtr>
  67.150 +    <mtr>
  67.151 +      <mtd>
  67.152 +        <mo>.</mo>
  67.153 +        <mo>.</mo>
  67.154 +        <mo>.</mo>
  67.155 +      </mtd>
  67.156 +      <mtd>
  67.157 +        <mo>.</mo>
  67.158 +        <mo>.</mo>
  67.159 +        <mo>.</mo>
  67.160 +      </mtd>
  67.161 +      <mtd>
  67.162 +        <mo>.</mo>
  67.163 +        <mo>.</mo>
  67.164 +        <mo>.</mo>
  67.165 +      </mtd>
  67.166 +      <mtd>
  67.167 +        <mo>.</mo>
  67.168 +        <mo>.</mo>
  67.169 +        <mo>.</mo>
  67.170 +      </mtd>
  67.171 +      <mtd>
  67.172 +        <mo>.</mo>
  67.173 +        <mo>.</mo>
  67.174 +        <mo>.</mo>
  67.175 +      </mtd>
  67.176 +      <mtd>
  67.177 +        <mo>.</mo>
  67.178 +        <mo>.</mo>
  67.179 +        <mo>.</mo>
  67.180 +      </mtd>
  67.181 +      <mtd>
  67.182 +        <mo>.</mo>
  67.183 +        <mo>.</mo>
  67.184 +        <mo>.</mo>
  67.185 +      </mtd>
  67.186 +      <mtd>
  67.187 +        <mo>.</mo>
  67.188 +        <mo>.</mo>
  67.189 +        <mo>.</mo>
  67.190 +      </mtd>
  67.191 +      <mtd>
  67.192 +        <mo>.</mo>
  67.193 +        <mo>.</mo>
  67.194 +        <mo>.</mo>
  67.195 +      </mtd>
  67.196 +    </mtr>
  67.197 +    <mtr>
  67.198 +      <mtd>
  67.199 +        <mi>n</mi>
  67.200 +        <mn>1</mn>
  67.201 +      </mtd>
  67.202 +      <mtd>
  67.203 +        <mi>n</mi>
  67.204 +        <mn>1</mn>
  67.205 +      </mtd>
  67.206 +      <mtd>
  67.207 +        <mi>n</mi>
  67.208 +        <mn>1</mn>
  67.209 +      </mtd>
  67.210 +      <mtd>
  67.211 +        <mi>n</mi>
  67.212 +        <mn>2</mn>
  67.213 +      </mtd>
  67.214 +      <mtd>
  67.215 +        <mo>.</mo>
  67.216 +        <mo>.</mo>
  67.217 +        <mo>.</mo>
  67.218 +      </mtd>
  67.219 +      <mtd>
  67.220 +        <mi>nm</mi>
  67.221 +      </mtd>
  67.222 +      <mtd>
  67.223 +        <mi>nM</mi>
  67.224 +      </mtd>
  67.225 +      <mtd>
  67.226 +        <mi>nM</mi>
  67.227 +      </mtd>
  67.228 +      <mtd>
  67.229 +        <mi>nM</mi>
  67.230 +      </mtd>
  67.231 +    </mtr>
  67.232 +    <mtr>
  67.233 +      <mtd>
  67.234 +        <mi>N</mi>
  67.235 +        <mn>1</mn>
  67.236 +      </mtd>
  67.237 +      <mtd>
  67.238 +        <mi>N</mi>
  67.239 +        <mn>1</mn>
  67.240 +      </mtd>
  67.241 +      <mtd>
  67.242 +        <mi>N</mi>
  67.243 +        <mn>1</mn>
  67.244 +      </mtd>
  67.245 +      <mtd>
  67.246 +        <mi>N</mi>
  67.247 +        <mn>2</mn>
  67.248 +      </mtd>
  67.249 +      <mtd>
  67.250 +        <mo>.</mo>
  67.251 +        <mo>.</mo>
  67.252 +        <mo>.</mo>
  67.253 +      </mtd>
  67.254 +      <mtd>
  67.255 +        <mi>Nm</mi>
  67.256 +      </mtd>
  67.257 +      <mtd>
  67.258 +        <mi>NM</mi>
  67.259 +      </mtd>
  67.260 +      <mtd>
  67.261 +        <mi>NM</mi>
  67.262 +      </mtd>
  67.263 +      <mtd>
  67.264 +        <mi>NM</mi>
  67.265 +      </mtd>
  67.266 +    </mtr>
  67.267 +    <mtr>
  67.268 +      <mtd>
  67.269 +        <mi>N</mi>
  67.270 +        <mn>1</mn>
  67.271 +      </mtd>
  67.272 +      <mtd>
  67.273 +        <mi>N</mi>
  67.274 +        <mn>1</mn>
  67.275 +      </mtd>
  67.276 +      <mtd>
  67.277 +        <mi>N</mi>
  67.278 +        <mn>1</mn>
  67.279 +      </mtd>
  67.280 +      <mtd>
  67.281 +        <mi>N</mi>
  67.282 +        <mn>2</mn>
  67.283 +      </mtd>
  67.284 +      <mtd>
  67.285 +        <mo>.</mo>
  67.286 +        <mo>.</mo>
  67.287 +        <mo>.</mo>
  67.288 +      </mtd>
  67.289 +      <mtd>
  67.290 +        <mi>Nm</mi>
  67.291 +      </mtd>
  67.292 +      <mtd>
  67.293 +        <mi>NM</mi>
  67.294 +      </mtd>
  67.295 +      <mtd>
  67.296 +        <mi>NM</mi>
  67.297 +      </mtd>
  67.298 +      <mtd>
  67.299 +        <mi>NM</mi>
  67.300 +      </mtd>
  67.301 +    </mtr>
  67.302 +    <mtr>
  67.303 +      <mtd>
  67.304 +        <mi>N</mi>
  67.305 +        <mn>1</mn>
  67.306 +      </mtd>
  67.307 +      <mtd>
  67.308 +        <mi>N</mi>
  67.309 +        <mn>1</mn>
  67.310 +      </mtd>
  67.311 +      <mtd>
  67.312 +        <mi>N</mi>
  67.313 +        <mn>1</mn>
  67.314 +      </mtd>
  67.315 +      <mtd>
  67.316 +        <mi>N</mi>
  67.317 +        <mn>2</mn>
  67.318 +      </mtd>
  67.319 +      <mtd>
  67.320 +        <mo>.</mo>
  67.321 +        <mo>.</mo>
  67.322 +        <mo>.</mo>
  67.323 +      </mtd>
  67.324 +      <mtd>
  67.325 +        <mi>Nm</mi>
  67.326 +      </mtd>
  67.327 +      <mtd>
  67.328 +        <mi>NM</mi>
  67.329 +      </mtd>
  67.330 +      <mtd>
  67.331 +        <mi>NM</mi>
  67.332 +      </mtd>
  67.333 +      <mtd>
  67.334 +        <mi>NM</mi>
  67.335 +      </mtd>
  67.336 +    </mtr>
  67.337 +  </mtable>
  67.338 +</math>
  67.339 \ No newline at end of file
    68.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    68.2 +++ b/filters/master/publish-primer.xml	Mon Apr 11 10:08:48 2011 +1000
    68.3 @@ -0,0 +1,22 @@
    68.4 +<!-- Publication script configuration for SVG Filters 1.2 Primer. -->
    68.5 +
    68.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'>
    68.7 +  <title>SVG Filters 1.2, Part 1: Primer</title>
    68.8 +  <short-title>SVG Filters 1.2 Primer</short-title>
    68.9 +  <maturity>ED</maturity>
   68.10 +  <output use-publish-directory='true'/>
   68.11 +  <!--
   68.12 +  <publication-date>2009-12-01</publication-date>
   68.13 +  -->
   68.14 +
   68.15 +  <versions>
   68.16 +    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html'/>
   68.17 +    <this href='http://www.w3.org/TR/2009/WD-SVGFilterPrimer12-2009xxxx/'/>
   68.18 +    <previous href='http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/'/>
   68.19 +    <latest href='http://www.w3.org/TR/SVGFilterPrimer12/'/>
   68.20 +  </versions>
   68.21 +
   68.22 +  <definitions href='definitions-primer.xml'/>
   68.23 +
   68.24 +  <index name='SVGFilterPrimer'/>
   68.25 +</publish-conf>
    69.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.2 +++ b/filters/master/publish-reqs.xml	Mon Apr 11 10:08:48 2011 +1000
    69.3 @@ -0,0 +1,22 @@
    69.4 +<!-- Publication script configuration for SVG Filter Requirements. -->
    69.5 +
    69.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'>
    69.7 +  <title>SVG Filter Requirements</title>
    69.8 +  <short-title>SVG Filter Requirements</short-title>
    69.9 +  <maturity>ED</maturity>
   69.10 +  <output use-publish-directory='true'/>
   69.11 +  <!--
   69.12 +  <publication-date>2009-12-01</publication-date>
   69.13 +  -->
   69.14 +
   69.15 +  <versions>
   69.16 +    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html'/>
   69.17 +    <this href='http://www.w3.org/TR/2009/WD-SVGFilterReqs12-2009xxxx/'/>
   69.18 +    <previous href='http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/'/>
   69.19 +    <latest href='http://www.w3.org/TR/SVGFilterReqs12/'/>
   69.20 +  </versions>
   69.21 +
   69.22 +  <definitions href='definitions-primer.xml'/>
   69.23 +
   69.24 +  <index name='SVGFilterReqs'/>
   69.25 +</publish-conf>
    70.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.2 +++ b/filters/master/publish.xml	Mon Apr 11 10:08:48 2011 +1000
    70.3 @@ -0,0 +1,23 @@
    70.4 +<!-- Publication script configuration for SVG Filters 1.2. -->
    70.5 +
    70.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'>
    70.7 +  <title>Filter Effects 1.0, Part 2: Language</title>
    70.8 +  <short-title>Filter Effects 1.0</short-title>
    70.9 +  <maturity>ED</maturity>
   70.10 +  <output use-publish-directory='true'/>
   70.11 +  <!--
   70.12 +  <publication-date>2009-12-01</publication-date>
   70.13 +  -->
   70.14 +
   70.15 +  <versions>
   70.16 +    <cvs href='http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html'/>
   70.17 +    <this href='http://www.w3.org/TR/2011/WD-FilterEffect10-2011xxxx/'/>
   70.18 +    <previous href='http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/'/>
   70.19 +    <latest href='http://www.w3.org/TR/FilterEffects10/'/>
   70.20 +  </versions>
   70.21 +
   70.22 +  <definitions href='definitions.xml'/>
   70.23 +  <interfaces idl='svgfilters.idlx'/>
   70.24 +
   70.25 +  <index name='SVGFilter'/>
   70.26 +</publish-conf>
    71.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.2 +++ b/filters/master/rng/feBlend	Mon Apr 11 10:08:48 2011 +1000
    71.3 @@ -0,0 +1,33 @@
    71.4 +  <define name='svg.feBlend.content'>
    71.5 +    <zeroOrMore>
    71.6 +      <choice>
    71.7 +        <ref name='animate'/>
    71.8 +        <ref name='set'/>
    71.9 +      </choice>
   71.10 +    </zeroOrMore>
   71.11 +  </define>
   71.12 +
   71.13 +  <define name='feBlend'>
   71.14 +    <element name='feBlend'>
   71.15 +      <ref name='feBlend.attr'/>
   71.16 +      <ref name='svg.feBlend.content'/>
   71.17 +    </element>
   71.18 +  </define>
   71.19 +
   71.20 +  <define name='feBlend.attr' combine='interleave'>
   71.21 +    <ref name='svg.Core.attr'/>
   71.22 +    <ref name='svg.FilterColor.attr'/>
   71.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
   71.24 +    <attribute name='in2'/>
   71.25 +    <optional>
   71.26 +      <attribute name='mode' a:defaultValue='normal'>
   71.27 +        <choice>
   71.28 +          <value>normal</value>
   71.29 +          <value>multiply</value>
   71.30 +          <value>screen</value>
   71.31 +          <value>darken</value>
   71.32 +          <value>lighten</value>
   71.33 +        </choice>
   71.34 +      </attribute>
   71.35 +    </optional>
   71.36 +  </define>
    72.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.2 +++ b/filters/master/rng/feColorMatrix	Mon Apr 11 10:08:48 2011 +1000
    72.3 @@ -0,0 +1,34 @@
    72.4 +  <define name='svg.feColorMatrix.content'>
    72.5 +    <zeroOrMore>
    72.6 +      <choice>
    72.7 +        <ref name='animate'/>
    72.8 +        <ref name='set'/>
    72.9 +      </choice>
   72.10 +    </zeroOrMore>
   72.11 +  </define>
   72.12 +
   72.13 +  <define name='feColorMatrix'>
   72.14 +    <element name='feColorMatrix'>
   72.15 +      <ref name='feColorMatrix.attr'/>
   72.16 +      <ref name='svg.feColorMatrix.content'/>
   72.17 +    </element>
   72.18 +  </define>
   72.19 +
   72.20 +  <define name='feColorMatrix.attr' combine='interleave'>
   72.21 +    <ref name='svg.Core.attr'/>
   72.22 +    <ref name='svg.FilterColor.attr'/>
   72.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
   72.24 +    <optional>
   72.25 +      <attribute name='type' a:defaultValue='matrix'>
   72.26 +        <choice>
   72.27 +          <value>matrix</value>
   72.28 +          <value>saturate</value>
   72.29 +          <value>hueRotate</value>
   72.30 +          <value>luminanceToAlpha</value>
   72.31 +        </choice>
   72.32 +      </attribute>
   72.33 +    </optional>
   72.34 +    <optional>
   72.35 +      <attribute name='values'/>
   72.36 +    </optional>
   72.37 +  </define>
    73.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.2 +++ b/filters/master/rng/feComponentTransfer	Mon Apr 11 10:08:48 2011 +1000
    73.3 @@ -0,0 +1,98 @@
    73.4 +  <define name='svg.feComponentTransfer.content'>
    73.5 +    <optional><ref name='feFuncR'/></optional>
    73.6 +    <optional><ref name='feFuncG'/></optional>
    73.7 +    <optional><ref name='feFuncB'/></optional>
    73.8 +    <optional><ref name='feFuncA'/></optional>
    73.9 +  </define>
   73.10 +
   73.11 +  <define name='feComponentTransfer'>
   73.12 +    <element name='feComponentTransfer'>
   73.13 +      <ref name='feComponentTransfer.attr'/>
   73.14 +      <ref name='svg.feComponentTransfer.content'/>
   73.15 +    </element>
   73.16 +  </define>
   73.17 +
   73.18 +  <define name='feComponentTransfer.attr' combine='interleave'>
   73.19 +    <ref name='svg.Core.attr'/>
   73.20 +    <ref name='svg.FilterColor.attr'/>
   73.21 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
   73.22 +  </define>
   73.23 +
   73.24 +
   73.25 +  <define name='SVG.feFunc.content'>
   73.26 +    <zeroOrMore>
   73.27 +      <choice>
   73.28 +        <ref name='animate'/>
   73.29 +        <ref name='set'/>
   73.30 +      </choice>
   73.31 +    </zeroOrMore>
   73.32 +  </define>
   73.33 +
   73.34 +  <define name='feFuncR'>
   73.35 +    <element name='feFuncR'>
   73.36 +      <ref name='feFunc.attr'/>
   73.37 +      <ref name='svg.feFunc.content'/>
   73.38 +    </element>
   73.39 +  </define>
   73.40 +  
   73.41 +  <define name='feFuncG'>
   73.42 +    <element name='feFuncG'>
   73.43 +      <ref name='feFunc.attr'/>
   73.44 +      <ref name='svg.feFunc.content'/>
   73.45 +    </element>
   73.46 +  </define>
   73.47 +  
   73.48 +  <define name='feFuncB'>
   73.49 +    <element name='feFuncB'>
   73.50 +      <ref name='feFunc.attr'/>
   73.51 +      <ref name='svg.feFunc.content'/>
   73.52 +    </element>
   73.53 +  </define>
   73.54 +  
   73.55 +  <define name='feFuncA'>
   73.56 +    <element name='feFuncA'>
   73.57 +      <ref name='feFunc.attr'/>
   73.58 +      <ref name='svg.feFunc.content'/>
   73.59 +    </element>
   73.60 +  </define>
   73.61 +
   73.62 +  <define name='feFunc.attr' combine='interleave'>
   73.63 +    <ref name='svg.Core.attr'/>
   73.64 +    <attribute name='type'>
   73.65 +      <choice>
   73.66 +        <value>identity</value>
   73.67 +        <value>table</value>
   73.68 +        <value>discrete</value>
   73.69 +        <value>linear</value>
   73.70 +        <value>gamma</value>
   73.71 +      </choice>
   73.72 +    </attribute>
   73.73 +    <optional>
   73.74 +      <attribute name='tableValues'/>
   73.75 +    </optional>
   73.76 +    <optional>
   73.77 +      <attribute name='slope'>
   73.78 +        <ref name='Number.datatype'/>
   73.79 +      </attribute>
   73.80 +    </optional>
   73.81 +    <optional>
   73.82 +      <attribute name='intercept'>
   73.83 +        <ref name='Number.datatype'/>
   73.84 +      </attribute>
   73.85 +    </optional>
   73.86 +    <optional>
   73.87 +      <attribute name='amplitude'>
   73.88 +        <ref name='Number.datatype'/>
   73.89 +      </attribute>
   73.90 +    </optional>
   73.91 +    <optional>
   73.92 +      <attribute name='exponent'>
   73.93 +        <ref name='Number.datatype'/>
   73.94 +      </attribute>
   73.95 +    </optional>
   73.96 +    <optional>
   73.97 +      <attribute name='offset'>
   73.98 +        <ref name='Number.datatype'/>
   73.99 +      </attribute>
  73.100 +    </optional>
  73.101 +  </define>
  73.102 \ No newline at end of file
    74.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.2 +++ b/filters/master/rng/feComposite	Mon Apr 11 10:08:48 2011 +1000
    74.3 @@ -0,0 +1,54 @@
    74.4 +  <define name='svg.feComposite.content'>
    74.5 +    <zeroOrMore>
    74.6 +      <choice>
    74.7 +        <ref name='animate'/>
    74.8 +        <ref name='set'/>
    74.9 +      </choice>
   74.10 +    </zeroOrMore>
   74.11 +  </define>
   74.12 +
   74.13 +  <define name='feComposite'>
   74.14 +    <element name='feComposite'>
   74.15 +      <ref name='feComposite.attr'/>
   74.16 +      <ref name='svg.feComposite.content'/>
   74.17 +    </element>
   74.18 +  </define>
   74.19 +
   74.20 +  <define name='feComposite.attr' combine='interleave'>
   74.21 +    <ref name='svg.Core.attr'/>
   74.22 +    <ref name='svg.FilterColor.attr'/>
   74.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
   74.24 +    <attribute name='in2'/>
   74.25 +    <optional>
   74.26 +      <attribute name='operator' a:defaultValue='over'>
   74.27 +        <choice>
   74.28 +          <value>over</value>
   74.29 +          <value>in</value>
   74.30 +          <value>out</value>
   74.31 +          <value>atop</value>
   74.32 +          <value>xor</value>
   74.33 +          <value>arithmetic</value>
   74.34 +        </choice>
   74.35 +      </attribute>
   74.36 +    </optional>
   74.37 +    <optional>
   74.38 +      <attribute name='k1'>
   74.39 +        <ref name='Number.datatype'/>
   74.40 +      </attribute>
   74.41 +    </optional>
   74.42 +    <optional>
   74.43 +      <attribute name='k2'>
   74.44 +        <ref name='Number.datatype'/>
   74.45 +      </attribute>
   74.46 +    </optional>
   74.47 +    <optional>
   74.48 +      <attribute name='k3'>
   74.49 +        <ref name='Number.datatype'/>
   74.50 +      </attribute>
   74.51 +    </optional>
   74.52 +    <optional>
   74.53 +      <attribute name='k4'>
   74.54 +        <ref name='Number.datatype'/>
   74.55 +      </attribute>
   74.56 +    </optional>
   74.57 +  </define>
    75.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.2 +++ b/filters/master/rng/feConvolveMatrix	Mon Apr 11 10:08:48 2011 +1000
    75.3 @@ -0,0 +1,64 @@
    75.4 +  <define name='svg.feConvolveMatrix.content'>
    75.5 +    <zeroOrMore>
    75.6 +      <choice>
    75.7 +        <ref name='animate'/>
    75.8 +        <ref name='set'/>
    75.9 +      </choice>
   75.10 +    </zeroOrMore>
   75.11 +  </define>
   75.12 +
   75.13 +  <define name='feConvolveMatrix'>
   75.14 +    <element name='feConvolveMatrix'>
   75.15 +      <ref name='feConvolveMatrix.attr'/>
   75.16 +      <ref name='svg.feConvolveMatrix.content'/>
   75.17 +    </element>
   75.18 +  </define>
   75.19 +
   75.20 +  <define name='feConvolveMatrix.attr' combine='interleave'>
   75.21 +    <ref name='svg.Core.attr'/>
   75.22 +    <ref name='svg.FilterColor.attr'/>
   75.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
   75.24 +    <attribute name='order'>
   75.25 +      <ref name='NumberOptionalNumber.datatype'/>
   75.26 +    </attribute>
   75.27 +    <attribute name='kernelMatrix'/>
   75.28 +    <optional>
   75.29 +      <attribute name='divisor'>
   75.30 +        <ref name='Number.datatype'/>
   75.31 +      </attribute>
   75.32 +    </optional>
   75.33 +    <optional>
   75.34 +      <attribute name='bias'>
   75.35 +        <ref name='Number.datatype'/>
   75.36 +      </attribute>
   75.37 +    </optional>
   75.38 +    <optional>
   75.39 +      <attribute name='targetX'>
   75.40 +        <ref name='Integer.datatype'/>
   75.41 +      </attribute>
   75.42 +    </optional>
   75.43 +    <optional>
   75.44 +      <attribute name='targetY'>
   75.45 +        <ref name='Integer.datatype'/>
   75.46 +      </attribute>
   75.47 +    </optional>
   75.48 +    <optional>
   75.49 +      <attribute name='edgeMode' a:defaultValue='duplicate'>
   75.50 +        <choice>
   75.51 +          <value>duplicate</value>
   75.52 +          <value>wrap</value>
   75.53 +          <value>none</value>
   75.54 +        </choice>
   75.55 +      </attribute>
   75.56 +    </optional>
   75.57 +    <optional>
   75.58 +      <attribute name='kernelUnitLength'>
   75.59 +        <ref name='NumberOptionalNumber.datatype'/>
   75.60 +      </attribute>
   75.61 +    </optional>
   75.62 +    <optional>
   75.63 +      <attribute name='preserveAlpha'>
   75.64 +        <ref name='Boolean.datatype'/>
   75.65 +      </attribute>
   75.66 +    </optional>
   75.67 +  </define>
    76.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    76.2 +++ b/filters/master/rng/feDiffuseLighting	Mon Apr 11 10:08:48 2011 +1000
    76.3 @@ -0,0 +1,49 @@
    76.4 +  <define name='svg.feDiffuseLighting.content'>
    76.5 +    <choice>
    76.6 +      <ref name='feDistantLight'/>
    76.7 +      <ref name='fePointLight'/>
    76.8 +      <ref name='feSpotLight'/>
    76.9 +    </choice>
   76.10 +    <zeroOrMore>
   76.11 +      <choice>
   76.12 +        <ref name='animate'/>
   76.13 +        <ref name='set'/>
   76.14 +        <ref name='animateColor'/>
   76.15 +      </choice>
   76.16 +    </zeroOrMore>
   76.17 +  </define>
   76.18 +
   76.19 +  <define name='feDiffuseLighting'>
   76.20 +    <element name='feDiffuseLighting'>
   76.21 +      <ref name='attlist.feDiffuseLighting'/>
   76.22 +      <ref name='svg.feDiffuseLighting.content'/>
   76.23 +    </element>
   76.24 +  </define>
   76.25 +
   76.26 +  <define name='attlist.feDiffuseLighting' combine='interleave'>
   76.27 +    <ref name='svg.Core.attrib'/>
   76.28 +    <ref name='svg.Style.attrib'/>
   76.29 +    <ref name='svg.Color.attrib'/>
   76.30 +    <ref name='svg.FilterColor.attrib'/>
   76.31 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   76.32 +    <optional>
   76.33 +      <attribute name='lighting-color'>
   76.34 +        <ref name='SVGColor.datatype'/>
   76.35 +      </attribute>
   76.36 +    </optional>
   76.37 +    <optional>
   76.38 +      <attribute name='surfaceScale'>
   76.39 +        <ref name='Number.datatype'/>
   76.40 +      </attribute>
   76.41 +    </optional>
   76.42 +    <optional>
   76.43 +      <attribute name='diffuseConstant'>
   76.44 +        <ref name='Number.datatype'/>
   76.45 +      </attribute>
   76.46 +    </optional>
   76.47 +    <optional>
   76.48 +      <attribute name='kernelUnitLength'>
   76.49 +        <ref name='NumberOptionalNumber.datatype'/>
   76.50 +      </attribute>
   76.51 +    </optional>
   76.52 +  </define>
    77.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    77.2 +++ b/filters/master/rng/feDisplacementMap	Mon Apr 11 10:08:48 2011 +1000
    77.3 @@ -0,0 +1,47 @@
    77.4 +  <define name='svg.feDisplacementMap.content'>
    77.5 +    <zeroOrMore>
    77.6 +      <choice>
    77.7 +        <ref name='animate'/>
    77.8 +        <ref name='set'/>
    77.9 +      </choice>
   77.10 +    </zeroOrMore>
   77.11 +  </define>
   77.12 +
   77.13 +  <define name='feDisplacementMap'>
   77.14 +    <element name='feDisplacementMap'>
   77.15 +      <ref name='attlist.feDisplacementMap'/>
   77.16 +      <ref name='svg.feDisplacementMap.content'/>
   77.17 +    </element>
   77.18 +  </define>
   77.19 +
   77.20 +  <define name='attlist.feDisplacementMap' combine='interleave'>
   77.21 +    <ref name='svg.Core.attrib'/>
   77.22 +    <ref name='svg.FilterColor.attrib'/>
   77.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   77.24 +    <attribute name='in2'/>
   77.25 +    <optional>
   77.26 +      <attribute name='scale'>
   77.27 +        <ref name='Number.datatype'/>
   77.28 +      </attribute>
   77.29 +    </optional>
   77.30 +    <optional>
   77.31 +      <attribute name='xChannelSelector' a:defaultValue='A'>
   77.32 +        <choice>
   77.33 +          <value>R</value>
   77.34 +          <value>G</value>
   77.35 +          <value>B</value>
   77.36 +          <value>A</value>
   77.37 +        </choice>
   77.38 +      </attribute>
   77.39 +    </optional>
   77.40 +    <optional>
   77.41 +      <attribute name='yChannelSelector' a:defaultValue='A'>
   77.42 +        <choice>
   77.43 +          <value>R</value>
   77.44 +          <value>G</value>
   77.45 +          <value>B</value>
   77.46 +          <value>A</value>
   77.47 +        </choice>
   77.48 +      </attribute>
   77.49 +    </optional>
   77.50 +  </define>
    78.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.2 +++ b/filters/master/rng/feDistantLight	Mon Apr 11 10:08:48 2011 +1000
    78.3 @@ -0,0 +1,29 @@
    78.4 +  <define name='svg.feDistantLight.content'>
    78.5 +    <zeroOrMore>
    78.6 +      <choice>
    78.7 +        <ref name='animate'/>
    78.8 +        <ref name='set'/>
    78.9 +      </choice>
   78.10 +    </zeroOrMore>
   78.11 +  </define>
   78.12 +
   78.13 +  <define name='feDistantLight'>
   78.14 +    <element name='feDistantLight'>
   78.15 +      <ref name='feDistantLight.attr'/>
   78.16 +      <ref name='svg.feDistantLight.content'/>
   78.17 +    </element>
   78.18 +  </define>
   78.19 +
   78.20 +  <define name='feDistantLight.attr' combine='interleave'>
   78.21 +    <ref name='svg.Core.attr'/>
   78.22 +    <optional>
   78.23 +      <attribute name='azimuth'>
   78.24 +        <ref name='Number.datatype'/>
   78.25 +      </attribute>
   78.26 +    </optional>
   78.27 +    <optional>
   78.28 +      <attribute name='elevation'>
   78.29 +        <ref name='Number.datatype'/>
   78.30 +      </attribute>
   78.31 +    </optional>
   78.32 +  </define>
    79.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    79.2 +++ b/filters/master/rng/feDropShadow	Mon Apr 11 10:08:48 2011 +1000
    79.3 @@ -0,0 +1,37 @@
    79.4 +  <define name='svg.feDropShadow.content'>
    79.5 +    <zeroOrMore>
    79.6 +      <choice>
    79.7 +        <ref name='animate'/>
    79.8 +        <ref name='set'/>
    79.9 +      </choice>
   79.10 +    </zeroOrMore>
   79.11 +  </define>
   79.12 +
   79.13 +  <define name='feDropShadow'>
   79.14 +    <element name='feDropShadow'>
   79.15 +      <ref name='attlist.feDropShadow'/>
   79.16 +      <ref name='svg.feDropShadow.content'/>
   79.17 +    </element>
   79.18 +  </define>
   79.19 +
   79.20 +  <define name='attlist.feDropShadow' combine='interleave'>
   79.21 +    <ref name='svg.Core.attrib'/>
   79.22 +    <ref name='svg.FilterColor.attrib'/>
   79.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   79.24 +	
   79.25 +	<optional>
   79.26 +      <attribute name='dx'>
   79.27 +        <ref name='Coordinate.datatype'/>
   79.28 +      </attribute>
   79.29 +    </optional>
   79.30 +    <optional>
   79.31 +      <attribute name='dy'>
   79.32 +        <ref name='Coordinate.datatype'/>
   79.33 +      </attribute>
   79.34 +    </optional>
   79.35 +    <optional>
   79.36 +      <attribute name='stdDeviation'>
   79.37 +        <ref name='NumberOptionalNumber.datatype'/>
   79.38 +      </attribute>
   79.39 +    </optional>
   79.40 +  </define>
    80.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    80.2 +++ b/filters/master/rng/feFlood	Mon Apr 11 10:08:48 2011 +1000
    80.3 @@ -0,0 +1,34 @@
    80.4 +  <define name='svg.feFlood.content'>
    80.5 +    <zeroOrMore>
    80.6 +      <choice>
    80.7 +        <ref name='animate'/>
    80.8 +        <ref name='set'/>
    80.9 +        <ref name='animateColor'/>
   80.10 +      </choice>
   80.11 +    </zeroOrMore>
   80.12 +  </define>
   80.13 +
   80.14 +  <define name='feFlood'>
   80.15 +    <element name='feFlood'>
   80.16 +      <ref name='attlist.feFlood'/>
   80.17 +      <ref name='svg.feFlood.content'/>
   80.18 +    </element>
   80.19 +  </define>
   80.20 +
   80.21 +  <define name='attlist.feFlood' combine='interleave'>
   80.22 +    <ref name='svg.Core.attrib'/>
   80.23 +    <ref name='svg.Style.attrib'/>
   80.24 +    <ref name='svg.Color.attrib'/>
   80.25 +    <ref name='svg.FilterColor.attrib'/>
   80.26 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   80.27 +    <optional>
   80.28 +      <attribute name='flood-color'>
   80.29 +        <ref name='SVGColor.datatype'/>
   80.30 +      </attribute>
   80.31 +    </optional>
   80.32 +    <optional>
   80.33 +      <attribute name='flood-opacity'>
   80.34 +        <ref name='OpacityValue.datatype'/>
   80.35 +      </attribute>
   80.36 +    </optional>
   80.37 +  </define>
    81.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    81.2 +++ b/filters/master/rng/feGaussianBlur	Mon Apr 11 10:08:48 2011 +1000
    81.3 @@ -0,0 +1,27 @@
    81.4 +  <define name='svg.feGaussianBlur.content'>
    81.5 +    <zeroOrMore>
    81.6 +      <choice>
    81.7 +        <ref name='animate'/>
    81.8 +        <ref name='set'/>
    81.9 +      </choice>
   81.10 +    </zeroOrMore>
   81.11 +  </define>
   81.12 +
   81.13 +  <define name='feGaussianBlur'>
   81.14 +    <element name='feGaussianBlur'>
   81.15 +      <ref name='attlist.feGaussianBlur'/>
   81.16 +      <ref name='svg.feGaussianBlur.content'/>
   81.17 +    </element>
   81.18 +  </define>
   81.19 +
   81.20 +  <define name='attlist.feGaussianBlur' combine='interleave'>
   81.21 +    <ref name='svg.Core.attrib'/>
   81.22 +    <ref name='svg.FilterColor.attrib'/>
   81.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   81.24 +    <optional>
   81.25 +      <attribute name='stdDeviation'>
   81.26 +        <ref name='NumberOptionalNumber.datatype'/>
   81.27 +      </attribute>
   81.28 +    </optional>
   81.29 +  </define>
   81.30 +  
   81.31 \ No newline at end of file
    82.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.2 +++ b/filters/master/rng/feImage	Mon Apr 11 10:08:48 2011 +1000
    82.3 @@ -0,0 +1,32 @@
    82.4 +  <define name='SVG.feImage.content'>
    82.5 +    <zeroOrMore>
    82.6 +      <choice>
    82.7 +        <ref name='animate'/>
    82.8 +        <ref name='set'/>
    82.9 +        <ref name='animateTransform'/>
   82.10 +      </choice>
   82.11 +    </zeroOrMore>
   82.12 +  </define>
   82.13 +
   82.14 +  <define name='feImage'>
   82.15 +    <element name='feImage'>
   82.16 +      <ref name='attlist.feImage'/>
   82.17 +      <ref name='svg.feImage.content'/>
   82.18 +    </element>
   82.19 +  </define>
   82.20 +
   82.21 +  <define name='attlist.feImage' combine='interleave'>
   82.22 +    <ref name='svg.Core.attrib'/>
   82.23 +    <ref name='svg.Style.attrib'/>
   82.24 +    <ref name='svg.Presentation.attrib'/>
   82.25 +    <ref name='svg.FilterPrimitive.attrib'/>
   82.26 +    <ref name='svg.XLinkEmbed.attrib'/>
   82.27 +    <ref name='svg.External.attrib'/>
   82.28 +    <ref name='svg.Transition.attrib'/>
   82.29 +    <ref name='svg.ShadowInherit.attrib'/>
   82.30 +    <optional>
   82.31 +      <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'>
   82.32 +        <ref name='PreserveAspectRatioSpec.datatype'/>
   82.33 +      </attribute>
   82.34 +    </optional>
   82.35 +  </define>
    83.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.2 +++ b/filters/master/rng/feMerge	Mon Apr 11 10:08:48 2011 +1000
    83.3 @@ -0,0 +1,41 @@
    83.4 +  <define name='svg.feMerge.content'>
    83.5 +    <zeroOrMore>
    83.6 +      <ref name='feMergeNode'/>
    83.7 +    </zeroOrMore>
    83.8 +  </define>
    83.9 +
   83.10 +  <define name='feMerge'>
   83.11 +    <element name='feMerge'>
   83.12 +      <ref name='attlist.feMerge'/>
   83.13 +      <ref name='svg.feMerge.content'/>
   83.14 +    </element>
   83.15 +  </define>
   83.16 +
   83.17 +  <define name='attlist.feMerge' combine='interleave'>
   83.18 +    <ref name='svg.Core.attrib'/>
   83.19 +    <ref name='svg.FilterColor.attrib'/>
   83.20 +    <ref name='svg.FilterPrimitive.attrib'/>
   83.21 +  </define>
   83.22 +
   83.23 +  <define name='svg.feMergeNode.content'>
   83.24 +    <zeroOrMore>
   83.25 +      <choice>
   83.26 +        <ref name='animate'/>
   83.27 +        <ref name='set'/>
   83.28 +      </choice>
   83.29 +    </zeroOrMore>
   83.30 +  </define>
   83.31 +
   83.32 +  <define name='feMergeNode'>
   83.33 +    <element name='feMergeNode'>
   83.34 +      <ref name='attlist.feMergeNode'/>
   83.35 +      <ref name='svg.feMergeNode.content'/>
   83.36 +    </element>
   83.37 +  </define>
   83.38 +
   83.39 +  <define name='attlist.feMergeNode' combine='interleave'>
   83.40 +    <ref name='svg.Core.attrib'/>
   83.41 +    <optional>
   83.42 +      <attribute name='in'/>
   83.43 +    </optional>
   83.44 +  </define>
    84.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    84.2 +++ b/filters/master/rng/feMorphology	Mon Apr 11 10:08:48 2011 +1000
    84.3 @@ -0,0 +1,34 @@
    84.4 +  <define name='svg.feMorphology.content'>
    84.5 +    <zeroOrMore>
    84.6 +      <choice>
    84.7 +        <ref name='animate'/>
    84.8 +        <ref name='set'/>
    84.9 +      </choice>
   84.10 +    </zeroOrMore>
   84.11 +  </define>
   84.12 +
   84.13 +  <define name='feMorphology'>
   84.14 +    <element name='feMorphology'>
   84.15 +      <ref name='attlist.feMorphology'/>
   84.16 +      <ref name='svg.feMorphology.content'/>
   84.17 +    </element>
   84.18 +  </define>
   84.19 +
   84.20 +  <define name='attlist.feMorphology' combine='interleave'>
   84.21 +    <ref name='svg.Core.attrib'/>
   84.22 +    <ref name='svg.FilterColor.attrib'/>
   84.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   84.24 +    <optional>
   84.25 +      <attribute name='operator' a:defaultValue='erode'>
   84.26 +        <choice>
   84.27 +          <value>erode</value>
   84.28 +          <value>dilate</value>
   84.29 +        </choice>
   84.30 +      </attribute>
   84.31 +    </optional>
   84.32 +    <optional>
   84.33 +      <attribute name='radius'>
   84.34 +        <ref name='NumberOptionalNumber.datatype'/>
   84.35 +      </attribute>
   84.36 +    </optional>
   84.37 +  </define>
    85.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.2 +++ b/filters/master/rng/feOffset	Mon Apr 11 10:08:48 2011 +1000
    85.3 @@ -0,0 +1,21 @@
    85.4 +  <define name='svg.feOffset.content'>
    85.5 +    <zeroOrMore>
    85.6 +      <choice>
    85.7 +        <ref name='animate'/>
    85.8 +        <ref name='set'/>
    85.9 +      </choice>
   85.10 +    </zeroOrMore>
   85.11 +  </define>
   85.12 +
   85.13 +  <define name='feOffset'>
   85.14 +    <element name='feOffset'>
   85.15 +      <ref name='attlist.feOffset'/>
   85.16 +      <ref name='svg.feOffset.content'/>
   85.17 +    </element>
   85.18 +  </define>
   85.19 +
   85.20 +  <define name='attlist.feOffset' combine='interleave'>
   85.21 +    <ref name='svg.Core.attrib'/>
   85.22 +    <ref name='svg.FilterColor.attrib'/>
   85.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   85.24 +  </define>
    86.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    86.2 +++ b/filters/master/rng/fePointLight	Mon Apr 11 10:08:48 2011 +1000
    86.3 @@ -0,0 +1,34 @@
    86.4 +  <define name='svg.fePointLight.content'>
    86.5 +    <zeroOrMore>
    86.6 +      <choice>
    86.7 +        <ref name='animate'/>
    86.8 +        <ref name='set'/>
    86.9 +      </choice>
   86.10 +    </zeroOrMore>
   86.11 +  </define>
   86.12 +
   86.13 +  <define name='fePointLight'>
   86.14 +    <element name='fePointLight'>
   86.15 +      <ref name='fePointLight.attr'/>
   86.16 +      <ref name='svg.fePointLight.content'/>
   86.17 +    </element>
   86.18 +  </define>
   86.19 +
   86.20 +  <define name='fePointLight.attr' combine='interleave'>
   86.21 +    <ref name='svg.Core.attr'/>
   86.22 +    <optional>
   86.23 +      <attribute name='x'>
   86.24 +        <ref name='Number.datatype'/>
   86.25 +      </attribute>
   86.26 +    </optional>
   86.27 +    <optional>
   86.28 +      <attribute name='y'>
   86.29 +        <ref name='Number.datatype'/>
   86.30 +      </attribute>
   86.31 +    </optional>
   86.32 +    <optional>
   86.33 +      <attribute name='z'>
   86.34 +        <ref name='Number.datatype'/>
   86.35 +      </attribute>
   86.36 +    </optional>
   86.37 +  </define>
    87.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    87.2 +++ b/filters/master/rng/feSpecularLighting	Mon Apr 11 10:08:48 2011 +1000
    87.3 @@ -0,0 +1,54 @@
    87.4 +  <define name='svg.feSpecularLighting.content'>
    87.5 +    <choice>
    87.6 +      <ref name='feDistantLight'/>
    87.7 +      <ref name='fePointLight'/>
    87.8 +      <ref name='feSpotLight'/>
    87.9 +    </choice>
   87.10 +    <zeroOrMore>
   87.11 +      <choice>
   87.12 +        <ref name='animate'/>
   87.13 +        <ref name='set'/>
   87.14 +        <ref name='animateColor'/>
   87.15 +      </choice>
   87.16 +    </zeroOrMore>
   87.17 +  </define>
   87.18 +
   87.19 +  <define name='feSpecularLighting'>
   87.20 +    <element name='feSpecularLighting'>
   87.21 +      <ref name='attlist.feSpecularLighting'/>
   87.22 +      <ref name='svg.feSpecularLighting.content'/>
   87.23 +    </element>
   87.24 +  </define>
   87.25 +
   87.26 +  <define name='attlist.feSpecularLighting' combine='interleave'>
   87.27 +    <ref name='svg.Core.attrib'/>
   87.28 +    <ref name='svg.Style.attrib'/>
   87.29 +    <ref name='svg.Color.attrib'/>
   87.30 +    <ref name='svg.FilterColor.attrib'/>
   87.31 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   87.32 +    <optional>
   87.33 +      <attribute name='lighting-color'>
   87.34 +        <ref name='SVGColor.datatype'/>
   87.35 +      </attribute>
   87.36 +    </optional>
   87.37 +    <optional>
   87.38 +      <attribute name='surfaceScale'>
   87.39 +        <ref name='Number.datatype'/>
   87.40 +      </attribute>
   87.41 +    </optional>
   87.42 +    <optional>
   87.43 +      <attribute name='specularConstant'>
   87.44 +        <ref name='Number.datatype'/>
   87.45 +      </attribute>
   87.46 +    </optional>
   87.47 +    <optional>
   87.48 +      <attribute name='specularExponent'>
   87.49 +        <ref name='Number.datatype'/>
   87.50 +      </attribute>
   87.51 +    </optional>
   87.52 +    <optional>
   87.53 +      <attribute name='kernelUnitLength'>
   87.54 +        <ref name='NumberOptionalNumber.datatype'/>
   87.55 +      </attribute>
   87.56 +    </optional>
   87.57 +  </define>
    88.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    88.2 +++ b/filters/master/rng/feSpotLight	Mon Apr 11 10:08:48 2011 +1000
    88.3 @@ -0,0 +1,59 @@
    88.4 +<define name='svg.feSpotLight.content'>
    88.5 +    <zeroOrMore>
    88.6 +      <choice>
    88.7 +        <ref name='animate'/>
    88.8 +        <ref name='set'/>
    88.9 +      </choice>
   88.10 +    </zeroOrMore>
   88.11 +  </define>
   88.12 +
   88.13 +  <define name='feSpotLight'>
   88.14 +    <element name='feSpotLight'>
   88.15 +      <ref name='feSpotLight.attr'/>
   88.16 +      <ref name='svg.feSpotLight.content'/>
   88.17 +    </element>
   88.18 +  </define>
   88.19 +  
   88.20 +  <define name='feSpotLight.attr' combine='interleave'>
   88.21 +    <ref name='svg.Core.attr'/>
   88.22 +    <optional>
   88.23 +      <attribute name='x'>
   88.24 +        <ref name='Number.datatype'/>
   88.25 +      </attribute>
   88.26 +    </optional>
   88.27 +    <optional>
   88.28 +      <attribute name='y'>
   88.29 +        <ref name='Number.datatype'/>
   88.30 +      </attribute>
   88.31 +    </optional>
   88.32 +    <optional>
   88.33 +      <attribute name='z'>
   88.34 +        <ref name='Number.datatype'/>
   88.35 +      </attribute>
   88.36 +    </optional>
   88.37 +    <optional>
   88.38 +      <attribute name='pointsAtX'>
   88.39 +        <ref name='Number.datatype'/>
   88.40 +      </attribute>
   88.41 +    </optional>
   88.42 +    <optional>
   88.43 +      <attribute name='pointsAtY'>
   88.44 +        <ref name='Number.datatype'/>
   88.45 +      </attribute>
   88.46 +    </optional>
   88.47 +    <optional>
   88.48 +      <attribute name='pointsAtZ'>
   88.49 +        <ref name='Number.datatype'/>
   88.50 +      </attribute>
   88.51 +    </optional>
   88.52 +    <optional>
   88.53 +      <attribute name='specularExponent'>
   88.54 +        <ref name='Number.datatype'/>
   88.55 +      </attribute>
   88.56 +    </optional>
   88.57 +    <optional>
   88.58 +      <attribute name='limitingConeAngle'>
   88.59 +        <ref name='Number.datatype'/>
   88.60 +      </attribute>
   88.61 +    </optional>
   88.62 +  </define>
    89.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    89.2 +++ b/filters/master/rng/feTile	Mon Apr 11 10:08:48 2011 +1000
    89.3 @@ -0,0 +1,21 @@
    89.4 +  <define name='svg.feTile.content'>
    89.5 +    <zeroOrMore>
    89.6 +      <choice>
    89.7 +        <ref name='animate'/>
    89.8 +        <ref name='set'/>
    89.9 +      </choice>
   89.10 +    </zeroOrMore>
   89.11 +  </define>
   89.12 +
   89.13 +  <define name='feTile'>
   89.14 +    <element name='feTile'>
   89.15 +      <ref name='attlist.feTile'/>
   89.16 +      <ref name='svg.feTile.content'/>
   89.17 +    </element>
   89.18 +  </define>
   89.19 +
   89.20 +  <define name='attlist.feTile' combine='interleave'>
   89.21 +    <ref name='svg.Core.attrib'/>
   89.22 +    <ref name='svg.FilterColor.attrib'/>
   89.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   89.24 +  </define>
    90.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    90.2 +++ b/filters/master/rng/feTurbulence	Mon Apr 11 10:08:48 2011 +1000
    90.3 @@ -0,0 +1,52 @@
    90.4 +  <define name='svg.feTurbulence.content'>
    90.5 +    <zeroOrMore>
    90.6 +      <choice>
    90.7 +        <ref name='animate'/>
    90.8 +        <ref name='set'/>
    90.9 +      </choice>
   90.10 +    </zeroOrMore>
   90.11 +  </define>
   90.12 +
   90.13 +  <define name='feTurbulence'>
   90.14 +    <element name='feTurbulence'>
   90.15 +      <ref name='attlist.feTurbulence'/>
   90.16 +      <ref name='svg.feTurbulence.content'/>
   90.17 +    </element>
   90.18 +  </define>
   90.19 +
   90.20 +  <define name='attlist.feTurbulence' combine='interleave'>
   90.21 +    <ref name='svg.Core.attrib'/>
   90.22 +    <ref name='svg.FilterColor.attrib'/>
   90.23 +    <ref name='svg.FilterPrimitive.attrib'/>
   90.24 +    <optional>
   90.25 +      <attribute name='baseFrequency'>
   90.26 +        <ref name='NumberOptionalNumber.datatype'/>
   90.27 +      </attribute>
   90.28 +    </optional>
   90.29 +    <optional>
   90.30 +      <attribute name='numOctaves'>
   90.31 +        <ref name='Integer.datatype'/>
   90.32 +      </attribute>
   90.33 +    </optional>
   90.34 +    <optional>
   90.35 +      <attribute name='seed'>
   90.36 +        <ref name='Number.datatype'/>
   90.37 +      </attribute>
   90.38 +    </optional>
   90.39 +    <optional>
   90.40 +      <attribute name='stitchTiles' a:defaultValue='noStitch'>
   90.41 +        <choice>
   90.42 +          <value>stitch</value>
   90.43 +          <value>noStitch</value>
   90.44 +        </choice>
   90.45 +      </attribute>
   90.46 +    </optional>
   90.47 +    <optional>
   90.48 +      <attribute name='type' a:defaultValue='turbulence'>
   90.49 +        <choice>
   90.50 +          <value>fractalNoise</value>
   90.51 +          <value>turbulence</value>
   90.52 +        </choice>
   90.53 +      </attribute>
   90.54 +    </optional>
   90.55 +  </define>
    91.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    91.2 +++ b/filters/master/rng/feUnsharpMask	Mon Apr 11 10:08:48 2011 +1000
    91.3 @@ -0,0 +1,33 @@
    91.4 +  <define name='svg.feUnsharpMask.content'>
    91.5 +    <zeroOrMore>
    91.6 +      <choice>
    91.7 +        <ref name='animate'/>
    91.8 +        <ref name='set'/>
    91.9 +      </choice>
   91.10 +    </zeroOrMore>
   91.11 +  </define>
   91.12 +
   91.13 +  <define name='feUnsharpMask'>
   91.14 +    <element name='feUnsharpMask'>
   91.15 +      <ref name='attlist.feUnsharpMask'/>
   91.16 +      <ref name='svg.feUnsharpMask.content'/>
   91.17 +    </element>
   91.18 +  </define>
   91.19 +
   91.20 +  <define name='attlist.feUnsharpMask' combine='interleave'>
   91.21 +    <ref name='svg.Core.attrib'/>
   91.22 +    <ref name='svg.FilterColor.attrib'/>
   91.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
   91.24 +    <optional>
   91.25 +      <attribute name='amount'>
   91.26 +        <ref name='Number.datatype'/>
   91.27 +      </attribute>
   91.28 +      <attribute name='radius'>
   91.29 +        <ref name='NumberOptionalNumber.datatype'/>
   91.30 +      </attribute>
   91.31 +      <attribute name='threshold'>
   91.32 +        <ref name='Number.datatype'/>
   91.33 +      </attribute>
   91.34 +    </optional>
   91.35 +  </define>
   91.36 +  
    92.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    92.2 +++ b/filters/master/rng/filter	Mon Apr 11 10:08:48 2011 +1000
    92.3 @@ -0,0 +1,91 @@
    92.4 +  <define name='filter'>
    92.5 +    <element name='filter'>
    92.6 +      <ref name='filter.AT'/>
    92.7 +      <ref name='svg.filter.content'/>
    92.8 +    </element>
    92.9 +  </define>
   92.10 +
   92.11 +  <define name='filter.AT' combine='interleave'>
   92.12 +    <ref name='svg.Core.attr'/>
   92.13 +    <ref name='svg.Style.attr'/>
   92.14 +    <ref name='svg.Presentation.attrib'/>
   92.15 +    <ref name='svg.XLink.attrib'/>
   92.16 +    <ref name='svg.External.attrib'/>
   92.17 +    <optional>
   92.18 +      <attribute name='x'>
   92.19 +        <ref name='Coordinate.datatype'/>
   92.20 +      </attribute>
   92.21 +    </optional>
   92.22 +    <optional>
   92.23 +      <attribute name='y'>
   92.24 +        <ref name='Coordinate.datatype'/>
   92.25 +      </attribute>
   92.26 +    </optional>
   92.27 +    <optional>
   92.28 +      <attribute name='width'>
   92.29 +        <ref name='Length.datatype'/>
   92.30 +      </attribute>
   92.31 +    </optional>
   92.32 +    <optional>
   92.33 +      <attribute name='height'>
   92.34 +        <ref name='Length.datatype'/>
   92.35 +      </attribute>
   92.36 +    </optional>
   92.37 +    <optional>
   92.38 +      <attribute name='mx'>
   92.39 +        <ref name='Coordinate.datatype'/>
   92.40 +      </attribute>
   92.41 +    </optional>
   92.42 +    <optional>
   92.43 +      <attribute name='my'>
   92.44 +        <ref name='Coordinate.datatype'/>
   92.45 +      </attribute>
   92.46 +    </optional>
   92.47 +    <optional>
   92.48 +      <attribute name='mw'>
   92.49 +        <ref name='Length.datatype'/>
   92.50 +      </attribute>
   92.51 +    </optional>
   92.52 +    <optional>
   92.53 +      <attribute name='mh'>
   92.54 +        <ref name='Length.datatype'/>
   92.55 +      </attribute>
   92.56 +    </optional>
   92.57 +    <optional>
   92.58 +      <attribute name='filterRes'>
   92.59 +        <ref name='NumberOptionalNumber.datatype'/>
   92.60 +      </attribute>
   92.61 +    </optional>
   92.62 +    <optional>
   92.63 +      <attribute name='filterUnits'>
   92.64 +        <choice>
   92.65 +          <value>userSpaceOnUse</value>
   92.66 +          <value>objectBoundingBox</value>
   92.67 +        </choice>
   92.68 +      </attribute>
   92.69 +    </optional>
   92.70 +    <optional>
   92.71 +      <attribute name='primitiveUnits'>
   92.72 +        <choice>
   92.73 +          <value>userSpaceOnUse</value>
   92.74 +          <value>objectBoundingBox</value>
   92.75 +        </choice>
   92.76 +      </attribute>
   92.77 +    </optional>
   92.78 +    <optional>
   92.79 +      <attribute name='filterMarginsUnits'>
   92.80 +        <choice>
   92.81 +          <value>userSpaceOnUse</value>
   92.82 +          <value>objectBoundingBox</value>
   92.83 +        </choice>
   92.84 +      </attribute>
   92.85 +    </optional>	
   92.86 +    <optional>
   92.87 +      <attribute name='primitiveMarginsUnits'>
   92.88 +        <choice>
   92.89 +          <value>userSpaceOnUse</value>
   92.90 +          <value>objectBoundingBox</value>
   92.91 +        </choice>
   92.92 +      </attribute>
   92.93 +    </optional>	
   92.94 +  </define>
    93.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    93.2 +++ b/filters/master/rng/filter-primitive-attr	Mon Apr 11 10:08:48 2011 +1000
    93.3 @@ -0,0 +1,52 @@
    93.4 +  <define name='svg.FilterPrimitive.attrib'>
    93.5 +    <optional>
    93.6 +      <attribute name='x'>
    93.7 +        <ref name='Coordinate.datatype'/>
    93.8 +      </attribute>
    93.9 +    </optional>
   93.10 +    <optional>
   93.11 +      <attribute name='y'>
   93.12 +        <ref name='Coordinate.datatype'/>
   93.13 +      </attribute>
   93.14 +    </optional>
   93.15 +    <optional>
   93.16 +      <attribute name='width'>
   93.17 +        <ref name='Length.datatype'/>
   93.18 +      </attribute>
   93.19 +    </optional>
   93.20 +    <optional>
   93.21 +      <attribute name='height'>
   93.22 +        <ref name='Length.datatype'/>
   93.23 +      </attribute>
   93.24 +    </optional>
   93.25 +    <optional>
   93.26 +      <attribute name='mx'>
   93.27 +        <ref name='Coordinate.datatype'/>
   93.28 +      </attribute>
   93.29 +    </optional>
   93.30 +    <optional>
   93.31 +      <attribute name='my'>
   93.32 +        <ref name='Coordinate.datatype'/>
   93.33 +      </attribute>
   93.34 +    </optional>
   93.35 +    <optional>
   93.36 +      <attribute name='mw'>
   93.37 +        <ref name='Length.datatype'/>
   93.38 +      </attribute>
   93.39 +    </optional>
   93.40 +    <optional>
   93.41 +      <attribute name='mh'>
   93.42 +        <ref name='Length.datatype'/>
   93.43 +      </attribute>
   93.44 +    </optional>
   93.45 +    <optional>
   93.46 +      <attribute name='result'/>
   93.47 +    </optional>
   93.48 +  </define>
   93.49 +  
   93.50 +  <define name='svg.FilterPrimitiveWithIn.attrib'>
   93.51 +    <ref name='svg.FilterPrimitive.attrib'/>
   93.52 +    <optional>
   93.53 +      <attribute name='in'/>
   93.54 +    </optional>
   93.55 +  </define>
    94.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.2 +++ b/filters/master/style/W3C-WD.css	Mon Apr 11 10:08:48 2011 +1000
    94.3 @@ -0,0 +1,89 @@
    94.4 +
    94.5 +/* Style for a public "Working Draft" */
    94.6 +
    94.7 +/*
    94.8 +   Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
    94.9 +   The following software licensing rules apply:
   94.10 +   http://www.w3.org/Consortium/Legal/copyright-software */
   94.11 +
   94.12 +/* $Id$ */
   94.13 +
   94.14 +
   94.15 +body {
   94.16 +  padding: 2em 1em 2em 70px;
   94.17 +  margin: 0;
   94.18 +  font-family: sans-serif;
   94.19 +  color: black;
   94.20 +  background: white;
   94.21 +  background-position: top left;
   94.22 +  background-attachment: fixed;
   94.23 +  background-repeat: no-repeat;
   94.24 +}
   94.25 +:link { color: #00C; background: transparent }
   94.26 +:visited { color: #609; background: transparent }
   94.27 +a:active { color: #C00; background: transparent }
   94.28 +
   94.29 +a:link img, a:visited img { border-style: none } /* no border on img links */
   94.30 +
   94.31 +a img { color: white; }        /* trick to hide the border in Netscape 4 */
   94.32 +@media all {                   /* hide the next rule from Netscape 4 */
   94.33 +  a img { color: inherit; }    /* undo the color change above */
   94.34 +}
   94.35 +
   94.36 +th, td { /* ns 4 */
   94.37 +  font-family: sans-serif;
   94.38 +}
   94.39 +
   94.40 +h1, h2, h3, h4, h5, h6 { text-align: left }
   94.41 +/* background should be transparent, but WebTV has a bug */
   94.42 +h1, h2, h3 { color: #005A9C; background: white }
   94.43 +h1 { font: 170% sans-serif }
   94.44 +h2 { font: 140% sans-serif }
   94.45 +h3 { font: 120% sans-serif }
   94.46 +h4 { font: bold 100% sans-serif }
   94.47 +h5 { font: italic 100% sans-serif }
   94.48 +h6 { font: small-caps 100% sans-serif }
   94.49 +
   94.50 +.hide { display: none }
   94.51 +
   94.52 +div.head { margin-bottom: 1em }
   94.53 +div.head h1 { margin-top: 2em; clear: both }
   94.54 +div.head table { margin-left: 2em; margin-top: 2em }
   94.55 +
   94.56 +p.copyright { font-size: small }
   94.57 +p.copyright small { font-size: small }
   94.58 +
   94.59 +@media screen {  /* hide from IE3 */
   94.60 +a[href]:hover { background: #ffa }
   94.61 +}
   94.62 +
   94.63 +pre { margin-left: 2em }
   94.64 +/*
   94.65 +p {
   94.66 +  margin-top: 0.6em;
   94.67 +  margin-bottom: 0.6em;
   94.68 +}
   94.69 +*/
   94.70 +dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
   94.71 +dt { font-weight: bold }
   94.72 +
   94.73 +pre, code { font-family: monospace } /* navigator 4 requires this */
   94.74 +
   94.75 +ul.toc {
   94.76 +  list-style: disc;		/* Mac NS has problem with 'none' */
   94.77 +  list-style: none;
   94.78 +}
   94.79 +
   94.80 +@media aural {  
   94.81 +  h1, h2, h3 { stress: 20; richness: 90 }
   94.82 +  .hide { speak: none }
   94.83 +  p.copyright { volume: x-soft; speech-rate: x-fast }
   94.84 +  dt { pause-before: 20% }
   94.85 +  pre { speak-punctuation: code } 
   94.86 +}
   94.87 +
   94.88 +
   94.89 +
   94.90 +body {
   94.91 +  background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD);
   94.92 +}
    95.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.2 +++ b/filters/master/style/expanders.js	Mon Apr 11 10:08:48 2011 +1000
    95.3 @@ -0,0 +1,32 @@
    95.4 +function expand(e) {
    95.5 +  e = e.parentNode;
    95.6 +  e.parentNode.removeAttribute('class');
    95.7 +  e.style.display = "none";
    95.8 +  e.nextSibling.style.display = "inline";
    95.9 +}
   95.10 +
   95.11 +(function() {
   95.12 +  var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span');
   95.13 +  for (i = 0; i != l.length; i++) {
   95.14 +    e0 = l[i];
   95.15 +    if (e0.getAttribute('class') == 'expanding') {
   95.16 +      a.push(e0);
   95.17 +    }
   95.18 +  }
   95.19 +  for (i = 0; i != a.length; i++) {
   95.20 +    e0 = a[i];
   95.21 +    e1 = document.createElement('span');
   95.22 +    e1.setAttribute('class', 'expander');
   95.23 +    e1.setAttribute('onclick', 'expand(event.target)');
   95.24 +    e1p = document.createElement('span');
   95.25 +    e1p.textContent = ' ';
   95.26 +    e1p.appendChild(e1);
   95.27 +    e2 = document.createElement('span');
   95.28 +    e2.style.display = 'none';
   95.29 +    while (e0.firstChild) {
   95.30 +      e2.appendChild(e0.firstChild);
   95.31 +    }
   95.32 +    e0.appendChild(e1p);
   95.33 +    e0.appendChild(e2);
   95.34 +  }
   95.35 +})();
    96.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    96.2 +++ b/filters/master/style/svg-style-extra.css	Mon Apr 11 10:08:48 2011 +1000
    96.3 @@ -0,0 +1,179 @@
    96.4 +body { line-height: 1.3; }
    96.5 +
    96.6 +.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em }
    96.7 +.element-summary-name { float: right; font-size: 110% }
    96.8 +.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; }
    96.9 +.element-summary * + dt { margin-top: 0.5em; }
   96.10 +.element-summary dd { margin-top: 0; }
   96.11 +.element-summary ul.no-bullets { list-style: none; padding-left: 0em }
   96.12 +.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; }
   96.13 +.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% }
   96.14 +.expander { }
   96.15 +.expander:active { color: #C00 }
   96.16 +.expander:hover { background: #ffa }
   96.17 +.expander:after { content: 'show »' }
   96.18 +
   96.19 +.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% }
   96.20 +
   96.21 +pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ }
   96.22 +pre.idl a:link, pre.idl a:visited { color: black; }
   96.23 +
   96.24 +dl.interface dt {
   96.25 +  margin-top: 1em;
   96.26 +}
   96.27 +
   96.28 +dl.interface dl.attributes > dt,
   96.29 +dl.interface dl.constants > dt,
   96.30 +dl.interface dl.operations > dt {
   96.31 +  margin-top: 2em;
   96.32 +}
   96.33 +
   96.34 +dl.interface dl.attributes > dt,
   96.35 +dl.interface dl.constants > dt,
   96.36 +dl.interface dl.operations > dt,
   96.37 +dl.interface ol.parameters > li,
   96.38 +dl.interface dl.exceptions > dt {
   96.39 +  font-weight: normal;
   96.40 +  display: list-item;
   96.41 +}
   96.42 +
   96.43 +dl.interface dl.attributes > dt:first-child,
   96.44 +dl.interface dl.constants > dt:first-child,
   96.45 +dl.interface dl.operations > dt:first-child,
   96.46 +dl.interface ol.parameters > li:first-child,
   96.47 +dl.interface dl.exceptions > dt:first-child {
   96.48 +  margin-top: 0;
   96.49 +}
   96.50 +
   96.51 +dl.interface dl.attributes > dd,
   96.52 +dl.interface dl.constants > dd,
   96.53 +dl.interface dl.operations > dd,
   96.54 +dl.interface ol.parameters > li,
   96.55 +dl.interface dl.exceptions > dd {
   96.56 +  margin-top: 0.5em;
   96.57 +  margin-left: 0;
   96.58 +}
   96.59 +
   96.60 +dl.interface dl.attribute {
   96.61 +  /*margin-left: 2em;*/
   96.62 +}
   96.63 +
   96.64 +dl.interface dd > *:first-child,
   96.65 +dl.interface ol.parameters > li,
   96.66 +dl.interface ol.parameters > li > *:first-child + * {
   96.67 +  margin-top: 0;
   96.68 +}
   96.69 +
   96.70 +ol.parameters > li > .parameter {
   96.71 +  float: left;
   96.72 +}
   96.73 +
   96.74 +ol.parameters > li > .parameter::after {
   96.75 +  content: " — ";
   96.76 +}
   96.77 +
   96.78 +.idl .keyword {
   96.79 +  /*font-weight: bold;*/
   96.80 +}
   96.81 +
   96.82 +.idlattr, .idlattr:link, .idlattr:visited {
   96.83 +  background: #d9e8ff;
   96.84 +  color: black;
   96.85 +}
   96.86 +
   96.87 +ol.parameters {
   96.88 +  list-style-type: disc;
   96.89 +  padding-left: 0;
   96.90 +}
   96.91 +
   96.92 +var {
   96.93 +  font-style: italic;
   96.94 +}
   96.95 +
   96.96 +dl.definitions > dt,
   96.97 +.adef-list dl > dt { margin-top: 1em; }
   96.98 +
   96.99 +dl.definitions > dt + dt,
  96.100 +.adef-list dl > dt + dt { margin-top: 0; }
  96.101 +
  96.102 +dl.definitions > dd > :first-child,
  96.103 +.adef-list dl > dd > :first-child { margin-top: 0; }
  96.104 +
  96.105 +table.vert {
  96.106 +  border-collapse: collapse;
  96.107 +  border-top: 2px solid #005a9c;
  96.108 +  border-bottom: 2px solid #005a9c;
  96.109 +  margin-top: 1em;
  96.110 +  margin-bottom: 1em;
  96.111 +  margin-left: auto;
  96.112 +  margin-right: auto;
  96.113 +}
  96.114 +table.vert td {
  96.115 +  background: #f0f6ff;
  96.116 +}
  96.117 +table.vert th {
  96.118 +  text-align: left;
  96.119 +  vertical-align: bottom;
  96.120 +  border-bottom: 2px solid #005a9c;
  96.121 +  white-space: nowrap;
  96.122 +  color: #d9e8ff;
  96.123 +  background: #005a9c;
  96.124 +}
  96.125 +table.vert th a:link,
  96.126 +table.vert th a:visited { color: #d9e8ff; }
  96.127 +table.vert th a:hover { color: black; }
  96.128 +table.vert th, table.vert td { padding: 0.5em 0.75em; }
  96.129 +table.vert th .attr-name { color: white }
  96.130 +table.vert th a:hover .element-name { color: #2A2AA5 }
  96.131 +table.vert th .prop-name { color: white }
  96.132 +table.vert th a:hover .element-name { color: black }
  96.133 +table.vert th .element-name { color: white }
  96.134 +table.vert th a:hover .element-name { color: #A52A2A }
  96.135 +table.vert td { vertical-align: top; }
  96.136 +table.offset { margin-left: 2em; margin-right: 2em; }
  96.137 +.indented {
  96.138 +  margin-left: 2em;
  96.139 +}
  96.140 +.math var, .math sub, .math sup {
  96.141 +  font-family: serif;
  96.142 +}
  96.143 +.separated {
  96.144 +  word-spacing: 1em;
  96.145 +}
  96.146 +.familyname {
  96.147 +  text-transform: uppercase;
  96.148 +}
  96.149 +
  96.150 +dl.unemphasized-names > dt > a { font-weight: normal }
  96.151 +
  96.152 +.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right }
  96.153 +.header.top { border-top: 1px solid #ccc }
  96.154 +.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em }
  96.155 +.header .namedate { display: block; float: left }
  96.156 +.header ul { display: block; margin: 0 }
  96.157 +.header ul li { display: inline; margin: 0 }
  96.158 +.header ul li:first-child::before { content: none }
  96.159 +.header ul li::before { content: ' â‹… ' }
  96.160 +.header .after { display: block; clear: both; height: 1px }
  96.161 +.header .after::before { content: ' ' }
  96.162 +
  96.163 +table.property-table { font-size: 90%; border-collapse: collapse }
  96.164 +table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) }
  96.165 +.tocline1 { font-weight: bold }
  96.166 +/* .toc { margin-bottom: 0.5em } */
  96.167 +
  96.168 +.idl-type-parenthetical { font-size: 90% }
  96.169 +td > :first-child,
  96.170 +th > :first-child { margin-top: 0 }
  96.171 +td p {
  96.172 +  margin-top: 1em;
  96.173 +  margin-bottom: 0;
  96.174 +}
  96.175 +
  96.176 +table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em }
  96.177 +table.collection th { background: #eee }
  96.178 +table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline }
  96.179 +
  96.180 +ol.notes { list-style-type: none; padding-left: 0 }
  96.181 +
  96.182 +.colorpatch { width: 14px; height:14px; border: 1px solid black; }
    97.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    97.2 +++ b/filters/master/style/svg-style.css	Mon Apr 11 10:08:48 2011 +1000
    97.3 @@ -0,0 +1,454 @@
    97.4 +/*
    97.5 + * style sheet for svg specification
    97.6 + */
    97.7 +
    97.8 +
    97.9 +body {
   97.10 +    color: black;
   97.11 +    /* text-align: justify; */
   97.12 +    font-family: helvetica, sans-serif;
   97.13 +    background: white;
   97.14 +    margin: 2em;
   97.15 +    /* for the rec: background: #def url(recbg.jpg); */
   97.16 +}
   97.17 +.navlinks {
   97.18 +    text-align: center;
   97.19 +}
   97.20 +h2, h3, h4, h5, h6 {
   97.21 +    text-align: left;
   97.22 +}
   97.23 +
   97.24 +.header {
   97.25 +  text-align: right;
   97.26 +  border-bottom: 1px solid #aaa;
   97.27 +  padding-bottom: 0.5em;
   97.28 +  font-size: 80%;
   97.29 +}
   97.30 +
   97.31 +.footer {
   97.32 +  text-align: right;
   97.33 +  margin-top: 1em;
   97.34 +  border-top: 1px solid #aaa;
   97.35 +  padding-top: 0.5em;
   97.36 +  font-size: 80%;
   97.37 +}
   97.38 +
   97.39 +.header ul, .footer ul {
   97.40 +  display: inline;
   97.41 +  padding: 0;
   97.42 +}
   97.43 +
   97.44 +.header li, .footer li {
   97.45 +  display: inline;
   97.46 +  border-left: 1px solid #aaa;
   97.47 +  padding-left: 0.2em;
   97.48 +}
   97.49 +
   97.50 +h1 {
   97.51 +    clear: left;
   97.52 +    margin-top: 1em;
   97.53 +    text-align: center;
   97.54 +}
   97.55 +
   97.56 +pre { margin-left: 2em }
   97.57 +pre {
   97.58 +    color: #a52a2a;
   97.59 +    font-family: monospace;
   97.60 +    font-size: 90%
   97.61 +}
   97.62 +pre.svgsamplecompressed {
   97.63 +    font-size: 75%;
   97.64 +    letter-spacing: -.05em;
   97.65 +    line-height: 95%
   97.66 +}
   97.67 +pre strong {
   97.68 +    color: #004400;
   97.69 +    font-weight: bold
   97.70 +}
   97.71 +.filterformula {
   97.72 +    color: #a52a2a;
   97.73 +    font-family: monospace;
   97.74 +    font-size: 90%;
   97.75 +    margin-left: 2em
   97.76 +}
   97.77 +
   97.78 +div.dtd-fragment { 
   97.79 +    background-color: #dddddd;
   97.80 +    margin-left: 0;
   97.81 +}
   97.82 +.dtd-fragment { 
   97.83 +    background-color: #dddddd;
   97.84 +    margin-left: 0;
   97.85 +}
   97.86 +.idl-code { 
   97.87 +  margin: 0;
   97.88 +  font-family: monospace;
   97.89 +	border: 1px solid black;
   97.90 +	white-space: pre;
   97.91 +	color: black; 
   97.92 +	background-color: #dfdfdf;
   97.93 +}
   97.94 +
   97.95 +.adef {
   97.96 +    font-family: monospace;
   97.97 +	font-weight: bold;
   97.98 +}
   97.99 +
  97.100 +
  97.101 +address {
  97.102 +    text-align: right;
  97.103 +    font-style: italic;
  97.104 +}
  97.105 +
  97.106 +var {
  97.107 +    font-style: normal;
  97.108 +}
  97.109 +img {
  97.110 +    border: 0;
  97.111 +}
  97.112 +.toc {
  97.113 +    text-indent: 0;
  97.114 +}
  97.115 +.toc2 {
  97.116 +    text-indent: 2em;
  97.117 +}
  97.118 +.toc3 {
  97.119 +    text-indent: 4em;
  97.120 +}
  97.121 +p.toc-line {
  97.122 +    margin-top: 1em;
  97.123 +    margin-bottom: 1em;
  97.124 +    text-indent: 0;
  97.125 +}
  97.126 +
  97.127 +/* it should be 'inherit', but netscape inserts a random color :-( */
  97.128 +a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/}
  97.129 +div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/}
  97.130 +div.deprecated-html-example a:link,
  97.131 +div.deprecated-html-example a:visited {color: red; /*color: inherit*/}
  97.132 +.note a:link, .note a:visited {color: green; /*color: inherit*/}
  97.133 +
  97.134 +a.propdef-title {
  97.135 +  background: yellow;
  97.136 +}
  97.137 +
  97.138 +a.descdef-title {
  97.139 +  color: yellow;
  97.140 +  background: green
  97.141 +}
  97.142 +
  97.143 +/* table {margin-left: 1em} */
  97.144 +div.propdef {margin: 1.2em 0}
  97.145 +
  97.146 +.example {
  97.147 +  padding: 0;
  97.148 +  background: white;
  97.149 +}
  97.150 +
  97.151 +.exampleheader {
  97.152 +  margin: 0;
  97.153 +  background: #dda;
  97.154 +  border-bottom: 1px solid #666;
  97.155 +  border-right: 1px solid #666;
  97.156 +  border-top: 1px solid #aaa;
  97.157 +  border-left: 1px solid #aaa;
  97.158 +  padding: 0.5em 1em;
  97.159 +}
  97.160 +
  97.161 +.examplesource {
  97.162 +  padding: 0;
  97.163 +  margin: 0;
  97.164 +  background: #ffc;
  97.165 +  border-bottom: 1px solid #996;
  97.166 +  border-right: 1px solid #996;
  97.167 +  border-top: 1px solid #bb8;
  97.168 +  border-left: 1px solid #bb8;
  97.169 +}
  97.170 +
  97.171 +.examplesource pre {
  97.172 +  background: none;
  97.173 +  color: #633;
  97.174 +  margin: 0 1em;
  97.175 +  padding: 0.5em 0 0 0;
  97.176 +}
  97.177 +
  97.178 +.exampleimage {
  97.179 +  text-align: center;
  97.180 +  padding: 1em;
  97.181 +  border-bottom: 1px solid #996;
  97.182 +  border-right: 1px solid #996;
  97.183 +  border-top: 1px solid #bb8;
  97.184 +  border-left: 1px solid #bb8;
  97.185 +}
  97.186 +
  97.187 +.schema {
  97.188 +  padding: 0;
  97.189 +  background: white;
  97.190 +  width: 100%;
  97.191 +}
  97.192 +
  97.193 +.schemaheader {
  97.194 +  margin: 0;
  97.195 +  background: #ccc;
  97.196 +  border-bottom: 1px solid #666;
  97.197 +  border-right: 1px solid #666;
  97.198 +  border-top: 1px solid #aaa;
  97.199 +  border-left: 1px solid #aaa;
  97.200 +  padding: 0.5em 1em;
  97.201 +}
  97.202 +
  97.203 +.schemasource {
  97.204 +  padding: 0;
  97.205 +  margin: 0;
  97.206 +  background: #ddd;
  97.207 +  border-bottom: 1px solid #666;
  97.208 +  border-right: 1px solid #666;
  97.209 +  border-top: 1px solid #aaa;
  97.210 +  border-left: 1px solid #aaa;
  97.211 +}
  97.212 +
  97.213 +.schemasource pre {
  97.214 +  background: none;
  97.215 +  color: #030;
  97.216 +  margin: 0 1em;
  97.217 +  padding: 0.5em 0 0 0;
  97.218 +}
  97.219 +
  97.220 +pre.example { color: maroon }
  97.221 +pre.illegal-example { color: red }
  97.222 +div.illegal-example { color: red }
  97.223 +div.illegal-example p { color: black }
  97.224 +
  97.225 +
  97.226 +div.html-example { color: maroon }
  97.227 +pre.html-example { color: maroon }
  97.228 +pre.illegal-html-example { color: red }
  97.229 +div.illegal-html-example { color: red }
  97.230 +div.illegal-html-example p { color: black }
  97.231 +pre.deprecated-html-example { color: red }
  97.232 +div.deprecated-html-example { color: red }
  97.233 +div.deprecated-html-example p { color: black }
  97.234 +
  97.235 +div.xml-example { color: maroon }
  97.236 +pre.xml-example { color: maroon }
  97.237 +pre.illegal-xml-example { color: red }
  97.238 +div.illegal-xml-example { color: red }
  97.239 +div.illegal-xml-example p { color: black }
  97.240 +
  97.241 +div.dtd-example { color: maroon }
  97.242 +pre.dtd-example { color: maroon }
  97.243 +pre.illegal-dtd-example { color: red }
  97.244 +div.illegal-dtd-example { color: red }
  97.245 +div.illegal-dtd-example p { color: black }
  97.246 +
  97.247 +.note {
  97.248 +    font-weight: bold;
  97.249 +    margin-top: 1em;
  97.250 +    margin-bottom: 1em;
  97.251 +    margin-left: 1em;
  97.252 +    margin-right: 1em;
  97.253 +	background: #6f9 none repeat scroll 0%; 
  97.254 +	color: black; 
  97.255 +}
  97.256 +
  97.257 +.requirement {
  97.258 +    margin-top: 1em;
  97.259 +    margin-bottom: 1em;
  97.260 +    margin-left: 1em;
  97.261 +    margin-right: 1em;
  97.262 +	background: #fad none repeat scroll 0%; 
  97.263 +	color: black; 
  97.264 +}
  97.265 +
  97.266 +.normref { 
  97.267 +    color: red;
  97.268 +}	
  97.269 +
  97.270 +.informref {
  97.271 +    color: green;
  97.272 +}	
  97.273 +
  97.274 +div.propdef th { 
  97.275 +    text-align: right; 
  97.276 +}
  97.277 +
  97.278 +div.descdef th { 
  97.279 +    text-align: right; 
  97.280 +}
  97.281 +
  97.282 +ul.toc, ol.toc {list-style: none}
  97.283 +div.toc ul ul, div.toc ol ol {margin-left: 0}
  97.284 +div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em}
  97.285 +div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0}
  97.286 +li.tocline1 {font-weight: bold}
  97.287 +li.tocline2 {font-weight: normal}
  97.288 +li.tocline4 {font-style: italic}
  97.289 +/* div.subtoc ul, div.subtoc ol {list-style: none} */
  97.290 +/* the border in the following rule crashes nn4 on fonts.html :-(
  97.291 +div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0;
  97.292 +    background: #ddd}
  97.293 +*/
  97.294 +ul.index {list-style: none}
  97.295 +
  97.296 +s, del {text-decoration: line-through; color: red}
  97.297 +u, ins {text-decoration: underline; background: #bfa}
  97.298 +
  97.299 +div.figure {
  97.300 +    text-align: center;
  97.301 +    /*border: solid thin;
  97.302 +    width: 100%;*/
  97.303 +    margin: 2.5em 0
  97.304 +}
  97.305 +p.caption, caption {
  97.306 +    text-align: center;
  97.307 +    font-style: italic;
  97.308 +    font-weight: bold;
  97.309 +    font-size: 90%;
  97.310 +    color: #088;
  97.311 +    margin: 1.5em 25% 0 25%;
  97.312 +}
  97.313 +div.toc, ul.index, dt {
  97.314 +    text-align: left
  97.315 +}
  97.316 +sup {
  97.317 +    vertical-align: super;
  97.318 +    font-size: 80%
  97.319 +}
  97.320 +.code-fragment {
  97.321 +	color: #a52a2a;
  97.322 +	font-weight: bold;
  97.323 +    font-size: 90%
  97.324 +}
  97.325 +.element-name {
  97.326 +	color: #a52a2a;
  97.327 +	font-weight: bold;
  97.328 +    font-size: 90%
  97.329 +}
  97.330 +.attr-name {
  97.331 +	color: #2a2aa5;
  97.332 +	font-weight: bold;
  97.333 +    font-size: 90%
  97.334 +}
  97.335 +.prop-name {
  97.336 +	color: black;
  97.337 +	font-weight: bold;
  97.338 +    font-size: 90%
  97.339 +}
  97.340 +.attr-value, .prop-value {
  97.341 +	font-weight: bold;
  97.342 +    font-size: 90%
  97.343 +}
  97.344 +/*
  97.345 +.svg-term {
  97.346 +    color: red;
  97.347 +	font-weight: bold
  97.348 +}
  97.349 +*/
  97.350 +.svg-termdefine {
  97.351 +	font-weight: bold
  97.352 +}
  97.353 +.example-ref {
  97.354 +	color: green;
  97.355 +}
  97.356 +.anim-target { 
  97.357 +    font-style: italic 
  97.358 +}
  97.359 +.dominterfacename {
  97.360 +        font-weight: bold
  97.361 +}
  97.362 +.dom-attr-name {
  97.363 +        color: black;
  97.364 +        background-color: #ffffd2;
  97.365 +}
  97.366 +.dom-attr-type, .dom-attr-value {
  97.367 +        color: black;
  97.368 +        font-weight: bold;
  97.369 +}
  97.370 +.dom-method-name {
  97.371 +        color: black;
  97.372 +        background-color: #d9e6f8;
  97.373 +}
  97.374 +.dom-parameter-name {
  97.375 +	margin-top: 1%;
  97.376 +        background-color: #fee6f8; 
  97.377 +        color: black;
  97.378 +}
  97.379 +.math-variable {
  97.380 +    font-family:times,serif
  97.381 +}
  97.382 +.color-keyword-value {
  97.383 +	color: #a52a2a;
  97.384 +}
  97.385 +.view-as-svg {
  97.386 +  font-style:italic
  97.387 +}
  97.388 +.table-heading-1 {
  97.389 +  font-style:italic; 
  97.390 +  text-align:center
  97.391 +}
  97.392 +.pathdatatable { 
  97.393 +  background: #dddddd 
  97.394 +}
  97.395 +.useruleapplied {
  97.396 +  font-style:normal; 
  97.397 +  font-weight:bold; 
  97.398 +  color:blue
  97.399 +}
  97.400 +.useruleignored {
  97.401 +  font-style:italic; 
  97.402 +  font-weight:bold; 
  97.403 +  color:#050;
  97.404 +}
  97.405 +
  97.406 +.editor { text-decoration: underline; font-size: 85% }
  97.407 +.editor-intro { color: red; font-weight: bold }
  97.408 +.editor-rec { color: red; font-weight: bold }
  97.409 +.designgoals { list-style-type: upper-alpha }
  97.410 +.reqt-level0 { list-style-type: decimal; font-weight: bold }
  97.411 +.reqt-level1 { list-style-type: lower-alpha; font-weight: normal }
  97.412 +.reqt-level2 { list-style-type: lower-roman; font-weight: normal }
  97.413 +
  97.414 +.b4nomfix { color: #a52a2a; text-decoration: line-through }
  97.415 +.afnomfix { color: red; }
  97.416 +
  97.417 +div.note,p.note { 
  97.418 +	border: 2px dotted #3c6; 
  97.419 +	padding: 0.5em; 
  97.420 +}
  97.421 +
  97.422 +.specissue { 
  97.423 +	border-style: solid; 
  97.424 +	border-color: black; 
  97.425 +	border-width: 1px 1px 1px 4px; 
  97.426 +	padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 
  97.427 +}
  97.428 +
  97.429 +.svgt12 { 
  97.430 +	background: rgb(153, 223, 255) none repeat scroll 0%; 
  97.431 +	color: black; 
  97.432 +}
  97.433 +
  97.434 +a[href="http://www.w3.org/TR/SVG10/"] { background: red; }
  97.435 +a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; }
  97.436 +a[href="http://www.w3.org/SVGMobile12/"] { background: green; }
  97.437 +
  97.438 +.new {
  97.439 +	border-style: solid;
  97.440 +	border-color: green;
  97.441 +	border-width: 0px 0px 0px 4px;
  97.442 +	padding-left: 20px;
  97.443 +	margin-left: -20px;
  97.444 +}
  97.445 +
  97.446 +.changed {
  97.447 +	border-style: solid;
  97.448 +	border-color: blue;
  97.449 +	border-width: 0px 0px 0px 4px;
  97.450 +	padding-left: 20px;
  97.451 +	margin-left: -20px;
  97.452 +}
  97.453 +
  97.454 +div.note-editor
  97.455 +{
  97.456 +	display:none;
  97.457 +}
    98.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    98.2 +++ b/filters/master/style/svgspec.css	Mon Apr 11 10:08:48 2011 +1000
    98.3 @@ -0,0 +1,105 @@
    98.4 +.term {
    98.5 +    FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white
    98.6 +}
    98.7 +PRE {
    98.8 +    FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white
    98.9 +}
   98.10 +PRE.schema {
   98.11 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
   98.12 +}
   98.13 +PRE.example {
   98.14 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
   98.15 +}
   98.16 +.dtd-fragment {
   98.17 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd
   98.18 +}
   98.19 +.idl-code {
   98.20 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf
   98.21 +}
   98.22 +.adef {
   98.23 +    FONT-WEIGHT: bold; FONT-FAMILY: monospace
   98.24 +}
   98.25 +IMG {
   98.26 +    BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px
   98.27 +}
   98.28 +.toc {
   98.29 +    TEXT-INDENT: 0px
   98.30 +}
   98.31 +.toc2 {
   98.32 +    TEXT-INDENT: 2em
   98.33 +}
   98.34 +.toc3 {
   98.35 +    TEXT-INDENT: 4em
   98.36 +}
   98.37 +P.toc-line {
   98.38 +    MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px
   98.39 +}
   98.40 +.example {
   98.41 +    COLOR: maroon; BACKGROUND-COLOR: white
   98.42 +}
   98.43 +.pseudocode {
   98.44 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff
   98.45 +}
   98.46 +.algorithm OL {
   98.47 +    LIST-STYLE-TYPE: decimal
   98.48 +}
   98.49 +.algorithm OL LI {
   98.50 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
   98.51 +}
   98.52 +.algorithm OL LI OL {
   98.53 +    LIST-STYLE-TYPE: lower-alpha
   98.54 +}
   98.55 +.algorithm OL LI OL LI {
   98.56 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
   98.57 +}
   98.58 +.algorithm OL LI OL LI OL {
   98.59 +    LIST-STYLE-TYPE: lower-roman
   98.60 +}
   98.61 +.algorithm OL LI OL LI OL LI {
   98.62 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
   98.63 +}
   98.64 +.note {
   98.65 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid
   98.66 +}
   98.67 +P.caption {
   98.68 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
   98.69 +}
   98.70 +CAPTION {
   98.71 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
   98.72 +}
   98.73 +.element {
   98.74 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white
   98.75 +}
   98.76 +.type {
   98.77 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
   98.78 +}
   98.79 +.attribute {
   98.80 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white
   98.81 +}
   98.82 +.property {
   98.83 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white
   98.84 +}
   98.85 +.attribute-value {
   98.86 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
   98.87 +}
   98.88 +.property-value {
   98.89 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
   98.90 +}
   98.91 +.interface {
   98.92 +    FONT-WEIGHT: bold
   98.93 +}
   98.94 +.dom-attribute {
   98.95 +    COLOR: black; BACKGROUND-COLOR: #ffffd2
   98.96 +}
   98.97 +.dom-attribute-type {
   98.98 +    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
   98.99 +}
  98.100 +.dom-attribute-value {
  98.101 +    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
  98.102 +}
  98.103 +.dom-method {
  98.104 +    COLOR: black; BACKGROUND-COLOR: #d9e6f8
  98.105 +}
  98.106 +.dom-parameter {
  98.107 +    COLOR: black; BACKGROUND-COLOR: #fee6f8
  98.108 +}
    99.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.2 +++ b/filters/master/svgfilters.idd	Mon Apr 11 10:08:48 2011 +1000
    99.3 @@ -0,0 +1,30 @@
    99.4 +[svg]
    99.5 +[svg::SVGSVGElement::createSVGRect]
    99.6 +Creates a new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> object. This object can be used to modify the value of traits which are compatible with the <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>
    99.7 + type using the <a href="#svg__TraitAccess_setRectTrait"><code>setRectTrait</code></a> method. The initial values for <a href="#svg__SVGRect_x"><code>x</code></a>, <a href="#svg__SVGRect_y"><code>y</code></a>, <a href="#svg__SVGRect_width"><code>width</code></a>, <a href="#svg__SVGRect_height"><code>height</code></a> of this new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> are zero.
    99.8 +
    99.9 +     <dl>
   99.10 +       <dt><span class="dom-parameters">No Parameters</span></dt>
   99.11 +     </dl>
   99.12 +
   99.13 +
   99.14 +     <dl>
   99.15 +       <dt><span class="dom-returnvalue">Return value</span></dt>
   99.16 +       <dd>
   99.17 +         <table summary="method return value" border="0">
   99.18 +
   99.19 +           <tbody><tr>
   99.20 +             <td valign="top"><span class="dom-returnvalue-type"><a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a></span></td>
   99.21 +             <td>
   99.22 +             </td>
   99.23 +             <td>The created <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>.</td>
   99.24 +           </tr>
   99.25 +         </tbody></table>
   99.26 +       </dd>
   99.27 +
   99.28 +     </dl>
   99.29 +
   99.30 +
   99.31 +     <dl>
   99.32 +       <dt><span class="dom-parameters">No Exceptions</span></dt>
   99.33 +    </dl>
   100.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.2 +++ b/filters/master/svgfilters.idl	Mon Apr 11 10:08:48 2011 +1000
   100.3 @@ -0,0 +1,1262 @@
   100.4 +// // File: svg.idl
   100.5 +// #ifndef _SVG_IDL_
   100.6 +// #define _SVG_IDL_
   100.7 +// 
   100.8 +// 
   100.9 +// // For access to DOM2 core
  100.10 +// #include "dom.idl"
  100.11 +// 
  100.12 +// // For access to DOM2 events
  100.13 +// #include "events.idl"
  100.14 +// 
  100.15 +// // For access to those parts from DOM2 CSS OM used by SVG DOM.
  100.16 +// #include "css.idl"
  100.17 +// 
  100.18 +// // For access to those parts from DOM2 Views OM used by SVG DOM.
  100.19 +// #include "views.idl"
  100.20 +// 
  100.21 +// // For access to the SMIL OM used by SVG DOM.
  100.22 +// #include "smil.idl"
  100.23 +// 
  100.24 +// #pragma prefix "dom.w3c.org"
  100.25 +// #pragma javaPackage "org.w3c.dom"
  100.26 +
  100.27 +module dom {
  100.28 +  exception DOMException { };
  100.29 +  interface Element { };
  100.30 +  interface Document { };
  100.31 +  interface NodeList { };
  100.32 +};
  100.33 +
  100.34 +module svg
  100.35 +{
  100.36 +  typedef dom::DOMException DOMException;
  100.37 +  typedef dom::Element Element;
  100.38 +  typedef dom::Document Document;
  100.39 +  typedef dom::NodeList NodeList;
  100.40 +  
  100.41 +  /**
  100.42 +   * The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface.
  100.43 +   */
  100.44 +  interface ImageData {
  100.45 +    /**
  100.46 +     * The width of the bitmap that the ImageData represents.
  100.47 +     */
  100.48 +    readonly attribute long width;
  100.49 +    
  100.50 +    /**
  100.51 +     * The height of the bitmap that the ImageData represents.
  100.52 +     */
  100.53 +    readonly attribute long height;
  100.54 +    
  100.55 +    /**
  100.56 +     * An array of pixel values that is the bitmap. This array must
  100.57 +     * always be in the form of width×height×4 integer values. The
  100.58 +     * pixel data is in left-to-right order, starting from the top-left
  100.59 +     * corner, and going row by row downwards. Every pixel is
  100.60 +     * represented by four integer values, red, green, blue and alpha,
  100.61 +     * in that order. The range of each color component is 0..255. The
  100.62 +     * intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 
  100.63 +     * canvas interfaces, in particular see 
  100.64 +     * <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>.
  100.65 +     */
  100.66 +    readonly attribute sequence<octet> data;
  100.67 +  };
  100.68 +
  100.69 +  /**
  100.70 +   * The <a>SVGFilterElement</a> interface corresponds to the <a>'filter element'</a>
  100.71 +   * element.
  100.72 +   */
  100.73 +  interface SVGFilterElement : 
  100.74 +                SVGElement,
  100.75 +                SVGURIReference,
  100.76 +                SVGLangSpace,
  100.77 +                SVGExternalResourcesRequired,
  100.78 +                SVGStylable,
  100.79 +                SVGUnitTypes { 
  100.80 +
  100.81 +    /**
  100.82 +     * Corresponds to attribute <a>'filterUnits'</a> on the given <a>'filter element'</a>
  100.83 +     * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
  100.84 +     */
  100.85 +    readonly attribute SVGAnimatedEnumeration filterUnits;
  100.86 +
  100.87 +    /**
  100.88 +     * Corresponds to attribute <a>'primitiveUnits'</a> on the given <a>'filter element'</a>
  100.89 +     * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
  100.90 +     */
  100.91 +    readonly attribute SVGAnimatedEnumeration primitiveUnits;
  100.92 +
  100.93 +    /**
  100.94 +     * Corresponds to attribute <a>'x'</a> on the given <a>'filter element'</a> element.
  100.95 +     */
  100.96 +    readonly attribute SVGAnimatedLength x;
  100.97 +
  100.98 +    /**
  100.99 +     * Corresponds to attribute <a>'y'</a> on the given <a>'filter element'</a> element.
 100.100 +     */
 100.101 +    readonly attribute SVGAnimatedLength y;
 100.102 +
 100.103 +    /**
 100.104 +     * Corresponds to attribute <a>'width'</a> on the given <a>'filter element'</a> element.
 100.105 +     */
 100.106 +    readonly attribute SVGAnimatedLength width;
 100.107 +
 100.108 +    /**
 100.109 +     * Corresponds to attribute <a>'height'</a> on the given <a>'filter element'</a> element.
 100.110 +     */
 100.111 +    readonly attribute SVGAnimatedLength height;
 100.112 +
 100.113 +    /**
 100.114 +     * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
 100.115 +     * element.  Contains the X component of attribute <a>'filterRes'</a>.
 100.116 +     */
 100.117 +    readonly attribute SVGAnimatedInteger filterResX;
 100.118 +
 100.119 +    /**
 100.120 +     * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
 100.121 +     * element.  Contains the Y component (possibly computed automatically) of
 100.122 +     * attribute <a>'filterRes'</a>.
 100.123 +     */
 100.124 +    readonly attribute SVGAnimatedInteger filterResY;
 100.125 +
 100.126 +    /**
 100.127 +     * Sets the values for attribute <a>'filterRes'</a>.
 100.128 +     *
 100.129 +     * @param filterResX The X component of attribute <a>'filterRes'</a>.
 100.130 +     * @param filterResY The Y component of attribute <a>'filterRes'</a>.
 100.131 +     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 100.132 +     *   to change the value of a readonly attribute.
 100.133 +     */
 100.134 +    void setFilterRes(in unsigned long filterResX, in unsigned long filterResY) raises(DOMException);
 100.135 +	  
 100.136 +	  /**
 100.137 +	   * Applies the filter to the given ImageData object and returns the result.
 100.138 +	   *
 100.139 +	   * @param source The image to apply the filter to.
 100.140 +	   * @return The result of the filter, see <a>ImageData</a> for how to construct this.
 100.141 +	   */
 100.142 +	  ImageData apply(in ImageData source);
 100.143 +  };
 100.144 +
 100.145 +  /**
 100.146 +   * This interface defines the set of DOM attributes that are common across
 100.147 +   * the filter primitive interfaces.
 100.148 +   */
 100.149 +  interface SVGFilterPrimitiveStandardAttributes : SVGStylable { 
 100.150 +
 100.151 +    /**
 100.152 +     * Corresponds to attribute <a>'x'</a> on the given element.
 100.153 +     */
 100.154 +    readonly attribute SVGAnimatedLength x;
 100.155 +
 100.156 +    /**
 100.157 +     * Corresponds to attribute <a>'y'</a> on the given element.
 100.158 +     */
 100.159 +    readonly attribute SVGAnimatedLength y;
 100.160 +
 100.161 +    /**
 100.162 +     * Corresponds to attribute <a>'width'</a> on the given element.
 100.163 +     */
 100.164 +    readonly attribute SVGAnimatedLength width;
 100.165 +
 100.166 +    /**
 100.167 +     * Corresponds to attribute <a>'height'</a> on the given element.
 100.168 +     */
 100.169 +    readonly attribute SVGAnimatedLength height;
 100.170 +
 100.171 +    /**
 100.172 +     * Corresponds to attribute <a>'result'</a> on the given element.
 100.173 +     */
 100.174 +    readonly attribute SVGAnimatedString result;
 100.175 +  };
 100.176 +
 100.177 +  /**
 100.178 +   * The <a>SVGFEBlendElement</a> interface corresponds to the <a>'feBlend'</a>
 100.179 +   * element.
 100.180 +   */
 100.181 +  interface SVGFEBlendElement : 
 100.182 +                SVGElement,
 100.183 +                SVGFilterPrimitiveStandardAttributes { 
 100.184 +
 100.185 +    /**
 100.186 +     * The type is not one of predefined types. It is invalid to attempt to
 100.187 +     * define a new value of this type or to attempt to switch an existing
 100.188 +     * value to this type.
 100.189 +     *
 100.190 +     * @defgroup Blend Mode Types
 100.191 +     */
 100.192 +    const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0;
 100.193 +
 100.194 +    /**
 100.195 +     * Corresponds to value <span class="attr-value">'normal'</span>.
 100.196 +     *
 100.197 +     * @defgroup Blend Mode Types
 100.198 +     */
 100.199 +    const unsigned short SVG_FEBLEND_MODE_NORMAL = 1;
 100.200 +
 100.201 +    /**
 100.202 +     * Corresponds to value <span class="attr-value">'multiply'</span>.
 100.203 +     *
 100.204 +     * @defgroup Blend Mode Types
 100.205 +     */
 100.206 +    const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;
 100.207 +
 100.208 +    /**
 100.209 +     * Corresponds to value <span class="attr-value">'screen'</span>.
 100.210 +     *
 100.211 +     * @defgroup Blend Mode Types
 100.212 +     */
 100.213 +    const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
 100.214 +
 100.215 +    /**
 100.216 +     * Corresponds to value <span class="attr-value">'darken'</span>.
 100.217 +     *
 100.218 +     * @defgroup Blend Mode Types
 100.219 +     */
 100.220 +    const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
 100.221 +
 100.222 +    /**
 100.223 +     * Corresponds to value <span class="attr-value">'lighten'</span>.
 100.224 +     *
 100.225 +     * @defgroup Blend Mode Types
 100.226 +     */
 100.227 +    const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
 100.228 +
 100.229 +    /**
 100.230 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feBlend'</a>
 100.231 +     * element.
 100.232 +     */
 100.233 +    readonly attribute SVGAnimatedString in1;
 100.234 +
 100.235 +    /**
 100.236 +     * Corresponds to attribute <a>'in2'</a> on the given <a>'feBlend'</a>
 100.237 +     * element.
 100.238 +     */
 100.239 +    readonly attribute SVGAnimatedString in2;
 100.240 +
 100.241 +    /**
 100.242 +     * Corresponds to attribute <a>'mode'</a> on the given <a>'feBlend'</a>
 100.243 +     * element.  Takes one of the SVG_FEBLEND_MODE_* constants defined on
 100.244 +     * this interface.
 100.245 +     */
 100.246 +    readonly attribute SVGAnimatedEnumeration mode;
 100.247 +  };
 100.248 +
 100.249 +  /**
 100.250 +   * The <a>SVGFEColorMatrixElement</a> interface corresponds to the
 100.251 +   * <a>'feColorMatrix'</a> element.
 100.252 +   */
 100.253 +  interface SVGFEColorMatrixElement : 
 100.254 +                SVGElement,
 100.255 +                SVGFilterPrimitiveStandardAttributes { 
 100.256 +
 100.257 +    /**
 100.258 +     * The type is not one of predefined types. It is invalid to attempt to
 100.259 +     * define a new value of this type or to attempt to switch an existing
 100.260 +     * value to this type.
 100.261 +     *
 100.262 +     * @defgroup Color Matrix Types
 100.263 +     */
 100.264 +    const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
 100.265 +
 100.266 +    /**
 100.267 +     * Corresponds to value <span class="attr-value">'matrix'</span>.
 100.268 +     *
 100.269 +     * @defgroup Color Matrix Types
 100.270 +     */
 100.271 +    const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
 100.272 +
 100.273 +    /**
 100.274 +     * Corresponds to value <span class="attr-value">'saturate'</span>.
 100.275 +     *
 100.276 +     * @defgroup Color Matrix Types
 100.277 +     */
 100.278 +    const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
 100.279 +
 100.280 +    /**
 100.281 +     * Corresponds to value <span class="attr-value">'hueRotate'</span>.
 100.282 +     *
 100.283 +     * @defgroup Color Matrix Types
 100.284 +     */
 100.285 +    const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
 100.286 +
 100.287 +    /**
 100.288 +     * Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>.
 100.289 +     *
 100.290 +     * @defgroup Color Matrix Types
 100.291 +     */
 100.292 +    const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
 100.293 +
 100.294 +    /**
 100.295 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feColorMatrix'</a>
 100.296 +     * element.
 100.297 +     */
 100.298 +    readonly attribute SVGAnimatedString in1;
 100.299 +
 100.300 +    /**
 100.301 +     * Corresponds to attribute <a>'type'</a> on the given <a>'feColorMatrix'</a>
 100.302 +     * element.  Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined
 100.303 +     * on this interface.
 100.304 +     */
 100.305 +    readonly attribute SVGAnimatedEnumeration type;
 100.306 +
 100.307 +    /**
 100.308 +     * Corresponds to attribute <a>'values'</a> on the given <a>'feColorMatrix'</a>
 100.309 +     * element.
 100.310 +     */
 100.311 +    readonly attribute SVGAnimatedNumberList values;
 100.312 +  };
 100.313 +
 100.314 +  /**
 100.315 +   * The <a>SVGFEComponentTransferElement</a> interface corresponds to the
 100.316 +   * <a>'feComponentTransfer'</a> element.
 100.317 +   */
 100.318 +  interface SVGFEComponentTransferElement : 
 100.319 +                SVGElement,
 100.320 +                SVGFilterPrimitiveStandardAttributes { 
 100.321 +
 100.322 +    /**
 100.323 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feComponentTransfer'</a>
 100.324 +     * element.
 100.325 +     */
 100.326 +    readonly attribute SVGAnimatedString in1;
 100.327 +  };
 100.328 +
 100.329 +  /**
 100.330 +   * This interface defines a base interface used by the component transfer
 100.331 +   * function interfaces.
 100.332 +   */
 100.333 +  interface SVGComponentTransferFunctionElement : SVGElement { 
 100.334 +
 100.335 +    /**
 100.336 +     * The type is not one of predefined types. It is invalid to attempt to
 100.337 +     * define a new value of this type or to attempt to switch an existing
 100.338 +     * value to this type.
 100.339 +     *
 100.340 +     * @defgroup Component Transfer Types
 100.341 +     */
 100.342 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
 100.343 +
 100.344 +    /**
 100.345 +     * Corresponds to value <span class="attr-value">'identity'</span>.
 100.346 +     *
 100.347 +     * @defgroup Component Transfer Types
 100.348 +     */
 100.349 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
 100.350 +
 100.351 +    /**
 100.352 +     * Corresponds to value <span class="attr-value">'table'</span>.
 100.353 +     *
 100.354 +     * @defgroup Component Transfer Types
 100.355 +     */
 100.356 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
 100.357 +
 100.358 +    /**
 100.359 +     * Corresponds to value <span class="attr-value">'discrete'</span>.
 100.360 +     *
 100.361 +     * @defgroup Component Transfer Types
 100.362 +     */
 100.363 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
 100.364 +
 100.365 +    /**
 100.366 +     * Corresponds to value <span class="attr-value">'linear'</span>.
 100.367 +     *
 100.368 +     * @defgroup Component Transfer Types
 100.369 +     */
 100.370 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
 100.371 +
 100.372 +    /**
 100.373 +     * Corresponds to value <span class="attr-value">'gamma'</span>.
 100.374 +     *
 100.375 +     * @defgroup Component Transfer Types
 100.376 +     */
 100.377 +    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
 100.378 +
 100.379 +    /**
 100.380 +     * Corresponds to attribute <a>'type'</a> on the given
 100.381 +     * element.  Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined
 100.382 +     * on this interface.
 100.383 +     */
 100.384 +    readonly attribute SVGAnimatedEnumeration type;
 100.385 +
 100.386 +    /**
 100.387 +     * Corresponds to attribute <a>'tableValues'</a> on the given element.
 100.388 +     */
 100.389 +    readonly attribute SVGAnimatedNumberList  tableValues;
 100.390 +
 100.391 +    /**
 100.392 +     * Corresponds to attribute <a>'slope'</a> on the given element.
 100.393 +     */
 100.394 +    readonly attribute SVGAnimatedNumber slope;
 100.395 +
 100.396 +    /**
 100.397 +     * Corresponds to attribute <a>'intercept'</a> on the given element.
 100.398 +     */
 100.399 +    readonly attribute SVGAnimatedNumber intercept;
 100.400 +
 100.401 +    /**
 100.402 +     * Corresponds to attribute <a>'amplitude'</a> on the given element.
 100.403 +     */
 100.404 +    readonly attribute SVGAnimatedNumber amplitude;
 100.405 +
 100.406 +    /**
 100.407 +     * Corresponds to attribute <a>'exponent'</a> on the given element.
 100.408 +     */
 100.409 +    readonly attribute SVGAnimatedNumber exponent;
 100.410 +
 100.411 +    /**
 100.412 +     * Corresponds to attribute <a>'offset'</a> on the given element.
 100.413 +     */
 100.414 +    readonly attribute SVGAnimatedNumber offset;
 100.415 +  };
 100.416 +
 100.417 +  /**
 100.418 +   * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncR'</a>
 100.419 +   * element.
 100.420 +   */
 100.421 +  interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};
 100.422 +
 100.423 +  /**
 100.424 +   * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncG'</a>
 100.425 +   * element.
 100.426 +   */
 100.427 +  interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};
 100.428 +
 100.429 +  /**
 100.430 +   * The <a>SVGFEFuncBElement</a> interface corresponds to the <a>'feFuncB'</a>
 100.431 +   * element.
 100.432 +   */
 100.433 +  interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};
 100.434 +
 100.435 +  /**
 100.436 +   * The <a>SVGFEFuncAElement</a> interface corresponds to the <a>'feFuncA'</a>
 100.437 +   * element.
 100.438 +   */
 100.439 +  interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};
 100.440 +
 100.441 +  /**
 100.442 +   * The <a>SVGFECompositeElement</a> interface corresponds to the
 100.443 +   * <a>'feComposite'</a> element.
 100.444 +   */
 100.445 +  interface SVGFECompositeElement : 
 100.446 +                SVGElement,
 100.447 +                SVGFilterPrimitiveStandardAttributes { 
 100.448 +
 100.449 +    /**
 100.450 +     * The type is not one of predefined types. It is invalid to attempt to
 100.451 +     * define a new value of this type or to attempt to switch an existing
 100.452 +     * value to this type.
 100.453 +     *
 100.454 +     * @defgroup Composite Operators
 100.455 +     */
 100.456 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
 100.457 +
 100.458 +    /**
 100.459 +     * Corresponds to value <span class="attr-value">'over'</span>.
 100.460 +     *
 100.461 +     * @defgroup Composite Operators
 100.462 +     */
 100.463 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1;
 100.464 +
 100.465 +    /**
 100.466 +     * Corresponds to value <span class="attr-value">'in'</span>.
 100.467 +     *
 100.468 +     * @defgroup Composite Operators
 100.469 +     */
 100.470 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2;
 100.471 +
 100.472 +    /**
 100.473 +     * Corresponds to value <span class="attr-value">'out'</span>.
 100.474 +     *
 100.475 +     * @defgroup Composite Operators
 100.476 +     */
 100.477 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3;
 100.478 +
 100.479 +    /**
 100.480 +     * Corresponds to value <span class="attr-value">'atop'</span>.
 100.481 +     *
 100.482 +     * @defgroup Composite Operators
 100.483 +     */
 100.484 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
 100.485 +
 100.486 +    /**
 100.487 +     * Corresponds to value <span class="attr-value">'xor'</span>.
 100.488 +     *
 100.489 +     * @defgroup Composite Operators
 100.490 +     */
 100.491 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5;
 100.492 +
 100.493 +    /**
 100.494 +     * Corresponds to value <span class="attr-value">'arithmetic'</span>.
 100.495 +     *
 100.496 +     * @defgroup Composite Operators
 100.497 +     */
 100.498 +    const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
 100.499 +
 100.500 +    /**
 100.501 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feComposite'</a>
 100.502 +     * element.
 100.503 +     */
 100.504 +    readonly attribute SVGAnimatedString in1;
 100.505 +
 100.506 +    /**
 100.507 +     * Corresponds to attribute <a>'in2'</a> on the given <a>'feComposite'</a>
 100.508 +     * element.
 100.509 +     */
 100.510 +    readonly attribute SVGAnimatedString in2;
 100.511 +
 100.512 +    /**
 100.513 +     * Corresponds to attribute <a>'operator'</a> on the given <a>'feComposite'</a>
 100.514 +     * element.  Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined
 100.515 +     * on this interface.
 100.516 +     */
 100.517 +    readonly attribute SVGAnimatedEnumeration operator;
 100.518 +
 100.519 +    /**
 100.520 +     * Corresponds to attribute <a>'k1'</a> on the given <a>'feComposite'</a>
 100.521 +     * element.
 100.522 +     */
 100.523 +    readonly attribute SVGAnimatedNumber k1;
 100.524 +
 100.525 +    /**
 100.526 +     * Corresponds to attribute <a>'k2'</a> on the given <a>'feComposite'</a>
 100.527 +     * element.
 100.528 +     */
 100.529 +    readonly attribute SVGAnimatedNumber k2;
 100.530 +
 100.531 +    /**
 100.532 +     * Corresponds to attribute <a>'k3'</a> on the given <a>'feComposite'</a>
 100.533 +     * element.
 100.534 +     */
 100.535 +    readonly attribute SVGAnimatedNumber k3;
 100.536 +
 100.537 +    /**
 100.538 +     * Corresponds to attribute <a>'k4'</a> on the given <a>'feComposite'</a>
 100.539 +     * element.
 100.540 +     */
 100.541 +    readonly attribute SVGAnimatedNumber k4;
 100.542 +  };
 100.543 +
 100.544 +  /**
 100.545 +   * The <a>SVGFEConvolveMatrixElement</a> interface corresponds to the
 100.546 +   * <a>'feConvolveMatrix'</a> element.
 100.547 +   */
 100.548 +  interface SVGFEConvolveMatrixElement : 
 100.549 +                SVGElement,
 100.550 +                SVGFilterPrimitiveStandardAttributes { 
 100.551 +
 100.552 +    /**
 100.553 +     * The type is not one of predefined types. It is invalid to attempt to
 100.554 +     * define a new value of this type or to attempt to switch an existing
 100.555 +     * value to this type.
 100.556 +     *
 100.557 +     * @defgroup Edge Mode Values
 100.558 +     */
 100.559 +    const unsigned short SVG_EDGEMODE_UNKNOWN = 0;
 100.560 +
 100.561 +    /**
 100.562 +     * Corresponds to value <span class="attr-value">'duplicate'</span>.
 100.563 +     *
 100.564 +     * @defgroup Edge Mode Values
 100.565 +     */
 100.566 +    const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
 100.567 +
 100.568 +    /**
 100.569 +     * Corresponds to value <span class="attr-value">'wrap'</span>.
 100.570 +     *
 100.571 +     * @defgroup Edge Mode Values
 100.572 +     */
 100.573 +    const unsigned short SVG_EDGEMODE_WRAP = 2;
 100.574 +
 100.575 +    /**
 100.576 +     * Corresponds to value <span class="attr-value">'none'</span>.
 100.577 +     *
 100.578 +     * @defgroup Edge Mode Values
 100.579 +     */
 100.580 +    const unsigned short SVG_EDGEMODE_NONE = 3;
 100.581 +
 100.582 +    /**
 100.583 +     * Corresponds to attribute <a>'in'</a> on the given
 100.584 +     * <a>'feConvolveMatrix'</a> element.
 100.585 +     */
 100.586 +    readonly attribute SVGAnimatedString in1;
 100.587 +
 100.588 +    /**
 100.589 +     * Corresponds to attribute <a>'order'</a> on the given
 100.590 +     * <a>'feConvolveMatrix'</a> element.
 100.591 +     */
 100.592 +    readonly attribute SVGAnimatedInteger orderX;
 100.593 +
 100.594 +    /**
 100.595 +     * Corresponds to attribute <a>'order'</a> on the given
 100.596 +     * <a>'feConvolveMatrix'</a> element.
 100.597 +     */
 100.598 +    readonly attribute SVGAnimatedInteger orderY;
 100.599 +
 100.600 +    /**
 100.601 +     * Corresponds to attribute <a>'kernelMatrix'</a> on the given
 100.602 +     * <a>'feConvolveMatrix'</a> element.
 100.603 +     */
 100.604 +    readonly attribute SVGAnimatedNumberList kernelMatrix;
 100.605 +
 100.606 +    /**
 100.607 +     * Corresponds to attribute <a>'divisor'</a> on the given
 100.608 +     * <a>'feConvolveMatrix'</a> element.
 100.609 +     */
 100.610 +    readonly attribute SVGAnimatedNumber divisor;
 100.611 +
 100.612 +    /**
 100.613 +     * Corresponds to attribute <a>'bias'</a> on the given
 100.614 +     * <a>'feConvolveMatrix'</a> element.
 100.615 +     */
 100.616 +    readonly attribute SVGAnimatedNumber bias;
 100.617 +
 100.618 +    /**
 100.619 +     * Corresponds to attribute <a>'targetX'</a> on the given
 100.620 +     * <a>'feConvolveMatrix'</a> element.
 100.621 +     */
 100.622 +    readonly attribute SVGAnimatedInteger targetX;
 100.623 +
 100.624 +    /**
 100.625 +     * Corresponds to attribute <a>'targetY'</a> on the given
 100.626 +     * <a>'feConvolveMatrix'</a> element.
 100.627 +     */
 100.628 +    readonly attribute SVGAnimatedInteger targetY;
 100.629 +
 100.630 +    /**
 100.631 +     * Corresponds to attribute <a>'edgeMode'</a> on the given
 100.632 +     * <a>'feConvolveMatrix'</a> element.  Takes one of the SVG_EDGEMODE_*
 100.633 +     * constants defined on this interface.
 100.634 +     */
 100.635 +    readonly attribute SVGAnimatedEnumeration edgeMode;
 100.636 +
 100.637 +    /**
 100.638 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 100.639 +     * <a>'feConvolveMatrix'</a> element.
 100.640 +     */
 100.641 +    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
 100.642 +
 100.643 +    /**
 100.644 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 100.645 +     * <a>'feConvolveMatrix'</a> element.
 100.646 +     */
 100.647 +    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
 100.648 +
 100.649 +    /**
 100.650 +     * Corresponds to attribute <a>'preserveAlpha'</a> on the given
 100.651 +     * <a>'feConvolveMatrix'</a> element.
 100.652 +     */
 100.653 +    readonly attribute SVGAnimatedBoolean preserveAlpha;
 100.654 +  };
 100.655 +
 100.656 +  /**
 100.657 +   * The <a>SVGFEDiffuseLightingElement</a> interface corresponds to the
 100.658 +   * <a>'feDiffuseLighting'</a> element.
 100.659 +   */
 100.660 +  interface SVGFEDiffuseLightingElement : 
 100.661 +                SVGElement,
 100.662 +                SVGFilterPrimitiveStandardAttributes { 
 100.663 +
 100.664 +    /**
 100.665 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feDiffuseLighting'</a>
 100.666 +     * element.
 100.667 +     */
 100.668 +    readonly attribute SVGAnimatedString in1;
 100.669 +
 100.670 +    /**
 100.671 +     * Corresponds to attribute <a>'surfaceScale'</a> on the given
 100.672 +     * <a>'feDiffuseLighting'</a> element.
 100.673 +     */
 100.674 +    readonly attribute SVGAnimatedNumber surfaceScale;
 100.675 +
 100.676 +    /**
 100.677 +     * Corresponds to attribute <a>'diffuseConstant'</a> on the given
 100.678 +     * <a>'feDiffuseLighting'</a> element.
 100.679 +     */
 100.680 +    readonly attribute SVGAnimatedNumber diffuseConstant;
 100.681 +
 100.682 +    /**
 100.683 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 100.684 +     * <a>'feDiffuseLighting'</a> element.
 100.685 +     */
 100.686 +    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
 100.687 +
 100.688 +    /**
 100.689 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 100.690 +     * <a>'feDiffuseLighting'</a> element.
 100.691 +     */
 100.692 +    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
 100.693 +  };
 100.694 +
 100.695 +  /**
 100.696 +   * The <a>SVGFEDistantLightElement</a> interface corresponds to the
 100.697 +   * <a>'feDistantLight'</a> element.
 100.698 +   */
 100.699 +  interface SVGFEDistantLightElement : SVGElement { 
 100.700 +
 100.701 +    /**
 100.702 +     * Corresponds to attribute <a>'azimuth'</a> on the given
 100.703 +     * <a>'feDistantLight'</a> element.
 100.704 +     */
 100.705 +    readonly attribute SVGAnimatedNumber azimuth;
 100.706 +
 100.707 +    /**
 100.708 +     * Corresponds to attribute <a>'elevation'</a> on the given
 100.709 +     * <a>'feDistantLight'</a> element.
 100.710 +     */
 100.711 +    readonly attribute SVGAnimatedNumber elevation;
 100.712 +  };
 100.713 +
 100.714 +  /**
 100.715 +   * The <a>SVGFEPointLightElement</a> interface corresponds to the
 100.716 +   * <a>'fePointLight'</a> element.
 100.717 +   */
 100.718 +  interface SVGFEPointLightElement : SVGElement { 
 100.719 +
 100.720 +    /**
 100.721 +     * Corresponds to attribute <a>'x'</a> on the given
 100.722 +     * <a>'fePointLight'</a> element.
 100.723 +     */
 100.724 +    readonly attribute SVGAnimatedNumber x;
 100.725 +
 100.726 +    /**
 100.727 +     * Corresponds to attribute <a>'y'</a> on the given
 100.728 +     * <a>'fePointLight'</a> element.
 100.729 +     */
 100.730 +    readonly attribute SVGAnimatedNumber y;
 100.731 +
 100.732 +    /**
 100.733 +     * Corresponds to attribute <a>'z'</a> on the given
 100.734 +     * <a>'fePointLight'</a> element.
 100.735 +     */
 100.736 +    readonly attribute SVGAnimatedNumber z;
 100.737 +  };
 100.738 +
 100.739 +  /**
 100.740 +   * The <a>SVGFESpotLightElement</a> interface corresponds to the
 100.741 +   * <a>'feSpotLight'</a> element.
 100.742 +   */
 100.743 +  interface SVGFESpotLightElement : SVGElement { 
 100.744 +
 100.745 +    /**
 100.746 +     * Corresponds to attribute <a>'x'</a> on the given
 100.747 +     * <a>'feSpotLight'</a> element.
 100.748 +     */
 100.749 +    readonly attribute SVGAnimatedNumber x;
 100.750 +
 100.751 +    /**
 100.752 +     * Corresponds to attribute <a>'y'</a> on the given
 100.753 +     * <a>'feSpotLight'</a> element.
 100.754 +     */
 100.755 +    readonly attribute SVGAnimatedNumber y;
 100.756 +
 100.757 +    /**
 100.758 +     * Corresponds to attribute <a>'z'</a> on the given
 100.759 +     * <a>'feSpotLight'</a> element.
 100.760 +     */
 100.761 +    readonly attribute SVGAnimatedNumber z;
 100.762 +
 100.763 +    /**
 100.764 +     * Corresponds to attribute <a>'pointsAtX'</a> on the given
 100.765 +     * <a>'feSpotLight'</a> element.
 100.766 +     */
 100.767 +    readonly attribute SVGAnimatedNumber pointsAtX;
 100.768 +
 100.769 +    /**
 100.770 +     * Corresponds to attribute <a>'pointsAtY'</a> on the given
 100.771 +     * <a>'feSpotLight'</a> element.
 100.772 +     */
 100.773 +    readonly attribute SVGAnimatedNumber pointsAtY;
 100.774 +
 100.775 +    /**
 100.776 +     * Corresponds to attribute <a>'pointsAtZ'</a> on the given
 100.777 +     * <a>'feSpotLight'</a> element.
 100.778 +     */
 100.779 +    readonly attribute SVGAnimatedNumber pointsAtZ;
 100.780 +
 100.781 +    /**
 100.782 +     * Corresponds to attribute <a>'specularExponent'</a> on the given
 100.783 +     * <a>'feSpotLight'</a> element.
 100.784 +     */
 100.785 +    readonly attribute SVGAnimatedNumber specularExponent;
 100.786 +
 100.787 +    /**
 100.788 +     * Corresponds to attribute <a>'limitingConeAngle'</a> on the given
 100.789 +     * <a>'feSpotLight'</a> element.
 100.790 +     */
 100.791 +    readonly attribute SVGAnimatedNumber limitingConeAngle;
 100.792 +  };
 100.793 +
 100.794 +  /**
 100.795 +   * The <a>SVGFEDisplacementMapElement</a> interface corresponds to the
 100.796 +   * <a>'feDisplacementMap'</a> element.
 100.797 +   */
 100.798 +  interface SVGFEDisplacementMapElement : 
 100.799 +                SVGElement,
 100.800 +                SVGFilterPrimitiveStandardAttributes { 
 100.801 +
 100.802 +    /**
 100.803 +     * The type is not one of predefined types. It is invalid to attempt to
 100.804 +     * define a new value of this type or to attempt to switch an existing
 100.805 +     * value to this type.
 100.806 +     *
 100.807 +     * @defgroup Channel Selectors
 100.808 +     */
 100.809 +    const unsigned short SVG_CHANNEL_UNKNOWN = 0;
 100.810 +
 100.811 +    /**
 100.812 +     * Corresponds to value <span class="attr-value">'R'</span>.
 100.813 +     *
 100.814 +     * @defgroup Channel Selectors
 100.815 +     */
 100.816 +    const unsigned short SVG_CHANNEL_R = 1;
 100.817 +
 100.818 +    /**
 100.819 +     * Corresponds to value <span class="attr-value">'G'</span>.
 100.820 +     *
 100.821 +     * @defgroup Channel Selectors
 100.822 +     */
 100.823 +    const unsigned short SVG_CHANNEL_G = 2;
 100.824 +
 100.825 +    /**
 100.826 +     * Corresponds to value <span class="attr-value">'B'</span>.
 100.827 +     *
 100.828 +     * @defgroup Channel Selectors
 100.829 +     */
 100.830 +    const unsigned short SVG_CHANNEL_B = 3;
 100.831 +
 100.832 +    /**
 100.833 +     * Corresponds to value <span class="attr-value">'A'</span>.
 100.834 +     *
 100.835 +     * @defgroup Channel Selectors
 100.836 +     */
 100.837 +    const unsigned short SVG_CHANNEL_A = 4;
 100.838 +
 100.839 +    /**
 100.840 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feDisplacementMap'</a>
 100.841 +     * element.
 100.842 +     */
 100.843 +    readonly attribute SVGAnimatedString in1;
 100.844 +
 100.845 +    /**
 100.846 +     * Corresponds to attribute <a>'in2'</a> on the given <a>'feDisplacementMap'</a>
 100.847 +     * element.
 100.848 +     */
 100.849 +    readonly attribute SVGAnimatedString in2;
 100.850 +
 100.851 +    /**
 100.852 +     * Corresponds to attribute <a>'scale'</a> on the given <a>'feDisplacementMap'</a>
 100.853 +     * element.
 100.854 +     */
 100.855 +    readonly attribute SVGAnimatedNumber scale;
 100.856 +
 100.857 +    /**
 100.858 +     * Corresponds to attribute <a>'xChannelSelector'</a> on the given
 100.859 +     * <a>'feDisplacementMap'</a> element.  Takes one of the SVG_CHANNEL_*
 100.860 +     * constants defined on this interface.
 100.861 +     */
 100.862 +    readonly attribute SVGAnimatedEnumeration xChannelSelector;
 100.863 +
 100.864 +    /**
 100.865 +     * Corresponds to attribute <a>'yChannelSelector'</a> on the given
 100.866 +     * <a>'feDisplacementMap'</a> element.  Takes one of the SVG_CHANNEL_*
 100.867 +     * constants defined on this interface.
 100.868 +     */
 100.869 +    readonly attribute SVGAnimatedEnumeration yChannelSelector;
 100.870 +  };
 100.871 +
 100.872 +  /**
 100.873 +   * The <a>SVGFEFloodElement</a> interface corresponds to the
 100.874 +   * <a>'feFlood'</a> element.
 100.875 +   */
 100.876 +  interface SVGFEFloodElement : 
 100.877 +                SVGElement,
 100.878 +                SVGFilterPrimitiveStandardAttributes { 
 100.879 +  };
 100.880 +
 100.881 +  /**
 100.882 +   * The <a>SVGFEGaussianBlurElement</a> interface corresponds to the
 100.883 +   * <a>'feGaussianBlur'</a> element.
 100.884 +   */
 100.885 +  interface SVGFEGaussianBlurElement : 
 100.886 +                SVGElement,
 100.887 +                SVGFilterPrimitiveStandardAttributes { 
 100.888 +
 100.889 +    /**
 100.890 +     * Corresponds to attribute <a>'in'</a> on the given
 100.891 +     * <a>'feGaussianBlur'</a> element.
 100.892 +     */
 100.893 +    readonly attribute SVGAnimatedString in1;
 100.894 +
 100.895 +    /**
 100.896 +     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 100.897 +     * <a>'feGaussianBlur'</a> element.  Contains the X component
 100.898 +     * of attribute <a>'stdDeviation'</a>.
 100.899 +     */
 100.900 +    readonly attribute SVGAnimatedNumber stdDeviationX;
 100.901 +
 100.902 +    /**
 100.903 +     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 100.904 +     * <a>'feGaussianBlur'</a> element.  Contains the Y component
 100.905 +     * (possibly computed automatically) of attribute <a>'stdDeviation'</a>.
 100.906 +     */
 100.907 +    readonly attribute SVGAnimatedNumber stdDeviationY;
 100.908 +
 100.909 +    /**
 100.910 +     * Sets the values for attribute <a>'stdDeviation'</a>.
 100.911 +     *
 100.912 +     * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>.
 100.913 +     * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>.
 100.914 +     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 100.915 +     *   to change the value of a readonly attribute.
 100.916 +     */
 100.917 +    void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException);
 100.918 +  };
 100.919 +
 100.920 +  /**
 100.921 +   * The <a>SVGFEUnsharpMaskElement</a> interface corresponds to the
 100.922 +   * <a>'feUnsharpMask'</a> element.
 100.923 +   */
 100.924 +  interface SVGFEUnsharpMaskElement : 
 100.925 +                SVGElement,
 100.926 +                SVGFilterPrimitiveStandardAttributes { 
 100.927 +
 100.928 +    /**
 100.929 +     * Corresponds to attribute <a>'in'</a> on the given
 100.930 +     * <a>'feUnsharpMask'</a> element.
 100.931 +     */
 100.932 +    readonly attribute SVGAnimatedString in1;
 100.933 +
 100.934 +    /**
 100.935 +     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 100.936 +     * <a>'feUnsharpMask'</a> element.  Contains the X component
 100.937 +     * of attribute <a>'feUnsharpMask'</a>.
 100.938 +     */
 100.939 +    readonly attribute SVGAnimatedNumber stdDeviationX;
 100.940 +
 100.941 +    /**
 100.942 +     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 100.943 +     * <a>'feUnsharpMask'</a> element.  Contains the Y component
 100.944 +     * (possibly computed automatically) of attribute <a>'stdDeviation'</a>.
 100.945 +     */
 100.946 +    readonly attribute SVGAnimatedNumber stdDeviationY;
 100.947 +
 100.948 +    /**
 100.949 +     * Corresponds to attribute <a>'amount'</a> on the given
 100.950 +     * <a>'feUnsharpMask'</a> element.
 100.951 +     */
 100.952 +    readonly attribute SVGAnimatedNumber amount;
 100.953 +
 100.954 +    /**
 100.955 +     * Corresponds to attribute <a>'threshold'</a> on the given
 100.956 +     * <a>'feUnsharpMask'</a> element.
 100.957 +     */
 100.958 +    readonly attribute SVGAnimatedNumber threshold;
 100.959 +
 100.960 +    /**
 100.961 +     * Sets the values for attribute <a>'stdDeviation'</a>.
 100.962 +     *
 100.963 +     * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>.
 100.964 +     * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>.
 100.965 +     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 100.966 +     *   to change the value of a readonly attribute.
 100.967 +     */
 100.968 +    void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException);
 100.969 +  };
 100.970 +
 100.971 +  /**
 100.972 +   * The <a>SVGFEImageElement</a> interface corresponds to the
 100.973 +   * <a>'feImage'</a> element.
 100.974 +   */
 100.975 +  interface SVGFEImageElement : 
 100.976 +                SVGElement,
 100.977 +                SVGURIReference,
 100.978 +                SVGLangSpace,
 100.979 +                SVGExternalResourcesRequired,
 100.980 +                SVGFilterPrimitiveStandardAttributes {
 100.981 +
 100.982 +    /**
 100.983 +     * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given
 100.984 +     * <a>'feImage'</a> element.
 100.985 +     */
 100.986 +    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 100.987 +  };
 100.988 +
 100.989 +  /**
 100.990 +   * The <a>SVGFEMergeElement</a> interface corresponds to the
 100.991 +   * <a>'feMerge'</a> element.
 100.992 +   */
 100.993 +  interface SVGFEMergeElement : 
 100.994 +                SVGElement,
 100.995 +                SVGFilterPrimitiveStandardAttributes {};
 100.996 +
 100.997 +  /**
 100.998 +   * The <a>SVGFEMergeNodeElement</a> interface corresponds to the
 100.999 +   * <a>'feMergeNode'</a> element.
100.1000 +   */
100.1001 +  interface SVGFEMergeNodeElement : SVGElement { 
100.1002 +
100.1003 +    /**
100.1004 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feMergeNode'</a>
100.1005 +     * element.
100.1006 +     */
100.1007 +    readonly attribute SVGAnimatedString in1;
100.1008 +  };
100.1009 +
100.1010 +  /**
100.1011 +   * The <a>SVGFEMorphologyElement</a> interface corresponds to the
100.1012 +   * <a>'feMorphology'</a> element.
100.1013 +   */
100.1014 +  interface SVGFEMorphologyElement : 
100.1015 +                SVGElement,
100.1016 +                SVGFilterPrimitiveStandardAttributes { 
100.1017 +
100.1018 +    /**
100.1019 +     * The type is not one of predefined types. It is invalid to attempt to
100.1020 +     * define a new value of this type or to attempt to switch an existing
100.1021 +     * value to this type.
100.1022 +     *
100.1023 +     * @defgroup Morphology Operators
100.1024 +     */
100.1025 +    const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
100.1026 +
100.1027 +    /**
100.1028 +     * Corresponds to value <span class="attr-value">'erode'</span>.
100.1029 +     *
100.1030 +     * @defgroup Morphology Operators
100.1031 +     */
100.1032 +    const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
100.1033 +
100.1034 +    /**
100.1035 +     * Corresponds to value <span class="attr-value">'dilate'</span>.
100.1036 +     *
100.1037 +     * @defgroup Morphology Operators
100.1038 +     */
100.1039 +    const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
100.1040 +
100.1041 +    /**
100.1042 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feMorphology'</a>
100.1043 +     * element.
100.1044 +     */
100.1045 +    readonly attribute SVGAnimatedString in1;
100.1046 +
100.1047 +    /**
100.1048 +     * Corresponds to attribute <a>'operator'</a> on the given <a>'feMorphology'</a>
100.1049 +     * element.  Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants
100.1050 +     * defined on this interface.
100.1051 +     */
100.1052 +    readonly attribute SVGAnimatedEnumeration operator;
100.1053 +
100.1054 +    /**
100.1055 +     * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
100.1056 +     * element.
100.1057 +     */
100.1058 +    readonly attribute SVGAnimatedNumber radiusX;
100.1059 +
100.1060 +    /**
100.1061 +     * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
100.1062 +     * element.
100.1063 +     */
100.1064 +    readonly attribute SVGAnimatedNumber radiusY;
100.1065 +  };
100.1066 +
100.1067 +  /**
100.1068 +   * The <a>SVGFEOffsetElement</a> interface corresponds to the
100.1069 +   * <a>'feOffset'</a> element.
100.1070 +   */
100.1071 +  interface SVGFEOffsetElement : 
100.1072 +                SVGElement,
100.1073 +                SVGFilterPrimitiveStandardAttributes { 
100.1074 +
100.1075 +    /**
100.1076 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feOffset'</a>
100.1077 +     * element.
100.1078 +     */
100.1079 +    readonly attribute SVGAnimatedString in1;
100.1080 +
100.1081 +    /**
100.1082 +     * Corresponds to attribute <a>'dx'</a> on the given <a>'feOffset'</a>
100.1083 +     * element.
100.1084 +     */
100.1085 +    readonly attribute SVGAnimatedNumber dx;
100.1086 +
100.1087 +    /**
100.1088 +     * Corresponds to attribute <a>'dy'</a> on the given <a>'feOffset'</a>
100.1089 +     * element.
100.1090 +     */
100.1091 +    readonly attribute SVGAnimatedNumber dy;
100.1092 +  };
100.1093 +
100.1094 +  /**
100.1095 +   * The <a>SVGFESpecularLightingElement</a> interface corresponds to the
100.1096 +   * <a>'feSpecularLighting'</a> element.
100.1097 +   */
100.1098 +  interface SVGFESpecularLightingElement : 
100.1099 +                SVGElement,
100.1100 +                SVGFilterPrimitiveStandardAttributes { 
100.1101 +
100.1102 +    /**
100.1103 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feSpecularLighting'</a>
100.1104 +     * element.
100.1105 +     */
100.1106 +    readonly attribute SVGAnimatedString in1;
100.1107 +
100.1108 +    /**
100.1109 +     * Corresponds to attribute <a>'surfaceScale'</a> on the given
100.1110 +     * <a>'feSpecularLighting'</a> element.
100.1111 +     */
100.1112 +    readonly attribute SVGAnimatedNumber surfaceScale;
100.1113 +
100.1114 +    /**
100.1115 +     * Corresponds to attribute <a>'specularConstant'</a> on the given
100.1116 +     * <a>'feSpecularLighting'</a> element.
100.1117 +     */
100.1118 +    readonly attribute SVGAnimatedNumber specularConstant;
100.1119 +
100.1120 +    /**
100.1121 +     * Corresponds to attribute <a>'specularExponent'</a> on the given
100.1122 +     * <a>'feSpecularLighting'</a> element.
100.1123 +     */
100.1124 +    readonly attribute SVGAnimatedNumber specularExponent;
100.1125 +
100.1126 +    /**
100.1127 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
100.1128 +     * <a>'feSpecularLighting'</a> element.
100.1129 +     */
100.1130 +    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
100.1131 +
100.1132 +    /**
100.1133 +     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
100.1134 +     * <a>'feSpecularLighting'</a> element.
100.1135 +     */
100.1136 +    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
100.1137 +  };
100.1138 +
100.1139 +  /**
100.1140 +   * The <a>SVGFETileElement</a> interface corresponds to the
100.1141 +   * <a>'feTile'</a> element.
100.1142 +   */
100.1143 +  interface SVGFETileElement : 
100.1144 +                SVGElement,
100.1145 +                SVGFilterPrimitiveStandardAttributes { 
100.1146 +
100.1147 +    /**
100.1148 +     * Corresponds to attribute <a>'in'</a> on the given <a>'feTile'</a>
100.1149 +     * element.
100.1150 +     */
100.1151 +    readonly attribute SVGAnimatedString in1;
100.1152 +  };
100.1153 +
100.1154 +  /**
100.1155 +   * The <a>SVGFETurbulenceElement</a> interface corresponds to the
100.1156 +   * <a>'feTurbulence'</a> element.
100.1157 +   */
100.1158 +  interface SVGFETurbulenceElement : 
100.1159 +                SVGElement,
100.1160 +                SVGFilterPrimitiveStandardAttributes { 
100.1161 +
100.1162 +    /**
100.1163 +     * The type is not one of predefined types. It is invalid to attempt to
100.1164 +     * define a new value of this type or to attempt to switch an existing
100.1165 +     * value to this type.
100.1166 +     *
100.1167 +     * @defgroup Turbulence Types
100.1168 +     */
100.1169 +    const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0;
100.1170 +
100.1171 +    /**
100.1172 +     * Corresponds to value <span class="attr-value">'fractalNoise'</span>.
100.1173 +     *
100.1174 +     * @defgroup Turbulence Types
100.1175 +     */
100.1176 +    const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
100.1177 +
100.1178 +    /**
100.1179 +     * Corresponds to value <span class="attr-value">'turbulence'</span>.
100.1180 +     *
100.1181 +     * @defgroup Turbulence Types
100.1182 +     */
100.1183 +    const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2;
100.1184 +
100.1185 +    /**
100.1186 +     * The type is not one of predefined types. It is invalid to attempt to
100.1187 +     * define a new value of this type or to attempt to switch an existing
100.1188 +     * value to this type.
100.1189 +     *
100.1190 +     * @defgroup Stitch Options
100.1191 +     */
100.1192 +    const unsigned short SVG_STITCHTYPE_UNKNOWN = 0;
100.1193 +
100.1194 +    /**
100.1195 +     * Corresponds to value <span class="attr-value">'stitch'</span>.
100.1196 +     *
100.1197 +     * @defgroup Stitch Options
100.1198 +     */
100.1199 +    const unsigned short SVG_STITCHTYPE_STITCH = 1;
100.1200 +
100.1201 +    /**
100.1202 +     * Corresponds to value <span class="attr-value">'noStitch'</span>.
100.1203 +     *
100.1204 +     * @defgroup Stitch Options
100.1205 +     */
100.1206 +    const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
100.1207 +
100.1208 +    /**
100.1209 +     * Corresponds to attribute <a>'baseFrequency'</a> on the given
100.1210 +     * <a>'feTurbulence'</a> element.  Contains the X component of the
100.1211 +     * <a>'baseFrequency'</a> attribute.
100.1212 +     */
100.1213 +    readonly attribute SVGAnimatedNumber baseFrequencyX;
100.1214 +
100.1215 +    /**
100.1216 +     * Corresponds to attribute <a>'baseFrequency'</a> on the given
100.1217 +     * <a>'feTurbulence'</a> element.  Contains the Y component of the
100.1218 +     * (possibly computed automatically) <a>'baseFrequency'</a> attribute.
100.1219 +     */
100.1220 +    readonly attribute SVGAnimatedNumber baseFrequencyY;
100.1221 +
100.1222 +    /**
100.1223 +     * Corresponds to attribute <a>'numOctaves'</a> on the given
100.1224 +     * <a>'feTurbulence'</a> element.
100.1225 +     */
100.1226 +    readonly attribute SVGAnimatedInteger numOctaves;
100.1227 +
100.1228 +    /**
100.1229 +     * Corresponds to attribute <a>'seed'</a> on the given
100.1230 +     * <a>'feTurbulence'</a> element.
100.1231 +     */
100.1232 +    readonly attribute SVGAnimatedNumber seed;
100.1233 +
100.1234 +    /**
100.1235 +     * Corresponds to attribute <a>'stitchTiles'</a> on the given
100.1236 +     * <a>'feTurbulence'</a> element.  Takes one of the SVG_STITCHTYPE_*
100.1237 +     * constants defined on this interface.
100.1238 +     */
100.1239 +    readonly attribute SVGAnimatedEnumeration stitchTiles;
100.1240 +
100.1241 +    /**
100.1242 +     * Corresponds to attribute <a>'type'</a> on the given
100.1243 +     * <a>'feTurbulence'</a> element.  Takes one of the SVG_TURBULENCE_TYPE_*
100.1244 +     * constants defined on this interface.
100.1245 +     */
100.1246 +    readonly attribute SVGAnimatedEnumeration type;
100.1247 +  };
100.1248 +
100.1249 +  /**
100.1250 +   * The <a>SVGFEDropShadowElement</a> interface corresponds to the
100.1251 +   * <a>'feDropShadow'</a> element.
100.1252 +   */
100.1253 +  interface SVGFEDropShadowElement : 
100.1254 +                SVGElement,
100.1255 +                SVGFilterPrimitiveStandardAttributes { 
100.1256 +
100.1257 +    readonly attribute SVGAnimatedString in1;
100.1258 +    readonly attribute SVGAnimatedNumber dx;
100.1259 +    readonly attribute SVGAnimatedNumber dy;
100.1260 +    readonly attribute SVGAnimatedNumber stdDeviationX;
100.1261 +    readonly attribute SVGAnimatedNumber stdDeviationY;
100.1262 +  };
100.1263 +};
100.1264 +
100.1265 +// #endif // _SVG_FILTERS_IDL_
   101.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   101.2 +++ b/filters/master/xhtml1-transitional+edit.dtd	Mon Apr 11 10:08:48 2011 +1000
   101.3 @@ -0,0 +1,1400 @@
   101.4 +<!--
   101.5 +   Extensible HTML version 1.0 Transitional plus edit DTD
   101.6 +
   101.7 +   This is the same as HTML 4 Transitional except for
   101.8 +   changes due to the differences between XML and SGML.
   101.9 +   
  101.10 +   ** and except for adding funky xmlns:edit stuff **
  101.11 +   ** and the inclusion of the entities from xhtml-lat1.ent **
  101.12 +
  101.13 +   Namespace = http://www.w3.org/1999/xhtml
  101.14 +
  101.15 +   For further information, see: http://www.w3.org/TR/xhtml1
  101.16 +
  101.17 +   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
  101.18 +   All Rights Reserved. 
  101.19 +
  101.20 +   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
  101.21 +
  101.22 +   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN"
  101.23 +   SYSTEM "xhtml1-transitional+edit.dtd"
  101.24 +
  101.25 +   $Revision$
  101.26 +   $Date$
  101.27 +
  101.28 +-->
  101.29 +
  101.30 +<!--================ Character mnemonic entities =========================-->
  101.31 +
  101.32 +<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
  101.33 +                                  U+00A0 ISOnum -->
  101.34 +<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
  101.35 +<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
  101.36 +<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
  101.37 +<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
  101.38 +<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
  101.39 +<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
  101.40 +                                  U+00A6 ISOnum -->
  101.41 +<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
  101.42 +<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
  101.43 +                                  U+00A8 ISOdia -->
  101.44 +<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
  101.45 +<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
  101.46 +<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
  101.47 +                                  = left pointing guillemet, U+00AB ISOnum -->
  101.48 +<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
  101.49 +                                  U+00AC ISOnum -->
  101.50 +<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
  101.51 +                                  U+00AD ISOnum -->
  101.52 +<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
  101.53 +                                  U+00AE ISOnum -->
  101.54 +<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
  101.55 +                                  = APL overbar, U+00AF ISOdia -->
  101.56 +<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
  101.57 +<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
  101.58 +                                  U+00B1 ISOnum -->
  101.59 +<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
  101.60 +                                  = squared, U+00B2 ISOnum -->
  101.61 +<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
  101.62 +                                  = cubed, U+00B3 ISOnum -->
  101.63 +<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
  101.64 +                                  U+00B4 ISOdia -->
  101.65 +<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
  101.66 +<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
  101.67 +                                  U+00B6 ISOnum -->
  101.68 +<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
  101.69 +                                  = Greek middle dot, U+00B7 ISOnum -->
  101.70 +<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
  101.71 +<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
  101.72 +                                  U+00B9 ISOnum -->
  101.73 +<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
  101.74 +                                  U+00BA ISOnum -->
  101.75 +<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
  101.76 +                                  = right pointing guillemet, U+00BB ISOnum -->
  101.77 +<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
  101.78 +                                  = fraction one quarter, U+00BC ISOnum -->
  101.79 +<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
  101.80 +                                  = fraction one half, U+00BD ISOnum -->
  101.81 +<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
  101.82 +                                  = fraction three quarters, U+00BE ISOnum -->
  101.83 +<!ENTITY iquest "&#191;"> <!-- inverted question mark
  101.84 +                                  = turned question mark, U+00BF ISOnum -->
  101.85 +<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
  101.86 +                                  = latin capital letter A grave,
  101.87 +                                  U+00C0 ISOlat1 -->
  101.88 +<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
  101.89 +                                  U+00C1 ISOlat1 -->
  101.90 +<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
  101.91 +                                  U+00C2 ISOlat1 -->
  101.92 +<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
  101.93 +                                  U+00C3 ISOlat1 -->
  101.94 +<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
  101.95 +                                  U+00C4 ISOlat1 -->
  101.96 +<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
  101.97 +                                  = latin capital letter A ring,
  101.98 +                                  U+00C5 ISOlat1 -->
  101.99 +<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
 101.100 +                                  = latin capital ligature AE,
 101.101 +                                  U+00C6 ISOlat1 -->
 101.102 +<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
 101.103 +                                  U+00C7 ISOlat1 -->
 101.104 +<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
 101.105 +                                  U+00C8 ISOlat1 -->
 101.106 +<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
 101.107 +                                  U+00C9 ISOlat1 -->
 101.108 +<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
 101.109 +                                  U+00CA ISOlat1 -->
 101.110 +<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
 101.111 +                                  U+00CB ISOlat1 -->
 101.112 +<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
 101.113 +                                  U+00CC ISOlat1 -->
 101.114 +<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
 101.115 +                                  U+00CD ISOlat1 -->
 101.116 +<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
 101.117 +                                  U+00CE ISOlat1 -->
 101.118 +<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
 101.119 +                                  U+00CF ISOlat1 -->
 101.120 +<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
 101.121 +<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
 101.122 +                                  U+00D1 ISOlat1 -->
 101.123 +<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
 101.124 +                                  U+00D2 ISOlat1 -->
 101.125 +<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
 101.126 +                                  U+00D3 ISOlat1 -->
 101.127 +<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
 101.128 +                                  U+00D4 ISOlat1 -->
 101.129 +<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
 101.130 +                                  U+00D5 ISOlat1 -->
 101.131 +<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
 101.132 +                                  U+00D6 ISOlat1 -->
 101.133 +<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
 101.134 +<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
 101.135 +                                  = latin capital letter O slash,
 101.136 +                                  U+00D8 ISOlat1 -->
 101.137 +<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
 101.138 +                                  U+00D9 ISOlat1 -->
 101.139 +<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
 101.140 +                                  U+00DA ISOlat1 -->
 101.141 +<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
 101.142 +                                  U+00DB ISOlat1 -->
 101.143 +<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
 101.144 +                                  U+00DC ISOlat1 -->
 101.145 +<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
 101.146 +                                  U+00DD ISOlat1 -->
 101.147 +<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
 101.148 +                                  U+00DE ISOlat1 -->
 101.149 +<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
 101.150 +                                  U+00DF ISOlat1 -->
 101.151 +<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
 101.152 +                                  = latin small letter a grave,
 101.153 +                                  U+00E0 ISOlat1 -->
 101.154 +<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
 101.155 +                                  U+00E1 ISOlat1 -->
 101.156 +<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
 101.157 +                                  U+00E2 ISOlat1 -->
 101.158 +<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
 101.159 +                                  U+00E3 ISOlat1 -->
 101.160 +<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
 101.161 +                                  U+00E4 ISOlat1 -->
 101.162 +<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
 101.163 +                                  = latin small letter a ring,
 101.164 +                                  U+00E5 ISOlat1 -->
 101.165 +<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
 101.166 +                                  = latin small ligature ae, U+00E6 ISOlat1 -->
 101.167 +<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
 101.168 +                                  U+00E7 ISOlat1 -->
 101.169 +<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
 101.170 +                                  U+00E8 ISOlat1 -->
 101.171 +<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
 101.172 +                                  U+00E9 ISOlat1 -->
 101.173 +<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
 101.174 +                                  U+00EA ISOlat1 -->
 101.175 +<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
 101.176 +                                  U+00EB ISOlat1 -->
 101.177 +<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
 101.178 +                                  U+00EC ISOlat1 -->
 101.179 +<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
 101.180 +                                  U+00ED ISOlat1 -->
 101.181 +<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
 101.182 +                                  U+00EE ISOlat1 -->
 101.183 +<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
 101.184 +                                  U+00EF ISOlat1 -->
 101.185 +<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
 101.186 +<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
 101.187 +                                  U+00F1 ISOlat1 -->
 101.188 +<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
 101.189 +                                  U+00F2 ISOlat1 -->
 101.190 +<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
 101.191 +                                  U+00F3 ISOlat1 -->
 101.192 +<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
 101.193 +                                  U+00F4 ISOlat1 -->
 101.194 +<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
 101.195 +                                  U+00F5 ISOlat1 -->
 101.196 +<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
 101.197 +                                  U+00F6 ISOlat1 -->
 101.198 +<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
 101.199 +<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
 101.200 +                                  = latin small letter o slash,
 101.201 +                                  U+00F8 ISOlat1 -->
 101.202 +<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
 101.203 +                                  U+00F9 ISOlat1 -->
 101.204 +<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
 101.205 +                                  U+00FA ISOlat1 -->
 101.206 +<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
 101.207 +                                  U+00FB ISOlat1 -->
 101.208 +<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
 101.209 +                                  U+00FC ISOlat1 -->
 101.210 +<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
 101.211 +                                  U+00FD ISOlat1 -->
 101.212 +<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
 101.213 +                                  U+00FE ISOlat1 -->
 101.214 +<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
 101.215 +                                  U+00FF ISOlat1 -->
 101.216 +
 101.217 +<!--================== Imported Names ====================================-->
 101.218 +
 101.219 +<!ENTITY % ContentType "CDATA">
 101.220 +    <!-- media type, as per [RFC2045] -->
 101.221 +
 101.222 +<!ENTITY % ContentTypes "CDATA">
 101.223 +    <!-- comma-separated list of media types, as per [RFC2045] -->
 101.224 +
 101.225 +<!ENTITY % Charset "CDATA">
 101.226 +    <!-- a character encoding, as per [RFC2045] -->
 101.227 +
 101.228 +<!ENTITY % Charsets "CDATA">
 101.229 +    <!-- a space separated list of character encodings, as per [RFC2045] -->
 101.230 +
 101.231 +<!ENTITY % LanguageCode "NMTOKEN">
 101.232 +    <!-- a language code, as per [RFC3066] -->
 101.233 +
 101.234 +<!ENTITY % Character "CDATA">
 101.235 +    <!-- a single character, as per section 2.2 of [XML] -->
 101.236 +
 101.237 +<!ENTITY % Number "CDATA">
 101.238 +    <!-- one or more digits -->
 101.239 +
 101.240 +<!ENTITY % LinkTypes "CDATA">
 101.241 +    <!-- space-separated list of link types -->
 101.242 +
 101.243 +<!ENTITY % MediaDesc "CDATA">
 101.244 +    <!-- single or comma-separated list of media descriptors -->
 101.245 +
 101.246 +<!ENTITY % URI "CDATA">
 101.247 +    <!-- a Uniform Resource Identifier, see [RFC2396] -->
 101.248 +
 101.249 +<!ENTITY % UriList "CDATA">
 101.250 +    <!-- a space separated list of Uniform Resource Identifiers -->
 101.251 +
 101.252 +<!ENTITY % Datetime "CDATA">
 101.253 +    <!-- date and time information. ISO date format -->
 101.254 +
 101.255 +<!ENTITY % Script "CDATA">
 101.256 +    <!-- script expression -->
 101.257 +
 101.258 +<!ENTITY % StyleSheet "CDATA">
 101.259 +    <!-- style sheet data -->
 101.260 +
 101.261 +<!ENTITY % Text "CDATA">
 101.262 +    <!-- used for titles etc. -->
 101.263 +
 101.264 +<!ENTITY % FrameTarget "NMTOKEN">
 101.265 +    <!-- render in this frame -->
 101.266 +
 101.267 +<!ENTITY % Length "CDATA">
 101.268 +    <!-- nn for pixels or nn% for percentage length -->
 101.269 +
 101.270 +<!ENTITY % MultiLength "CDATA">
 101.271 +    <!-- pixel, percentage, or relative -->
 101.272 +
 101.273 +<!ENTITY % Pixels "CDATA">
 101.274 +    <!-- integer representing length in pixels -->
 101.275 +
 101.276 +<!-- these are used for image maps -->
 101.277 +
 101.278 +<!ENTITY % Shape "(rect|circle|poly|default)">
 101.279 +
 101.280 +<!ENTITY % Coords "CDATA">
 101.281 +    <!-- comma separated list of lengths -->
 101.282 +
 101.283 +<!-- used for object, applet, img, input and iframe -->
 101.284 +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
 101.285 +
 101.286 +<!-- a color using sRGB: #RRGGBB as Hex values -->
 101.287 +<!ENTITY % Color "CDATA">
 101.288 +
 101.289 +<!-- There are also 16 widely known color names with their sRGB values:
 101.290 +
 101.291 +    Black  = #000000    Green  = #008000
 101.292 +    Silver = #C0C0C0    Lime   = #00FF00
 101.293 +    Gray   = #808080    Olive  = #808000
 101.294 +    White  = #FFFFFF    Yellow = #FFFF00
 101.295 +    Maroon = #800000    Navy   = #000080
 101.296 +    Red    = #FF0000    Blue   = #0000FF
 101.297 +    Purple = #800080    Teal   = #008080
 101.298 +    Fuchsia= #FF00FF    Aqua   = #00FFFF
 101.299 +-->
 101.300 +
 101.301 +<!--=================== Generic Attributes ===============================-->
 101.302 +
 101.303 +<!-- core attributes common to most elements
 101.304 +  id       document-wide unique id
 101.305 +  class    space separated list of classes
 101.306 +  style    associated style info
 101.307 +  title    advisory title/amplification
 101.308 +-->
 101.309 +<!ENTITY % coreattrs
 101.310 + "id          ID             #IMPLIED
 101.311 +  class       CDATA          #IMPLIED
 101.312 +  style       %StyleSheet;   #IMPLIED
 101.313 +  title       %Text;         #IMPLIED"
 101.314 +  >
 101.315 +
 101.316 +<!-- internationalization attributes
 101.317 +  lang        language code (backwards compatible)
 101.318 +  xml:lang    language code (as per XML 1.0 spec)
 101.319 +  dir         direction for weak/neutral text
 101.320 +-->
 101.321 +<!ENTITY % i18n
 101.322 + "lang        %LanguageCode; #IMPLIED
 101.323 +  xml:lang    %LanguageCode; #IMPLIED
 101.324 +  dir         (ltr|rtl)      #IMPLIED"
 101.325 +  >
 101.326 +
 101.327 +<!-- attributes for common UI events
 101.328 +  onclick     a pointer button was clicked
 101.329 +  ondblclick  a pointer button was double clicked
 101.330 +  onmousedown a pointer button was pressed down
 101.331 +  onmouseup   a pointer button was released
 101.332 +  onmousemove a pointer was moved onto the element
 101.333 +  onmouseout  a pointer was moved away from the element
 101.334 +  onkeypress  a key was pressed and released
 101.335 +  onkeydown   a key was pressed down
 101.336 +  onkeyup     a key was released
 101.337 +-->
 101.338 +<!ENTITY % events
 101.339 + "onclick     %Script;       #IMPLIED
 101.340 +  ondblclick  %Script;       #IMPLIED
 101.341 +  onmousedown %Script;       #IMPLIED
 101.342 +  onmouseup   %Script;       #IMPLIED
 101.343 +  onmouseover %Script;       #IMPLIED
 101.344 +  onmousemove %Script;       #IMPLIED
 101.345 +  onmouseout  %Script;       #IMPLIED
 101.346 +  onkeypress  %Script;       #IMPLIED
 101.347 +  onkeydown   %Script;       #IMPLIED
 101.348 +  onkeyup     %Script;       #IMPLIED"
 101.349 +  >
 101.350 +
 101.351 +<!-- attributes for elements that can get the focus
 101.352 +  accesskey   accessibility key character
 101.353 +  tabindex    position in tabbing order
 101.354 +  onfocus     the element got the focus
 101.355 +  onblur      the element lost the focus
 101.356 +-->
 101.357 +<!ENTITY % focus
 101.358 + "accesskey   %Character;    #IMPLIED
 101.359 +  tabindex    %Number;       #IMPLIED
 101.360 +  onfocus     %Script;       #IMPLIED
 101.361 +  onblur      %Script;       #IMPLIED"
 101.362 +  >
 101.363 +
 101.364 +<!ENTITY % attrs "%coreattrs; %i18n; %events;">
 101.365 +
 101.366 +<!-- text alignment for p, div, h1-h6. The default is
 101.367 +     align="left" for ltr headings, "right" for rtl -->
 101.368 +
 101.369 +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
 101.370 +
 101.371 +<!--=================== Text Elements ====================================-->
 101.372 +
 101.373 +<!ENTITY % editstuff
 101.374 +   "edit:example | edit:schema | edit:thisversion | edit:date | 
 101.375 +    edit:previousversion | edit:latestversion | edit:toc | edit:copyright">
 101.376 +
 101.377 +<!ENTITY % special.extra
 101.378 +   "object | applet | img | map | iframe">
 101.379 +	
 101.380 +<!ENTITY % special.basic
 101.381 +	"br | span | bdo">
 101.382 +
 101.383 +<!ENTITY % special
 101.384 +   "%special.basic; | %special.extra;">
 101.385 +
 101.386 +<!ENTITY % fontstyle.extra "big | small | font | basefont">
 101.387 +
 101.388 +<!ENTITY % fontstyle.basic "tt | i | b | u
 101.389 +                      | s | strike ">
 101.390 +
 101.391 +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
 101.392 +
 101.393 +<!ENTITY % phrase.extra "sub | sup">
 101.394 +<!ENTITY % phrase.basic "em | strong | dfn | code | q |
 101.395 +                   samp | kbd | var | cite | abbr | acronym">
 101.396 +
 101.397 +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
 101.398 +
 101.399 +<!ENTITY % inline.forms "input | select | textarea | label | button">
 101.400 +
 101.401 +<!-- these can occur at block or inline level -->
 101.402 +<!ENTITY % misc.inline "ins | del | script">
 101.403 +
 101.404 +<!-- these can only occur at block level -->
 101.405 +<!ENTITY % misc "noscript | %misc.inline;">
 101.406 +
 101.407 +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
 101.408 +
 101.409 +<!-- %Inline; covers inline or "text-level" elements -->
 101.410 +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;| %editstuff;)*">
 101.411 +
 101.412 +<!--================== Block level elements ==============================-->
 101.413 +
 101.414 +<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
 101.415 +<!ENTITY % lists "ul | ol | dl | menu | dir">
 101.416 +<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes | %editstuff;">
 101.417 +
 101.418 +<!ENTITY % block
 101.419 +    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
 101.420 +
 101.421 +<!-- %Flow; mixes block and inline and is used for list items etc. -->
 101.422 +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc; )*">
 101.423 +
 101.424 +<!--================== Content models for exclusions =====================-->
 101.425 +
 101.426 +<!-- a elements use %Inline; excluding a -->
 101.427 +
 101.428 +<!ENTITY % a.content
 101.429 +   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
 101.430 +
 101.431 +<!-- pre uses %Inline excluding img, object, applet, big, small,
 101.432 +     font, or basefont -->
 101.433 +
 101.434 +<!ENTITY % pre.content
 101.435 +   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
 101.436 +	   %inline.forms; | %misc.inline;)*">
 101.437 +
 101.438 +<!-- form uses %Flow; excluding form -->
 101.439 +
 101.440 +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
 101.441 +
 101.442 +<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
 101.443 +
 101.444 +<!ENTITY % button.content
 101.445 +   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
 101.446 +      table | br | span | bdo | object | applet | img | map |
 101.447 +      %fontstyle; | %phrase; | %misc;)*">
 101.448 +
 101.449 +<!--================ Document Structure ==================================-->
 101.450 +
 101.451 +<!-- the namespace URI designates the document profile -->
 101.452 +
 101.453 +<!ELEMENT html (head, body)>
 101.454 +<!ATTLIST html
 101.455 +  %i18n;
 101.456 +  id          ID             #IMPLIED
 101.457 +  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
 101.458 +  xmlns:edit       %URI;          #FIXED 'http://xmlns.grorg.org/SVGT12NG/'
 101.459 +  >
 101.460 +
 101.461 +<!--================ Document Head =======================================-->
 101.462 +
 101.463 +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
 101.464 +
 101.465 +<!-- content model is %head.misc; combined with a single
 101.466 +     title and an optional base element in any order -->
 101.467 +
 101.468 +<!ELEMENT head (%head.misc;,
 101.469 +     ((title, %head.misc;, (base, %head.misc;)?) |
 101.470 +      (base, %head.misc;, (title, %head.misc;))))>
 101.471 +
 101.472 +<!ATTLIST head
 101.473 +  %i18n;
 101.474 +  id          ID             #IMPLIED
 101.475 +  profile     %URI;          #IMPLIED
 101.476 +  >
 101.477 +
 101.478 +<!-- The title element is not considered part of the flow of text.
 101.479 +       It should be displayed, for example as the page header or
 101.480 +       window title. Exactly one title is required per document.
 101.481 +    -->
 101.482 +<!ELEMENT title (#PCDATA)>
 101.483 +<!ATTLIST title 
 101.484 +  %i18n;
 101.485 +  id          ID             #IMPLIED
 101.486 +  >
 101.487 +
 101.488 +<!-- document base URI -->
 101.489 +
 101.490 +<!ELEMENT base EMPTY>
 101.491 +<!ATTLIST base
 101.492 +  id          ID             #IMPLIED
 101.493 +  href        %URI;          #IMPLIED
 101.494 +  target      %FrameTarget;  #IMPLIED
 101.495 +  >
 101.496 +
 101.497 +<!-- generic metainformation -->
 101.498 +<!ELEMENT meta EMPTY>
 101.499 +<!ATTLIST meta
 101.500 +  %i18n;
 101.501 +  id          ID             #IMPLIED
 101.502 +  http-equiv  CDATA          #IMPLIED
 101.503 +  name        CDATA          #IMPLIED
 101.504 +  content     CDATA          #REQUIRED
 101.505 +  scheme      CDATA          #IMPLIED
 101.506 +  >
 101.507 +
 101.508 +<!--
 101.509 +  Relationship values can be used in principle:
 101.510 +
 101.511 +   a) for document specific toolbars/menus when used
 101.512 +      with the link element in document head e.g.
 101.513 +        start, contents, previous, next, index, end, help
 101.514 +   b) to link to a separate style sheet (rel="stylesheet")
 101.515 +   c) to make a link to a script (rel="script")
 101.516 +   d) by stylesheets to control how collections of
 101.517 +      html nodes are rendered into printed documents
 101.518 +   e) to make a link to a printable version of this document
 101.519 +      e.g. a PostScript or PDF version (rel="alternate" media="print")
 101.520 +-->
 101.521 +
 101.522 +<!ELEMENT link EMPTY>
 101.523 +<!ATTLIST link
 101.524 +  %attrs;
 101.525 +  charset     %Charset;      #IMPLIED
 101.526 +  href        %URI;          #IMPLIED
 101.527 +  hreflang    %LanguageCode; #IMPLIED
 101.528 +  type        %ContentType;  #IMPLIED
 101.529 +  rel         %LinkTypes;    #IMPLIED
 101.530 +  rev         %LinkTypes;    #IMPLIED
 101.531 +  media       %MediaDesc;    #IMPLIED
 101.532 +  target      %FrameTarget;  #IMPLIED
 101.533 +  >
 101.534 +
 101.535 +<!-- style info, which may include CDATA sections -->
 101.536 +<!ELEMENT style (#PCDATA)>
 101.537 +<!ATTLIST style
 101.538 +  %i18n;
 101.539 +  id          ID             #IMPLIED
 101.540 +  type        %ContentType;  #REQUIRED
 101.541 +  media       %MediaDesc;    #IMPLIED
 101.542 +  title       %Text;         #IMPLIED
 101.543 +  xml:space   (preserve)     #FIXED 'preserve'
 101.544 +  >
 101.545 +
 101.546 +<!-- script statements, which may include CDATA sections -->
 101.547 +<!ELEMENT script (#PCDATA)>
 101.548 +<!ATTLIST script
 101.549 +  id          ID             #IMPLIED
 101.550 +  charset     %Charset;      #IMPLIED
 101.551 +  type        %ContentType;  #REQUIRED
 101.552 +  language    CDATA          #IMPLIED
 101.553 +  src         %URI;          #IMPLIED
 101.554 +  defer       (defer)        #IMPLIED
 101.555 +  xml:space   (preserve)     #FIXED 'preserve'
 101.556 +  >
 101.557 +
 101.558 +<!-- alternate content container for non script-based rendering -->
 101.559 +
 101.560 +<!ELEMENT noscript %Flow;>
 101.561 +<!ATTLIST noscript
 101.562 +  %attrs;
 101.563 +  >
 101.564 +
 101.565 +<!--======================= Frames =======================================-->
 101.566 +
 101.567 +<!-- inline subwindow -->
 101.568 +
 101.569 +<!ELEMENT iframe %Flow;>
 101.570 +<!ATTLIST iframe
 101.571 +  %coreattrs;
 101.572 +  longdesc    %URI;          #IMPLIED
 101.573 +  name        NMTOKEN        #IMPLIED
 101.574 +  src         %URI;          #IMPLIED
 101.575 +  frameborder (1|0)          "1"
 101.576 +  marginwidth %Pixels;       #IMPLIED
 101.577 +  marginheight %Pixels;      #IMPLIED
 101.578 +  scrolling   (yes|no|auto)  "auto"
 101.579 +  align       %ImgAlign;     #IMPLIED
 101.580 +  height      %Length;       #IMPLIED
 101.581 +  width       %Length;       #IMPLIED
 101.582 +  >
 101.583 +
 101.584 +<!-- alternate content container for non frame-based rendering -->
 101.585 +
 101.586 +<!ELEMENT noframes %Flow;>
 101.587 +<!ATTLIST noframes
 101.588 +  %attrs;
 101.589 +  >
 101.590 +
 101.591 +<!--=================== Document Body ====================================-->
 101.592 +
 101.593 +<!ELEMENT body %Flow;>
 101.594 +<!ATTLIST body
 101.595 +  %attrs;
 101.596 +  onload      %Script;       #IMPLIED
 101.597 +  onunload    %Script;       #IMPLIED
 101.598 +  background  %URI;          #IMPLIED
 101.599 +  bgcolor     %Color;        #IMPLIED
 101.600 +  text        %Color;        #IMPLIED
 101.601 +  link        %Color;        #IMPLIED
 101.602 +  vlink       %Color;        #IMPLIED
 101.603 +  alink       %Color;        #IMPLIED
 101.604 +  >
 101.605 +
 101.606 +<!ELEMENT div %Flow;>  <!-- generic language/style container -->
 101.607 +<!ATTLIST div
 101.608 +  %attrs;
 101.609 +  %TextAlign;
 101.610 +  >
 101.611 +  
 101.612 + <!--================Special edit inclusions  =========================-->
 101.613 + 
 101.614 +  <!ELEMENT edit:example %Flow;>
 101.615 +  <!ATTLIST edit:example
 101.616 +    href CDATA #IMPLIED
 101.617 +    link CDATA #IMPLIED
 101.618 +    image CDATA #IMPLIED
 101.619 +  >
 101.620 +  
 101.621 +    <!ELEMENT edit:schema %Flow;>
 101.622 +  <!ATTLIST edit:schema
 101.623 +    element CDATA #IMPLIED
 101.624 +  >
 101.625 +
 101.626 +   <!ELEMENT edit:date EMPTY>
 101.627 +   <!ELEMENT edit:thisversion EMPTY>
 101.628 +   <!ELEMENT edit:previousversion EMPTY>
 101.629 +   <!ELEMENT edit:latestversion EMPTY>
 101.630 +   <!ELEMENT edit:toc EMPTY>
 101.631 +   <!ELEMENT edit:copyright EMPTY>
 101.632 +
 101.633 +<!--=================== Paragraphs =======================================-->
 101.634 +
 101.635 +<!ELEMENT p %Inline;>
 101.636 +<!ATTLIST p
 101.637 +  %attrs;
 101.638 +  %TextAlign;
 101.639 +  >
 101.640 +
 101.641 +<!--=================== Headings =========================================-->
 101.642 +
 101.643 +<!--
 101.644 +  There are six levels of headings from h1 (the most important)
 101.645 +  to h6 (the least important).
 101.646 +-->
 101.647 +
 101.648 +<!ELEMENT h1  %Inline;>
 101.649 +<!ATTLIST h1
 101.650 +  %attrs;
 101.651 +  %TextAlign;
 101.652 +  >
 101.653 +
 101.654 +<!ELEMENT h2 %Inline;>
 101.655 +<!ATTLIST h2
 101.656 +  %attrs;
 101.657 +  %TextAlign;
 101.658 +  >
 101.659 +
 101.660 +<!ELEMENT h3 %Inline;>
 101.661 +<!ATTLIST h3
 101.662 +  %attrs;
 101.663 +  %TextAlign;
 101.664 +  >
 101.665 +
 101.666 +<!ELEMENT h4 %Inline;>
 101.667 +<!ATTLIST h4
 101.668 +  %attrs;
 101.669 +  %TextAlign;
 101.670 +  >
 101.671 +
 101.672 +<!ELEMENT h5 %Inline;>
 101.673 +<!ATTLIST h5
 101.674 +  %attrs;
 101.675 +  %TextAlign;
 101.676 +  >
 101.677 +
 101.678 +<!ELEMENT h6 %Inline;>
 101.679 +<!ATTLIST h6
 101.680 +  %attrs;
 101.681 +  %TextAlign;
 101.682 +  >
 101.683 +
 101.684 +<!--=================== Lists ============================================-->
 101.685 +
 101.686 +<!-- Unordered list bullet styles -->
 101.687 +
 101.688 +<!ENTITY % ULStyle "(disc|square|circle)">
 101.689 +
 101.690 +<!-- Unordered list -->
 101.691 +
 101.692 +<!ELEMENT ul (li)+>
 101.693 +<!ATTLIST ul
 101.694 +  %attrs;
 101.695 +  type        %ULStyle;     #IMPLIED
 101.696 +  compact     (compact)     #IMPLIED
 101.697 +  >
 101.698 +
 101.699 +<!-- Ordered list numbering style
 101.700 +
 101.701 +    1   arabic numbers      1, 2, 3, ...
 101.702 +    a   lower alpha         a, b, c, ...
 101.703 +    A   upper alpha         A, B, C, ...
 101.704 +    i   lower roman         i, ii, iii, ...
 101.705 +    I   upper roman         I, II, III, ...
 101.706 +
 101.707 +    The style is applied to the sequence number which by default
 101.708 +    is reset to 1 for the first list item in an ordered list.
 101.709 +-->
 101.710 +<!ENTITY % OLStyle "CDATA">
 101.711 +
 101.712 +<!-- Ordered (numbered) list -->
 101.713 +
 101.714 +<!ELEMENT ol (li)+>
 101.715 +<!ATTLIST ol
 101.716 +  %attrs;
 101.717 +  type        %OLStyle;      #IMPLIED
 101.718 +  compact     (compact)      #IMPLIED
 101.719 +  start       %Number;       #IMPLIED
 101.720 +  >
 101.721 +
 101.722 +<!-- single column list (DEPRECATED) --> 
 101.723 +<!ELEMENT menu (li)+>
 101.724 +<!ATTLIST menu
 101.725 +  %attrs;
 101.726 +  compact     (compact)     #IMPLIED
 101.727 +  >
 101.728 +
 101.729 +<!-- multiple column list (DEPRECATED) --> 
 101.730 +<!ELEMENT dir (li)+>
 101.731 +<!ATTLIST dir
 101.732 +  %attrs;
 101.733 +  compact     (compact)     #IMPLIED
 101.734 +  >
 101.735 +
 101.736 +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
 101.737 +<!ENTITY % LIStyle "CDATA">
 101.738 +
 101.739 +<!-- list item -->
 101.740 +
 101.741 +<!ELEMENT li %Flow;>
 101.742 +<!ATTLIST li
 101.743 +  %attrs;
 101.744 +  type        %LIStyle;      #IMPLIED
 101.745 +  value       %Number;       #IMPLIED
 101.746 +  >
 101.747 +
 101.748 +<!-- definition lists - dt for term, dd for its definition -->
 101.749 +
 101.750 +<!ELEMENT dl (dt|dd)+>
 101.751 +<!ATTLIST dl
 101.752 +  %attrs;
 101.753 +  compact     (compact)      #IMPLIED
 101.754 +  >
 101.755 +
 101.756 +<!ELEMENT dt %Inline;>
 101.757 +<!ATTLIST dt
 101.758 +  %attrs;
 101.759 +  >
 101.760 +
 101.761 +<!ELEMENT dd %Flow;>
 101.762 +<!ATTLIST dd
 101.763 +  %attrs;
 101.764 +  >
 101.765 +
 101.766 +<!--=================== Address ==========================================-->
 101.767 +
 101.768 +<!-- information on author -->
 101.769 +
 101.770 +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
 101.771 +<!ATTLIST address
 101.772 +  %attrs;
 101.773 +  >
 101.774 +
 101.775 +<!--=================== Horizontal Rule ==================================-->
 101.776 +
 101.777 +<!ELEMENT hr EMPTY>
 101.778 +<!ATTLIST hr
 101.779 +  %attrs;
 101.780 +  align       (left|center|right) #IMPLIED
 101.781 +  noshade     (noshade)      #IMPLIED
 101.782 +  size        %Pixels;       #IMPLIED
 101.783 +  width       %Length;       #IMPLIED
 101.784 +  >
 101.785 +
 101.786 +<!--=================== Preformatted Text ================================-->
 101.787 +
 101.788 +<!-- content is %Inline; excluding 
 101.789 +        "img|object|applet|big|small|sub|sup|font|basefont" -->
 101.790 +
 101.791 +<!ELEMENT pre %pre.content;>
 101.792 +<!ATTLIST pre
 101.793 +  %attrs;
 101.794 +  width       %Number;      #IMPLIED
 101.795 +  xml:space   (preserve)    #FIXED 'preserve'
 101.796 +  >
 101.797 +
 101.798 +<!--=================== Block-like Quotes ================================-->
 101.799 +
 101.800 +<!ELEMENT blockquote %Flow;>
 101.801 +<!ATTLIST blockquote
 101.802 +  %attrs;
 101.803 +  cite        %URI;          #IMPLIED
 101.804 +  >
 101.805 +
 101.806 +<!--=================== Text alignment ===================================-->
 101.807 +
 101.808 +<!-- center content -->
 101.809 +<!ELEMENT center %Flow;>
 101.810 +<!ATTLIST center
 101.811 +  %attrs;
 101.812 +  >
 101.813 +
 101.814 +<!--=================== Inserted/Deleted Text ============================-->
 101.815 +
 101.816 +<!--
 101.817 +  ins/del are allowed in block and inline content, but its
 101.818 +  inappropriate to include block content within an ins element
 101.819 +  occurring in inline content.
 101.820 +-->
 101.821 +<!ELEMENT ins %Flow;>
 101.822 +<!ATTLIST ins
 101.823 +  %attrs;
 101.824 +  cite        %URI;          #IMPLIED
 101.825 +  datetime    %Datetime;     #IMPLIED
 101.826 +  >
 101.827 +
 101.828 +<!ELEMENT del %Flow;>
 101.829 +<!ATTLIST del
 101.830 +  %attrs;
 101.831 +  cite        %URI;          #IMPLIED
 101.832 +  datetime    %Datetime;     #IMPLIED
 101.833 +  >
 101.834 +
 101.835 +<!--================== The Anchor Element ================================-->
 101.836 +
 101.837 +<!-- content is %Inline; except that anchors shouldn't be nested -->
 101.838 +
 101.839 +<!ELEMENT a %a.content;>
 101.840 +<!ATTLIST a
 101.841 +  %attrs;
 101.842 +  %focus;
 101.843 +  charset     %Charset;      #IMPLIED
 101.844 +  type        %ContentType;  #IMPLIED
 101.845 +  name        NMTOKEN        #IMPLIED
 101.846 +  href        %URI;          #IMPLIED
 101.847 +  hreflang    %LanguageCode; #IMPLIED
 101.848 +  rel         %LinkTypes;    #IMPLIED
 101.849 +  rev         %LinkTypes;    #IMPLIED
 101.850 +  shape       %Shape;        "rect"
 101.851 +  coords      %Coords;       #IMPLIED
 101.852 +  target      %FrameTarget;  #IMPLIED
 101.853 +  >
 101.854 +
 101.855 +<!--===================== Inline Elements ================================-->
 101.856 +
 101.857 +<!ELEMENT span %Inline;> <!-- generic language/style container -->
 101.858 +<!ATTLIST span
 101.859 +  %attrs;
 101.860 +  >
 101.861 +
 101.862 +<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
 101.863 +<!ATTLIST bdo
 101.864 +  %coreattrs;
 101.865 +  %events;
 101.866 +  lang        %LanguageCode; #IMPLIED
 101.867 +  xml:lang    %LanguageCode; #IMPLIED
 101.868 +  dir         (ltr|rtl)      #REQUIRED
 101.869 +  >
 101.870 +
 101.871 +<!ELEMENT br EMPTY>   <!-- forced line break -->
 101.872 +<!ATTLIST br
 101.873 +  %coreattrs;
 101.874 +  clear       (left|all|right|none) "none"
 101.875 +  >
 101.876 +
 101.877 +<!ELEMENT em %Inline;>   <!-- emphasis -->
 101.878 +<!ATTLIST em %attrs;>
 101.879 +
 101.880 +<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
 101.881 +<!ATTLIST strong %attrs;>
 101.882 +
 101.883 +<!ELEMENT dfn %Inline;>   <!-- definitional -->
 101.884 +<!ATTLIST dfn %attrs;>
 101.885 +
 101.886 +<!ELEMENT code %Inline;>   <!-- program code -->
 101.887 +<!ATTLIST code %attrs;>
 101.888 +
 101.889 +<!ELEMENT samp %Inline;>   <!-- sample -->
 101.890 +<!ATTLIST samp %attrs;>
 101.891 +
 101.892 +<!ELEMENT kbd %Inline;>  <!-- something user would type -->
 101.893 +<!ATTLIST kbd %attrs;>
 101.894 +
 101.895 +<!ELEMENT var %Inline;>   <!-- variable -->
 101.896 +<!ATTLIST var %attrs;>
 101.897 +
 101.898 +<!ELEMENT cite %Inline;>   <!-- citation -->
 101.899 +<!ATTLIST cite %attrs;>
 101.900 +
 101.901 +<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
 101.902 +<!ATTLIST abbr %attrs;>
 101.903 +
 101.904 +<!ELEMENT acronym %Inline;>   <!-- acronym -->
 101.905 +<!ATTLIST acronym %attrs;>
 101.906 +
 101.907 +<!ELEMENT q %Inline;>   <!-- inlined quote -->
 101.908 +<!ATTLIST q
 101.909 +  %attrs;
 101.910 +  cite        %URI;          #IMPLIED
 101.911 +  >
 101.912 +
 101.913 +<!ELEMENT sub %Inline;> <!-- subscript -->
 101.914 +<!ATTLIST sub %attrs;>
 101.915 +
 101.916 +<!ELEMENT sup %Inline;> <!-- superscript -->
 101.917 +<!ATTLIST sup %attrs;>
 101.918 +
 101.919 +<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
 101.920 +<!ATTLIST tt %attrs;>
 101.921 +
 101.922 +<!ELEMENT i %Inline;>   <!-- italic font -->
 101.923 +<!ATTLIST i %attrs;>
 101.924 +
 101.925 +<!ELEMENT b %Inline;>   <!-- bold font -->
 101.926 +<!ATTLIST b %attrs;>
 101.927 +
 101.928 +<!ELEMENT big %Inline;>   <!-- bigger font -->
 101.929 +<!ATTLIST big %attrs;>
 101.930 +
 101.931 +<!ELEMENT small %Inline;>   <!-- smaller font -->
 101.932 +<!ATTLIST small %attrs;>
 101.933 +
 101.934 +<!ELEMENT u %Inline;>   <!-- underline -->
 101.935 +<!ATTLIST u %attrs;>
 101.936 +
 101.937 +<!ELEMENT s %Inline;>   <!-- strike-through -->
 101.938 +<!ATTLIST s %attrs;>
 101.939 +
 101.940 +<!ELEMENT strike %Inline;>   <!-- strike-through -->
 101.941 +<!ATTLIST strike %attrs;>
 101.942 +
 101.943 +<!ELEMENT basefont EMPTY>  <!-- base font size -->
 101.944 +<!ATTLIST basefont
 101.945 +  id          ID             #IMPLIED
 101.946 +  size        CDATA          #REQUIRED
 101.947 +  color       %Color;        #IMPLIED
 101.948 +  face        CDATA          #IMPLIED
 101.949 +  >
 101.950 +
 101.951 +<!ELEMENT font %Inline;> <!-- local change to font -->
 101.952 +<!ATTLIST font
 101.953 +  %coreattrs;
 101.954 +  %i18n;
 101.955 +  size        CDATA          #IMPLIED
 101.956 +  color       %Color;        #IMPLIED
 101.957 +  face        CDATA          #IMPLIED
 101.958 +  >
 101.959 +
 101.960 +<!--==================== Object ======================================-->
 101.961 +<!--
 101.962 +  object is used to embed objects as part of HTML pages.
 101.963 +  param elements should precede other content. Parameters
 101.964 +  can also be expressed as attribute/value pairs on the
 101.965 +  object element itself when brevity is desired.
 101.966 +-->
 101.967 +
 101.968 +<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
 101.969 +<!ATTLIST object
 101.970 +  %attrs;
 101.971 +  declare     (declare)      #IMPLIED
 101.972 +  classid     %URI;          #IMPLIED
 101.973 +  codebase    %URI;          #IMPLIED
 101.974 +  data        %URI;          #IMPLIED
 101.975 +  type        %ContentType;  #IMPLIED
 101.976 +  codetype    %ContentType;  #IMPLIED
 101.977 +  archive     %UriList;      #IMPLIED
 101.978 +  standby     %Text;         #IMPLIED
 101.979 +  height      %Length;       #IMPLIED
 101.980 +  width       %Length;       #IMPLIED
 101.981 +  usemap      %URI;          #IMPLIED
 101.982 +  name        NMTOKEN        #IMPLIED
 101.983 +  tabindex    %Number;       #IMPLIED
 101.984 +  align       %ImgAlign;     #IMPLIED
 101.985 +  border      %Pixels;       #IMPLIED
 101.986 +  hspace      %Pixels;       #IMPLIED
 101.987 +  vspace      %Pixels;       #IMPLIED
 101.988 +  >
 101.989 +
 101.990 +<!--
 101.991 +  param is used to supply a named property value.
 101.992 +  In XML it would seem natural to follow RDF and support an
 101.993 +  abbreviated syntax where the param elements are replaced
 101.994 +  by attribute value pairs on the object start tag.
 101.995 +-->
 101.996 +<!ELEMENT param EMPTY>
 101.997 +<!ATTLIST param
 101.998 +  id          ID             #IMPLIED
 101.999 +  name        CDATA          #REQUIRED
101.1000 +  value       CDATA          #IMPLIED
101.1001 +  valuetype   (data|ref|object) "data"
101.1002 +  type        %ContentType;  #IMPLIED
101.1003 +  >
101.1004 +
101.1005 +<!--=================== Java applet ==================================-->
101.1006 +<!--
101.1007 +  One of code or object attributes must be present.
101.1008 +  Place param elements before other content.
101.1009 +-->
101.1010 +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
101.1011 +<!ATTLIST applet
101.1012 +  %coreattrs;
101.1013 +  codebase    %URI;          #IMPLIED
101.1014 +  archive     CDATA          #IMPLIED
101.1015 +  code        CDATA          #IMPLIED
101.1016 +  object      CDATA          #IMPLIED
101.1017 +  alt         %Text;         #IMPLIED
101.1018 +  name        NMTOKEN        #IMPLIED
101.1019 +  width       %Length;       #REQUIRED
101.1020 +  height      %Length;       #REQUIRED
101.1021 +  align       %ImgAlign;     #IMPLIED
101.1022 +  hspace      %Pixels;       #IMPLIED
101.1023 +  vspace      %Pixels;       #IMPLIED
101.1024 +  >
101.1025 +
101.1026 +<!--=================== Images ===========================================-->
101.1027 +
101.1028 +<!--
101.1029 +   To avoid accessibility problems for people who aren't
101.1030 +   able to see the image, you should provide a text
101.1031 +   description using the alt and longdesc attributes.
101.1032 +   In addition, avoid the use of server-side image maps.
101.1033 +-->
101.1034 +
101.1035 +<!ELEMENT img EMPTY>
101.1036 +<!ATTLIST img
101.1037 +  %attrs;
101.1038 +  src         %URI;          #REQUIRED
101.1039 +  alt         %Text;         #REQUIRED
101.1040 +  name        NMTOKEN        #IMPLIED
101.1041 +  longdesc    %URI;          #IMPLIED
101.1042 +  height      %Length;       #IMPLIED
101.1043 +  width       %Length;       #IMPLIED
101.1044 +  usemap      %URI;          #IMPLIED
101.1045 +  ismap       (ismap)        #IMPLIED
101.1046 +  align       %ImgAlign;     #IMPLIED
101.1047 +  border      %Length;       #IMPLIED
101.1048 +  hspace      %Pixels;       #IMPLIED
101.1049 +  vspace      %Pixels;       #IMPLIED
101.1050 +  >
101.1051 +
101.1052 +<!-- usemap points to a map element which may be in this document
101.1053 +  or an external document, although the latter is not widely supported -->
101.1054 +
101.1055 +<!--================== Client-side image maps ============================-->
101.1056 +
101.1057 +<!-- These can be placed in the same document or grouped in a
101.1058 +     separate document although this isn't yet widely supported -->
101.1059 +
101.1060 +<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
101.1061 +<!ATTLIST map
101.1062 +  %i18n;
101.1063 +  %events;
101.1064 +  id          ID             #REQUIRED
101.1065 +  class       CDATA          #IMPLIED
101.1066 +  style       %StyleSheet;   #IMPLIED
101.1067 +  title       %Text;         #IMPLIED
101.1068 +  name        CDATA          #IMPLIED
101.1069 +  >
101.1070 +
101.1071 +<!ELEMENT area EMPTY>
101.1072 +<!ATTLIST area
101.1073 +  %attrs;
101.1074 +  %focus;
101.1075 +  shape       %Shape;        "rect"
101.1076 +  coords      %Coords;       #IMPLIED
101.1077 +  href        %URI;          #IMPLIED
101.1078 +  nohref      (nohref)       #IMPLIED
101.1079 +  alt         %Text;         #REQUIRED
101.1080 +  target      %FrameTarget;  #IMPLIED
101.1081 +  >
101.1082 +
101.1083 +<!--================ Forms ===============================================-->
101.1084 +
101.1085 +<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
101.1086 +
101.1087 +<!ATTLIST form
101.1088 +  %attrs;
101.1089 +  action      %URI;          #REQUIRED
101.1090 +  method      (get|post)     "get"
101.1091 +  name        NMTOKEN        #IMPLIED
101.1092 +  enctype     %ContentType;  "application/x-www-form-urlencoded"
101.1093 +  onsubmit    %Script;       #IMPLIED
101.1094 +  onreset     %Script;       #IMPLIED
101.1095 +  accept      %ContentTypes; #IMPLIED
101.1096 +  accept-charset %Charsets;  #IMPLIED
101.1097 +  target      %FrameTarget;  #IMPLIED
101.1098 +  >
101.1099 +
101.1100 +<!--
101.1101 +  Each label must not contain more than ONE field
101.1102 +  Label elements shouldn't be nested.
101.1103 +-->
101.1104 +<!ELEMENT label %Inline;>
101.1105 +<!ATTLIST label
101.1106 +  %attrs;
101.1107 +  for         IDREF          #IMPLIED
101.1108 +  accesskey   %Character;    #IMPLIED
101.1109 +  onfocus     %Script;       #IMPLIED
101.1110 +  onblur      %Script;       #IMPLIED
101.1111 +  >
101.1112 +
101.1113 +<!ENTITY % InputType
101.1114 +  "(text | password | checkbox |
101.1115 +    radio | submit | reset |
101.1116 +    file | hidden | image | button)"
101.1117 +   >
101.1118 +
101.1119 +<!-- the name attribute is required for all but submit & reset -->
101.1120 +
101.1121 +<!ELEMENT input EMPTY>     <!-- form control -->
101.1122 +<!ATTLIST input
101.1123 +  %attrs;
101.1124 +  %focus;
101.1125 +  type        %InputType;    "text"
101.1126 +  name        CDATA          #IMPLIED
101.1127 +  value       CDATA          #IMPLIED
101.1128 +  checked     (checked)      #IMPLIED
101.1129 +  disabled    (disabled)     #IMPLIED
101.1130 +  readonly    (readonly)     #IMPLIED
101.1131 +  size        CDATA          #IMPLIED
101.1132 +  maxlength   %Number;       #IMPLIED
101.1133 +  src         %URI;          #IMPLIED
101.1134 +  alt         CDATA          #IMPLIED
101.1135 +  usemap      %URI;          #IMPLIED
101.1136 +  onselect    %Script;       #IMPLIED
101.1137 +  onchange    %Script;       #IMPLIED
101.1138 +  accept      %ContentTypes; #IMPLIED
101.1139 +  align       %ImgAlign;     #IMPLIED
101.1140 +  >
101.1141 +
101.1142 +<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
101.1143 +<!ATTLIST select
101.1144 +  %attrs;
101.1145 +  name        CDATA          #IMPLIED
101.1146 +  size        %Number;       #IMPLIED
101.1147 +  multiple    (multiple)     #IMPLIED
101.1148 +  disabled    (disabled)     #IMPLIED
101.1149 +  tabindex    %Number;       #IMPLIED
101.1150 +  onfocus     %Script;       #IMPLIED
101.1151 +  onblur      %Script;       #IMPLIED
101.1152 +  onchange    %Script;       #IMPLIED
101.1153 +  >
101.1154 +
101.1155 +<!ELEMENT optgroup (option)+>   <!-- option group -->
101.1156 +<!ATTLIST optgroup
101.1157 +  %attrs;
101.1158 +  disabled    (disabled)     #IMPLIED
101.1159 +  label       %Text;         #REQUIRED
101.1160 +  >
101.1161 +
101.1162 +<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
101.1163 +<!ATTLIST option
101.1164 +  %attrs;
101.1165 +  selected    (selected)     #IMPLIED
101.1166 +  disabled    (disabled)     #IMPLIED
101.1167 +  label       %Text;         #IMPLIED
101.1168 +  value       CDATA          #IMPLIED
101.1169 +  >
101.1170 +
101.1171 +<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
101.1172 +<!ATTLIST textarea
101.1173 +  %attrs;
101.1174 +  %focus;
101.1175 +  name        CDATA          #IMPLIED
101.1176 +  rows        %Number;       #REQUIRED
101.1177 +  cols        %Number;       #REQUIRED
101.1178 +  disabled    (disabled)     #IMPLIED
101.1179 +  readonly    (readonly)     #IMPLIED
101.1180 +  onselect    %Script;       #IMPLIED
101.1181 +  onchange    %Script;       #IMPLIED
101.1182 +  >
101.1183 +
101.1184 +<!--
101.1185 +  The fieldset element is used to group form fields.
101.1186 +  Only one legend element should occur in the content
101.1187 +  and if present should only be preceded by whitespace.
101.1188 +-->
101.1189 +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
101.1190 +<!ATTLIST fieldset
101.1191 +  %attrs;
101.1192 +  >
101.1193 +
101.1194 +<!ENTITY % LAlign "(top|bottom|left|right)">
101.1195 +
101.1196 +<!ELEMENT legend %Inline;>     <!-- fieldset label -->
101.1197 +<!ATTLIST legend
101.1198 +  %attrs;
101.1199 +  accesskey   %Character;    #IMPLIED
101.1200 +  align       %LAlign;       #IMPLIED
101.1201 +  >
101.1202 +
101.1203 +<!--
101.1204 + Content is %Flow; excluding a, form, form controls, iframe
101.1205 +--> 
101.1206 +<!ELEMENT button %button.content;>  <!-- push button -->
101.1207 +<!ATTLIST button
101.1208 +  %attrs;
101.1209 +  %focus;
101.1210 +  name        CDATA          #IMPLIED
101.1211 +  value       CDATA          #IMPLIED
101.1212 +  type        (button|submit|reset) "submit"
101.1213 +  disabled    (disabled)     #IMPLIED
101.1214 +  >
101.1215 +
101.1216 +<!-- single-line text input control (DEPRECATED) -->
101.1217 +<!ELEMENT isindex EMPTY>
101.1218 +<!ATTLIST isindex
101.1219 +  %coreattrs;
101.1220 +  %i18n;
101.1221 +  prompt      %Text;         #IMPLIED
101.1222 +  >
101.1223 +
101.1224 +<!--======================= Tables =======================================-->
101.1225 +
101.1226 +<!-- Derived from IETF HTML table standard, see [RFC1942] -->
101.1227 +
101.1228 +<!--
101.1229 + The border attribute sets the thickness of the frame around the
101.1230 + table. The default units are screen pixels.
101.1231 +
101.1232 + The frame attribute specifies which parts of the frame around
101.1233 + the table should be rendered. The values are not the same as
101.1234 + CALS to avoid a name clash with the valign attribute.
101.1235 +-->
101.1236 +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
101.1237 +
101.1238 +<!--
101.1239 + The rules attribute defines which rules to draw between cells:
101.1240 +
101.1241 + If rules is absent then assume:
101.1242 +     "none" if border is absent or border="0" otherwise "all"
101.1243 +-->
101.1244 +
101.1245 +<!ENTITY % TRules "(none | groups | rows | cols | all)">
101.1246 +  
101.1247 +<!-- horizontal placement of table relative to document -->
101.1248 +<!ENTITY % TAlign "(left|center|right)">
101.1249 +
101.1250 +<!-- horizontal alignment attributes for cell contents
101.1251 +
101.1252 +  char        alignment char, e.g. char=':'
101.1253 +  charoff     offset for alignment char
101.1254 +-->
101.1255 +<!ENTITY % cellhalign
101.1256 +  "align      (left|center|right|justify|char) #IMPLIED
101.1257 +   char       %Character;    #IMPLIED
101.1258 +   charoff    %Length;       #IMPLIED"
101.1259 +  >
101.1260 +
101.1261 +<!-- vertical alignment attributes for cell contents -->
101.1262 +<!ENTITY % cellvalign
101.1263 +  "valign     (top|middle|bottom|baseline) #IMPLIED"
101.1264 +  >
101.1265 +
101.1266 +<!ELEMENT table
101.1267 +     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
101.1268 +<!ELEMENT caption  %Inline;>
101.1269 +<!ELEMENT thead    (tr)+>
101.1270 +<!ELEMENT tfoot    (tr)+>
101.1271 +<!ELEMENT tbody    (tr)+>
101.1272 +<!ELEMENT colgroup (col)*>
101.1273 +<!ELEMENT col      EMPTY>
101.1274 +<!ELEMENT tr       (th|td)+>
101.1275 +<!ELEMENT th       %Flow;>
101.1276 +<!ELEMENT td       %Flow;>
101.1277 +
101.1278 +<!ATTLIST table
101.1279 +  %attrs;
101.1280 +  summary     %Text;         #IMPLIED
101.1281 +  width       %Length;       #IMPLIED
101.1282 +  border      %Pixels;       #IMPLIED
101.1283 +  frame       %TFrame;       #IMPLIED
101.1284 +  rules       %TRules;       #IMPLIED
101.1285 +  cellspacing %Length;       #IMPLIED
101.1286 +  cellpadding %Length;       #IMPLIED
101.1287 +  align       %TAlign;       #IMPLIED
101.1288 +  bgcolor     %Color;        #IMPLIED
101.1289 +  >
101.1290 +
101.1291 +<!ENTITY % CAlign "(top|bottom|left|right)">
101.1292 +
101.1293 +<!ATTLIST caption
101.1294 +  %attrs;
101.1295 +  align       %CAlign;       #IMPLIED
101.1296 +  >
101.1297 +
101.1298 +<!--
101.1299 +colgroup groups a set of col elements. It allows you to group
101.1300 +several semantically related columns together.
101.1301 +-->
101.1302 +<!ATTLIST colgroup
101.1303 +  %attrs;
101.1304 +  span        %Number;       "1"
101.1305 +  width       %MultiLength;  #IMPLIED
101.1306 +  %cellhalign;
101.1307 +  %cellvalign;
101.1308 +  >
101.1309 +
101.1310 +<!--
101.1311 + col elements define the alignment properties for cells in
101.1312 + one or more columns.
101.1313 +
101.1314 + The width attribute specifies the width of the columns, e.g.
101.1315 +
101.1316 +     width=64        width in screen pixels
101.1317 +     width=0.5*      relative width of 0.5
101.1318 +
101.1319 + The span attribute causes the attributes of one
101.1320 + col element to apply to more than one column.
101.1321 +-->
101.1322 +<!ATTLIST col
101.1323 +  %attrs;
101.1324 +  span        %Number;       "1"
101.1325 +  width       %MultiLength;  #IMPLIED
101.1326 +  %cellhalign;
101.1327 +  %cellvalign;
101.1328 +  >
101.1329 +
101.1330 +<!--
101.1331 +    Use thead to duplicate headers when breaking table
101.1332 +    across page boundaries, or for static headers when
101.1333 +    tbody sections are rendered in scrolling panel.
101.1334 +
101.1335 +    Use tfoot to duplicate footers when breaking table
101.1336 +    across page boundaries, or for static footers when
101.1337 +    tbody sections are rendered in scrolling panel.
101.1338 +
101.1339 +    Use multiple tbody sections when rules are needed
101.1340 +    between groups of table rows.
101.1341 +-->
101.1342 +<!ATTLIST thead
101.1343 +  %attrs;
101.1344 +  %cellhalign;
101.1345 +  %cellvalign;
101.1346 +  >
101.1347 +
101.1348 +<!ATTLIST tfoot
101.1349 +  %attrs;
101.1350 +  %cellhalign;
101.1351 +  %cellvalign;
101.1352 +  >
101.1353 +
101.1354 +<!ATTLIST tbody
101.1355 +  %attrs;
101.1356 +  %cellhalign;
101.1357 +  %cellvalign;
101.1358 +  >
101.1359 +
101.1360 +<!ATTLIST tr
101.1361 +  %attrs;
101.1362 +  %cellhalign;
101.1363 +  %cellvalign;
101.1364 +  bgcolor     %Color;        #IMPLIED
101.1365 +  >
101.1366 +
101.1367 +<!-- Scope is simpler than headers attribute for common tables -->
101.1368 +<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
101.1369 +
101.1370 +<!-- th is for headers, td for data and for cells acting as both -->
101.1371 +
101.1372 +<!ATTLIST th
101.1373 +  %attrs;
101.1374 +  abbr        %Text;         #IMPLIED
101.1375 +  axis        CDATA          #IMPLIED
101.1376 +  headers     IDREFS         #IMPLIED
101.1377 +  scope       %Scope;        #IMPLIED
101.1378 +  rowspan     %Number;       "1"
101.1379 +  colspan     %Number;       "1"
101.1380 +  %cellhalign;
101.1381 +  %cellvalign;
101.1382 +  nowrap      (nowrap)       #IMPLIED
101.1383 +  bgcolor     %Color;        #IMPLIED
101.1384 +  width       %Length;       #IMPLIED
101.1385 +  height      %Length;       #IMPLIED
101.1386 +  >
101.1387 +
101.1388 +<!ATTLIST td
101.1389 +  %attrs;
101.1390 +  abbr        %Text;         #IMPLIED
101.1391 +  axis        CDATA          #IMPLIED
101.1392 +  headers     IDREFS         #IMPLIED
101.1393 +  scope       %Scope;        #IMPLIED
101.1394 +  rowspan     %Number;       "1"
101.1395 +  colspan     %Number;       "1"
101.1396 +  %cellhalign;
101.1397 +  %cellvalign;
101.1398 +  nowrap      (nowrap)       #IMPLIED
101.1399 +  bgcolor     %Color;        #IMPLIED
101.1400 +  width       %Length;       #IMPLIED
101.1401 +  height      %Length;       #IMPLIED
101.1402 +  >
101.1403 +
   102.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   102.2 +++ b/filters/publish/SVGFilter.html	Mon Apr 11 10:08:48 2011 +1000
   102.3 @@ -0,0 +1,4540 @@
   102.4 +<!--
   102.5 +  Filter Effects 1.0, Part 2: Language
   102.6 +
   102.7 +  $Id$
   102.8 +
   102.9 +  Note: This document is generated from ../master/SVGFilter.html.
  102.10 +  Run "make" from ../master/ to regenerate it.
  102.11 +  -->
  102.12 +
  102.13 +<!DOCTYPE html
  102.14 +  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  102.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>Filter Effects 1.0, Part 2: Language</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  102.16 +
  102.17 +<div class="head">
  102.18 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  102.19 +  <h1 id="pagetitle">Filter Effects 1.0: Language</h1>
  102.20 +  <h2 id="pagesubtitle">W3C Editor’s Draft <em>24 February 2011</em></h2>
  102.21 +  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html">http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/FilterEffects10/">http://www.w3.org/TR/FilterEffects10/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a></dd><dt>Editors:</dt><dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd><dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd></dl>
  102.22 +  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  102.23 +</div>
  102.24 +
  102.25 +<hr/>
  102.26 +
  102.27 +<h2 id="abstract">Abstract</h2>
  102.28 +
  102.29 +<p>
  102.30 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  102.31 +</p>
  102.32 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  102.33 +</p>
  102.34 +<p>
  102.35 +This document defines the markup used by SVG filters.
  102.36 +</p>
  102.37 +
  102.38 +<h2 id="status">Status of This Document</h2>
  102.39 +
  102.40 +<p><em>This section describes the status of this document at the time of its
  102.41 +publication. Other documents may supersede this document. The latest status
  102.42 +of this document series is maintained at the W3C. </em> </p>
  102.43 +
  102.44 +<p>This document is the first public working draft of this specification.
  102.45 +There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part
  102.46 +1: Primer</a> that lists the ways SVG filters may be used. </p>
  102.47 +
  102.48 +<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  102.49 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  102.50 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  102.51 +</p>
  102.52 +
  102.53 +<p>We explicitly invite comments on this specification. Please send them to
  102.54 +<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>).
  102.55 +Acceptance of the archiving policy is requested automatically upon first post to the
  102.56 +list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with
  102.57 +the word subscribe in the subject line. </p>
  102.58 +
  102.59 +<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  102.60 +related to this document is available on the Web. As of this publication, the
  102.61 +SVG Working Group are not aware of any royalty-bearing patents they believe
  102.62 +to be essential to SVG.</p>
  102.63 +
  102.64 +<p>Publication of this document does not imply endorsement by the W3C
  102.65 +membership. A list of current W3C Recommendations and other technical
  102.66 +documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  102.67 +be updated, replaced, or obsoleted by other documents at any time. It is
  102.68 +inappropriate to cite a W3C Working Draft as anything other than a <em>work
  102.69 +in progress</em>." </p>
  102.70 +
  102.71 +<h2 id="howto">How to read this document and give feedback</h2>
  102.72 +
  102.73 +<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification
  102.74 +can be re-used more easily by other specifications that want to have filter
  102.75 +effects. Some things that have been changed are: error handling is more
  102.76 +similar to SVG Tiny 1.2, the addition of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the
  102.77 +possibility to filter bitmap data with the DOM. </p>
  102.78 +
  102.79 +<p>The main purpose of this document is to encourage public feedback. The
  102.80 +best way to give feedback is by sending an email to <a href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please
  102.81 +include some kind of keyword that identifies the area of the specification
  102.82 +the comment is referring to in the subject line of your message (e.g "Section
  102.83 +X.Y - the 'filter' property" or "Filtering primitive handling"). If you have
  102.84 +comments on multiple areas of this document, then it is probably best to
  102.85 +split those comments into multiple messages. </p>
  102.86 +
  102.87 +<p>The public are welcome to comment on any aspect in this document, but
  102.88 +there are a few areas in which the SVG Working Group are explicitly
  102.89 +requesting feedback. These areas are noted in place within this document.
  102.90 +There is also a specific area related to the specification that is listed
  102.91 +here: </p>
  102.92 +
  102.93 +<ul class="toc">
  102.94 +<li><a href="#introduction">1 Introduction</a></li>
  102.95 +<li><a href="#FilterDefinitions">2 Definitions</a></li>
  102.96 +<li><a href="#FilterElement">3 The <span class="element-name">‘filter’</span>
  102.97 +element</a></li>
  102.98 +<li><a href="#FilterProperty">4 The <span class="prop-name">‘filter’</span>
  102.99 +property</a><ul class="toc">
 102.100 +<li><a href="#">4.1 How the 'filter' property applies to content formatted by CSS (e.g HTML)</a></li></ul></li>
 102.101 +<li><a href="#FilterEffectsRegion">5 Filter effects region</a><ul class="toc">
 102.102 +<li><a href="#filter-margins">5.1 Filter Region extensions</a></li></ul></li>
 102.103 +<li><a href="#AccessBackgroundImage">6 Accessing the background image</a><ul class="toc">
 102.104 +<li><a href="#AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</a></li></ul></li>
 102.105 +<li><a href="#FilterPrimitivesOverview">7 Filter primitives overview</a><ul class="toc">
 102.106 +<li><a href="#FilterPrimitivesOverviewIntro">7.1 Overview</a></li>
 102.107 +<li><a href="#CommonAttributes">7.2 Common attributes</a></li>
 102.108 +<li><a href="#FilterPrimitiveSubRegion">7.3 Filter primitive subregion</a></li></ul></li>
 102.109 +<li><a href="#LightSourceDefinitions">8 Light source elements and properties</a><ul class="toc">
 102.110 +<li><a href="#LightSourceIntro">8.1 Introduction</a></li>
 102.111 +<li><a href="#feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></a></li>
 102.112 +<li><a href="#fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></a></li>
 102.113 +<li><a href="#feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></a></li>
 102.114 +<li><a href="#LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</a></li></ul></li>
 102.115 +<li><a href="#feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></a></li>
 102.116 +<li><a href="#feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></a></li>
 102.117 +<li><a href="#feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></a></li>
 102.118 +<li><a href="#feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></a></li>
 102.119 +<li><a href="#feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></a></li>
 102.120 +<li><a href="#feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></a></li>
 102.121 +<li><a href="#feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></a></li>
 102.122 +<li><a href="#feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></a></li>
 102.123 +<li><a href="#feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li>
 102.124 +<li><a href="#feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></a></li>
 102.125 +<li><a href="#feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></a></li>
 102.126 +<li><a href="#feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></a></li>
 102.127 +<li><a href="#feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></a></li>
 102.128 +<li><a href="#feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></a></li>
 102.129 +<li><a href="#feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></a></li>
 102.130 +<li><a href="#feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></a></li>
 102.131 +<li><a href="#feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></a></li>
 102.132 +<li><a href="#feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></a></li>
 102.133 +<li><a href="#feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></a></li>
 102.134 +<li><a href="#feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></a></li>
 102.135 +<li><a href="#RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</a></li>
 102.136 +<li><a href="#DOMInterfaces">30 DOM interfaces</a></li>
 102.137 +<li><a href="#DOMInterfaces">31 DOM interfaces</a><ul class="toc">
 102.138 +<li><a href="#InterfaceImageData">31.1 Interface ImageData</a></li>
 102.139 +<li><a href="#InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</a></li>
 102.140 +<li><a href="#InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</a></li>
 102.141 +<li><a href="#InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</a></li>
 102.142 +<li><a href="#InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</a></li>
 102.143 +<li><a href="#InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</a></li>
 102.144 +<li><a href="#InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</a></li>
 102.145 +<li><a href="#InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</a></li>
 102.146 +<li><a href="#InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</a></li>
 102.147 +<li><a href="#InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</a></li>
 102.148 +<li><a href="#InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</a></li>
 102.149 +<li><a href="#InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</a></li>
 102.150 +<li><a href="#InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</a></li>
 102.151 +<li><a href="#InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</a></li>
 102.152 +<li><a href="#InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</a></li>
 102.153 +<li><a href="#InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</a></li>
 102.154 +<li><a href="#InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</a></li>
 102.155 +<li><a href="#InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</a></li>
 102.156 +<li><a href="#InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</a></li>
 102.157 +<li><a href="#InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</a></li>
 102.158 +<li><a href="#InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</a></li>
 102.159 +<li><a href="#InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</a></li>
 102.160 +<li><a href="#InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</a></li>
 102.161 +<li><a href="#InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</a></li>
 102.162 +<li><a href="#InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</a></li>
 102.163 +<li><a href="#InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</a></li>
 102.164 +<li><a href="#InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</a></li>
 102.165 +<li><a href="#InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</a></li>
 102.166 +<li><a href="#InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</a></li></ul></li>
 102.167 +<li><a href="#references1">32 References</a><ul class="toc">
 102.168 +<li><a href="#normref">32.1 Normative References</a></li>
 102.169 +<li><a href="#informref">32.2 Informative References</a></li></ul></li>
 102.170 +<li><a href="#changes">33 Changes</a></li></ul>
 102.171 +
 102.172 +<h2 id="introduction">1 Introduction</h2>
 102.173 +
 102.174 +<p>This chapter describes a declarative filter effects feature set, which
 102.175 +when combined with the other web technologies, like SVG or HTML, can describe
 102.176 +much of the common artwork on the Web in such a way that client-side
 102.177 +generation and alteration can be performed easily. In addition, the ability
 102.178 +to apply filter effects to SVG <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> and <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> helps to
 102.179 +maintain the semantic structure of the document, instead of resorting to
 102.180 +images which aside from generally being a fixed resolution tend to obscure
 102.181 +the original semantics of the elements they replace. This is especially true
 102.182 +for effects applied to text.
 102.183 +</p>
 102.184 +
 102.185 +<p>
 102.186 +
 102.187 +</p>
 102.188 +
 102.189 +<p>Note that even though this specification references parts of <a href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1
 102.190 +implementation. <span class="note">Add link to conformance classes here.</span>
 102.191 +</p>
 102.192 +
 102.193 +<p>This document is normative. </p>
 102.194 +
 102.195 +<p>This document contains explicit conformance criteria that overlap with
 102.196 +some RNG definitions in requirements. If there is any conflict between the
 102.197 +two, the explicit conformance criteria are the definitive reference. </p>
 102.198 +
 102.199 +<p>A filter effect consists of a series of graphics operations that are
 102.200 +applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical
 102.201 +result. The result of the filter effect is rendered to the target device
 102.202 +instead of the original source graphic. The following illustrates the
 102.203 +process:</p>
 102.204 +
 102.205 +<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400">
 102.206 +	<img alt="Image showing source graphic transformed by filter effect" src="examples/filters00.png" width="401" height="78"/>
 102.207 +</object></p>
 102.208 +<p class="view-as-svg"><a href="examples/filters00.svg">View this example as
 102.209 +SVG (SVG-enabled browsers only)</a><br/>
 102.210 + 	</p>
 102.211 +
 102.212 +<h2 id="FilterDefinitions">2 Definitions</h2>
 102.213 +  <p>When used in this specification, terms have the meanings assigned in this section.</p>
 102.214 +  <dl><dt id="TermNullFilter"><span class="SVG-TermDefine">null filter</span></dt><dd>
 102.215 +      <p>
 102.216 +      The null filter output is all transparent black pixels. If applied to an element it means
 102.217 +    that the element (and children if any) becomes invisible. Note that it does not affect event processing.
 102.218 +      </p>
 102.219 +    </dd><dt id="TermTransferFunctionElements"><span class="SVG-TermDefine">transfer function elements</span></dt><dd>
 102.220 +      <p>
 102.221 +      The set of elements,
 102.222 +        <a href=""><span class="element-name">‘feFuncR’</span></a>, <a href=""><span class="element-name">‘feFuncG’</span></a>, <a href=""><span class="element-name">‘feFuncB’</span></a>, <a href=""><span class="element-name">‘feFuncA’</span></a>, that define the transfer function for the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> filter primitive.
 102.223 +      </p>
 102.224 +    </dd><dt id="TermClientBoundingRect"><span class="SVG-TermDefine">bounding client rect</span></dt><dd>
 102.225 +    <p>
 102.226 +    The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 
 102.227 +    <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>].
 102.228 +    </p>
 102.229 +	</dd><dt id="TermCSSBoundingBox"><span class="SVG-TermDefine">CSS bounding box</span></dt><dd>
 102.230 +    <p>
 102.231 +    The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>].
 102.232 +    </p>
 102.233 +	</dd><dt id="TermCurrentUserCoordinateSystem"><span class="SVG-TermDefine">current user coordinate system</span></dt><dd>
 102.234 +    <p>
 102.235 +    For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 
 102.236 +    <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the
 102.237 +    <a href="#TermClientBoundingRect">bounding client rect</a>.
 102.238 +    </p>
 102.239 +    <p>
 102.240 +    For SVG elements see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>.
 102.241 +    </p>
 102.242 +	</dd><dt id="TermObjectBoundingBoxUnits"><span class="SVG-TermDefine">object bounding box units</span></dt><dd>
 102.243 +    For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 
 102.244 +    <p>
 102.245 +    For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 
 102.246 +    </p>
 102.247 +    <p>
 102.248 +    For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>.
 102.249 +    </p>
 102.250 +	</dd><dt id="TermFilterPrimitiveReference"><span class="SVG-TermDefine">&lt;filter-primitive-reference&gt;</span></dt><dd>
 102.251 +		<p>
 102.252 +    A string that identifies a particular filter primitive's output.
 102.253 +    </p>
 102.254 +	</dd><dt id="TermFilterPrimitiveElements"><span class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt><dd>
 102.255 +    <p>
 102.256 +		The set of elements that control the output of a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, particularly:  
 102.257 +			<a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
 102.258 +			<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, 
 102.259 +			<a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>,
 102.260 +			<a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>,
 102.261 +			<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>,
 102.262 +			<a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>,
 102.263 +			<a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>,
 102.264 +			<a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>,
 102.265 +			<a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>,
 102.266 +			<a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>,
 102.267 +			<a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>,
 102.268 +			<a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>,
 102.269 +			<a href="#feImageElement"><span class="element-name">‘feImage’</span></a>,
 102.270 +			<a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>,
 102.271 +			<a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>,
 102.272 +			<a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>,
 102.273 +			<a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>,
 102.274 +			<a href="#feTileElement"><span class="element-name">‘feTile’</span></a>,
 102.275 +			<a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>,
 102.276 +			<a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>,
 102.277 +			<a href="#feDiffuseSpecular"><span class="element-name">‘feDiffuseSpecular’</span></a>,
 102.278 +      <a href="#feUnsharpMaskElement"><span class="element-name">‘feUnsharpMask’</span></a>,
 102.279 +			<a href="#feCustom"><span class="element-name">‘feCustom’</span></a>.
 102.280 +      </p>
 102.281 +	</dd></dl>
 102.282 +  <br/>
 102.283 +
 102.284 +<h2 id="FilterElement">3 The <span class="element-name">‘filter’</span>
 102.285 +element</h2>
 102.286 +
 102.287 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘filter’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
 102.288 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermDescriptiveElement">descriptive elements</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#DescElement"><span class="element-name">‘desc’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/metadata.html#MetadataElement"><span class="element-name">‘metadata’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#TitleElement"><span class="element-name">‘title’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive elements</a><span class="expanding"> — <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a></li><li><a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></li><li><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></li><li><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></li><li><a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a></li><li><a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li><li><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a></li><li><a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a></li><li><a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a></li><li><a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></li><li><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></li><li><a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a></li></ul></dd></dl></div>
 102.289 +
 102.290 +
 102.291 +
 102.292 +<p>The description of the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
 102.293 +follows:</p>
 102.294 +
 102.295 +<div class="adef-list">
 102.296 +<p><em>Attribute definitions:</em></p>
 102.297 +<dl><dt id="FilterElementFilterUnitsAttribute"><span class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> |
 102.298 +  <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveUnitsAttribute"><span class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> |
 102.299 +  <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the various length values within
 102.300 +      the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> and for the attributes that define the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/>
 102.301 +      If <span class="attr-value">primitiveUnits="userSpaceOnUse"</span>, any length values
 102.302 +      within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user
 102.303 +      coordinate system</a> in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.304 +      element is referenced (i.e., the user coordinate system for the element
 102.305 +      referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 102.306 +      property).<br/>
 102.307 +      If <span class="attr-value">primitiveUnits="objectBoundingBox"</span>, then any length
 102.308 +      values within the filter definitions represent fractions or percentages
 102.309 +      of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box
 102.310 +      units</a>). Note that if only one number was specified in a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a> value
 102.311 +	  this number is expanded out before the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> computation takes place.
 102.312 +	  <br/>
 102.313 +      If attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> is not
 102.314 +      specified, then the effect is as if a value of <span class="attr-value">userSpaceOnUse</span> were specified.<br/>
 102.315 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterMarginUnitsAttribute"><span class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> |
 102.316 +  <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveMarginUnitsAttribute"><span class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> |
 102.317 +  <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the margin attributes within the
 102.318 +      <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> which is used for determining the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/>
 102.319 +      If <span class="attr-value">primitiveMarginUnits="userSpaceOnUse"</span>, any margin
 102.320 +      attribute values within the filter definitions represent values in the
 102.321 +      current user coordinate system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.322 +      element is referenced (i.e., the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element
 102.323 +      referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 102.324 +      property).<br/>
 102.325 +      If <span class="attr-value">primitiveMarginUnits="objectBoundingBox"</span>, then any
 102.326 +      margin attribute values within the filter definitions represent
 102.327 +      fractions or percentages of the bounding box on the referencing element
 102.328 +      (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).<br/>
 102.329 +
 102.330 +	  <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> is <span class="attr-value">userSpaceOnUse</span></span>.<br/>
 102.331 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementXAttribute">
 102.332 +  <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementYAttribute">
 102.333 +  <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementWidthAttribute"><span class="adef">width</span> =
 102.334 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHeightAttribute"><span class="adef">height</span> =
 102.335 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterPrimitiveMxAttribute">
 102.336 +  <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>The margin delta for the x coordinate of the subregion which
 102.337 +      restricts calculation and rendering of the given filter primitive. If
 102.338 +      this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 102.339 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMyAttribute">
 102.340 +  <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>The margin delta for the y coordinate of the subregion which
 102.341 +      restricts calculation and rendering of the given filter primitive. If
 102.342 +      this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br/>
 102.343 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMwAttribute">
 102.344 +  <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>The margin delta for the width of the subregion which restricts
 102.345 +      calculation and rendering of the given filter primitive. If this
 102.346 +      attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 102.347 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMhAttribute">
 102.348 +  <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>The margin delta for the height of the subregion which restricts
 102.349 +      calculation and rendering of the given filter primitive. If this
 102.350 +      attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 102.351 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterResAttribute"><span class="adef">filterRes</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"
 102.352 +  </dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span>
 102.353 +  = "<span class="attr-value">&lt;IRI&gt;</span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 102.354 +      to another <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element within
 102.355 +      the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermSVGDocumentFragment"><span class="svg-term">SVG document fragment</span></a>. Any attributes which are defined on
 102.356 +      the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which
 102.357 +      are not defined on this element are inherited by this element. If this
 102.358 +      element has no defined filter nodes, and the referenced element has
 102.359 +      defined filter nodes (possibly due to its own <span class="attr-name">href</span> attribute), then this element inherits
 102.360 +      the filter nodes defined from the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. Inheritance can be
 102.361 +      indirect to an arbitrary level; thus, if the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element inherits attributes or its
 102.362 +      filter node specification due to its own <span class="attr-name">href</span> attribute, then the current element can
 102.363 +      inherit those attributes or filter node specifications. 
 102.364 +
 102.365 +      <div class="note">
 102.366 +      This attribute is deprecated and should not be used, it's included for
 102.367 +      backwards compatibility reasons only.</div>
 102.368 +      <br/>
 102.369 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
 102.370 +</div>
 102.371 +
 102.372 +<p>Properties inherit into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.373 +element from its ancestors; properties do <em>not</em> inherit from the
 102.374 +element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.375 +element.</p>
 102.376 +
 102.377 +<p><a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are never rendered
 102.378 +directly; their only usage is as something that can be referenced using the
 102.379 +<a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 102.380 +property. The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property does not
 102.381 +apply to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are not directly rendered even
 102.382 +if the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property is set to a value
 102.383 +other than <span class="prop-value">none</span>, and <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are available for referencing
 102.384 +even when the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element or any of its ancestors is set
 102.385 +to <span class="prop-value">none</span>.</p>
 102.386 +<br/>
 102.387 +
 102.388 +<h2 id="FilterProperty">4 The <span class="prop-name">‘filter’</span>
 102.389 +property</h2>
 102.390 +
 102.391 +<p>The description of the <span class="prop-name">‘filter’</span> property is
 102.392 +as follows:</p>
 102.393 +
 102.394 +<div class="propdef">
 102.395 +<dl><dt id="propdef-filter"><span class="propdef-title prop-name">‘filter’</span></dt><dd>
 102.396 +      <table summary="filter property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a> | none | <a class="noxref" href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>none</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>All elements
 102.397 +
 102.398 +              .</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
 102.399 +    </dd></dl>
 102.400 +</div>
 102.401 +
 102.402 +<dl><dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a></span></dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 102.403 +      to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which defines the
 102.404 +      filter effects that shall be applied to this element.
 102.405 +    </dd><dt><span class="prop-value">none</span></dt><dd>Do not apply any filter effects to this element.</dd></dl>
 102.406 +
 102.407 +<p>If a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property references a non-existent object or the referenced  
 102.408 +object is not a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then the <a href="#TermNullFilter"><span class="svg-term">null filter</span></a> will be applied instead.
 102.409 +</p>
 102.410 +
 102.411 +<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 
 102.412 +<p>
 102.413 +The application of the <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 
 102.414 +that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 
 102.415 +and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole.
 102.416 +</p>
 102.417 +<p>
 102.418 +The <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property has no effect on the geometry of the target element's CSS boxes, even though <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> can cause painting outside of an element's border-box. 
 102.419 +</p>
 102.420 +<p>
 102.421 +The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 
 102.422 +first any filter effect is applied, then any clipping, masking and/or group opacity. 
 102.423 +These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> has no effect on mouse event hit-testing.
 102.424 +</p>
 102.425 +
 102.426 +<br/>
 102.427 +
 102.428 +
 102.429 +<h2 id="FilterEffectsRegion">5 Filter effects region</h2>
 102.430 +
 102.431 +<p>A <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.432 +element can define a region on the canvas to which a given filter effect
 102.433 +applies and can provide a resolution for any intermediate continuous tone
 102.434 +images used to process any raster-based <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 
 102.435 +
 102.436 +<h3 id="filter-margins">5.1 Filter Region extensions</h3>
 102.437 +
 102.438 +<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span>
 102.439 +defines the area upon which it applies. This makes it difficult to develop a
 102.440 +generic filter that can be applied to arbitrary graphics, since the filter
 102.441 +must define a large enough area to cover any graphical object to which it is
 102.442 +applied. An example of this is a generic "drop shadow" filter, which is
 102.443 +commonly specified as a combination of a Gaussian blur <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>) that is offset <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>) and then composed <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>) with the original source graphic.
 102.444 +Since the shadow has to extend beyond the original graphic's boundaries, the
 102.445 +filter must be defined to have a larger area than the original graphic.
 102.446 +Overestimating this margin has a negative effect on performance, since the
 102.447 +complex filter operation has to touch a larger amount of user space (ie.
 102.448 +pixels). </p>
 102.449 +
 102.450 +<p>In order to solve this problem this spec allows additional control over
 102.451 +the filter region. The outer filter region is expressed by delta to the
 102.452 +<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 
 102.453 +<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 
 102.454 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, 
 102.455 +<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>
 102.456 + of the input filter region. </p>
 102.457 +
 102.458 +<p>In particular, the <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>, <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a>, 
 102.459 +<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are
 102.460 +added to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. The <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> specifies the coordinate space of
 102.461 +the margin attributes, which are used to increase or decrease the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element's 
 102.462 +<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 
 102.463 +<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 
 102.464 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and 
 102.465 +<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>
 102.466 +attributes (once they have been calculated). The <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> specifies the units for the
 102.467 +new margin attributes on the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, also named 
 102.468 +<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, 
 102.469 +<a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 
 102.470 +<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, 
 102.471 +<a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>. 
 102.472 +These margins attribute override those set on the parent <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 
 102.473 +Note that this doesn't mean that a  can expand the filter region itself, just that the
 102.474 +coordinate system used for filter primitive's margin attributes can be
 102.475 +different than the one used for the margin attributes on the 
 102.476 +<a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. </p>
 102.477 +
 102.478 +<p>An example of the new attributes, which defines a generic drop shadow
 102.479 +filter: </p>
 102.480 +<pre class="examplesource">	&lt;filter id="dropShadow" x="0" y="0" width="1" height="1"
 102.481 +			  filterMarginUnits="userSpaceOnUse"
 102.482 +			  mx="0" my="0" mw="5" mh="5" &gt;
 102.483 +		  &lt;feGaussianBlur stdDeviation="2" in="SourceAlpha" /&gt;
 102.484 +		  &lt;feOffset dx="2" /&gt;
 102.485 +		  &lt;feMerge&gt;
 102.486 +			   &lt;feMergeNode /&gt;
 102.487 +			   &lt;feMergeNode in="SourceGraphic" /&gt;
 102.488 +		  &lt;/feMerge&gt;
 102.489 +	&lt;/filter&gt; </pre>
 102.490 +
 102.491 +<p>In the above example, the filter region by default covers the entire
 102.492 +bounds of the object (which is not enough to show the shadow). Adding the new
 102.493 +margins extends the width and height by 5 user units each, which is always
 102.494 +enough to display the blur (which has a standard deviation of 2 user units)
 102.495 +and offset (which is another 2 units). </p>
 102.496 +
 102.497 +The <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.498 +element has the following attributes which work together to define the filter
 102.499 +effects region:</p>
 102.500 +
 102.501 + <dl class="definitions unemphasized-names"><dt id="FilterUnitsAttribute"><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></dt><dd>
 102.502 +	    <p>Defines the coordinate system for attributes <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 102.503 +	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>.</p>
 102.504 +    
 102.505 +		<p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 102.506 +	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent values in the current user coordinate
 102.507 +	    system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the
 102.508 +	    user coordinate system for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.509 +	    element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p>
 102.510 +
 102.511 +	    <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 102.512 +	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent fractions or percentages of the
 102.513 +	    bounding box on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p>
 102.514 +
 102.515 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> is <span class="attr-value">objectBoundingBox</span>.</p>
 102.516 +
 102.517 +	    <p><span class="anim-target">Animatable: yes.</span></p>
 102.518 +	</dd><dt id="FilterRegionXYWidthHeightAttributes"><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></dt><dd>
 102.519 +		<p>These attributes define a rectangular region on the canvas to which this filter applies.</p>
 102.520 +    	<p>The amount of memory and processing time required to apply the filter are
 102.521 +    	   related to the size of this rectangle and the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute of the filter.</p>
 102.522 +		<p>The coordinate system for these attributes depends on the value for attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a>.</p>
 102.523 +		<p>The bounds of this rectangle act as a hard clipping region for each <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> 
 102.524 +		   included with a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, if the effect of
 102.525 +    	   a given filter primitive would extend beyond the bounds of the rectangle
 102.526 +    	   (this sometimes happens when using a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive with a
 102.527 +    	   very large <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>), parts of the effect will get clipped.</p>
 102.528 +    
 102.529 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> and <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> is <span class="attr-value">-10%</span>.</p>
 102.530 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> is <span class="attr-value">120%</span>.</p>
 102.531 +    	<p>Negative or zero values for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> or <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> disable rendering of the element which
 102.532 +		   referenced the filter. </p>
 102.533 +		
 102.534 +    	<p><span class="anim-target">Animatable: yes.</span></p>
 102.535 +	</dd><dt id="FilterMarginAttribute"><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></dt><dd>
 102.536 +		<p>Defines the coordinate system for attributes <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 102.537 +    		<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>.</p>
 102.538 +		<p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 102.539 +		    <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent values in the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>
 102.540 +		    in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the
 102.541 +		    <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.542 +		    element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p>
 102.543 +		<p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 102.544 +	  		<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent fractions or percentages of the 
 102.545 +    		on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p>
 102.546 +    	<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> is 
 102.547 +			<span class="attr-value">userSpaceOnUse</span>.</p>
 102.548 +		<p><span class="anim-target">Animatable: yes.</span></p>
 102.549 +	</dd><dt id="FilterRegionMyAttribute"><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></dt><dd>
 102.550 +    	<p>Defines the deltas to the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> of the filter region.</p>
 102.551 +	
 102.552 +		<p>After the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> have been calculated for the 
 102.553 +			<a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> the <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are calculated and added 
 102.554 +			to the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 
 102.555 +			<a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> has a negative or zero width or height, the rendering of the element which 
 102.556 +			referenced the filter is disabled.</span></p>
 102.557 +	
 102.558 +    	<p>The coordinate system for these attributes depends on the value for
 102.559 +    		attribute <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>.</p>
 102.560 +
 102.561 +    	<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> is <span class="attr-value">0</span>.</p>
 102.562 +    	<p><span class="anim-target">Animatable: yes.</span></p>
 102.563 +	</dd><dt id="FilterRegionFilterRes"><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></dt><dd>
 102.564 +		<p>Defines the width and height of the intermediate
 102.565 +	    images in pixels. If not provided, then a reasonable default resolution
 102.566 +	    appropriate for the target device will be used. (For displays, an
 102.567 +	    appropriate display resolution, preferably the current display's pixel
 102.568 +	    resolution, is the default. For printing, an appropriate common printer
 102.569 +	    resolution, such as 1200dpi, is the default.)</p>
 102.570 +	    <p>Care should be taken when assigning a non-default value to this
 102.571 +	    attribute. Too small of a value may result in unwanted pixelation in the
 102.572 +	    result. Too large of a value may result in slow processing and large
 102.573 +	    memory usage.</p>
 102.574 +	    <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p>
 102.575 +    	<p><span class="anim-target">Animatable: yes.</span></p>
 102.576 +	</dd></dl>
 102.577 +
 102.578 +<p>Note that both of the two possible value for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> (i.e., <span class="attr-value">objectBoundingBox</span> and <span class="attr-value">userSpaceOnUse</span>) result in a <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> whose
 102.579 +coordinate system has its X-axis and Y-axis each parallel to the X-axis and
 102.580 +Y-axis, respectively, of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element to which
 102.581 +the filter will be applied.</p>
 102.582 +
 102.583 +<p class="note implementation">Sometimes implementers can achieve faster performance when the filter
 102.584 +region can be mapped directly to device pixels; thus, for best performance on
 102.585 +display devices, it is suggested that authors define their region such that
 102.586 +the user agent can align the filter region pixel-for-pixel with the
 102.587 +background. In particular, for best filter effects performance, avoid
 102.588 +rotating or skewing the user coordinate system. Explicit values for attribute
 102.589 +<a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> can either help or harm performance.
 102.590 +If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is smaller than the automatic
 102.591 +(i.e., default) filter resolution, then filter effect might have faster
 102.592 +performance (usually at the expense of quality). If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is larger than the automatic (i.e.,
 102.593 +default) filter resolution, then filter effects performance will usually be
 102.594 +slower.</p>
 102.595 +
 102.596 +<p class="note authoring">It is often necessary to provide padding space because the filter effect
 102.597 +might impact bits slightly outside the tight-fitting  on a given
 102.598 +object. For these purposes, it is possible to provide negative percentage
 102.599 +values for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> and percentages values greater than <span class="attr-value">100%</span> for
 102.600 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>. This, for example, is why the defaults for
 102.601 +the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%"
 102.602 +height="120%"</span>.</p>
 102.603 +
 102.604 +<h2 id="AccessBackgroundImage">6 Accessing the background image</h2>
 102.605 +
 102.606 +<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, which each represent an image
 102.607 +snapshot of the canvas under the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
 102.608 +is invoked. <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> represents both
 102.609 +the color values and alpha channel of the canvas (i.e., RGBA pixel values),
 102.610 +whereas <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> represents only the
 102.611 +alpha channel.</p>
 102.612 +
 102.613 +<p>Implementations 
 102.614 +will often need to maintain supplemental background image buffers in order to
 102.615 +support the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images. Sometimes,
 102.616 +the background image buffers will contain an in-memory copy of the
 102.617 +accumulated painting operations on the current canvas.</p>
 102.618 +
 102.619 +<p>Because in-memory image buffers can take up significant system resources, 
 102.620 +content must explicitly indicate to the 
 102.621 +user agent that the document needs access to the background image before <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images can be used.
 102.622 +</p>
 102.623 +
 102.624 +A background image is what's been <i>rendered before</i> the current element.
 102.625 + For SVG, that uses the painter's algorithm, <i>rendered before</i> means
 102.626 +all of the prior elements in pre order traversal previous to the element to
 102.627 +which the filter is applied.
 102.628 +
 102.629 +<p>The property which enables access to the background image is
 102.630 +<a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a>:</p>
 102.631 +
 102.632 +
 102.633 +<div class="propdef">
 102.634 +<dl><dt id="EnableBackgroundProperty"><span class="propdef-title prop-name">‘enable-background’</span></dt><dd>
 102.635 +      <table summary="enable-background property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>accumulate | new [ &lt;x&gt; &lt;y&gt; &lt;width&gt;
 102.636 +              &lt;height&gt; ] | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>accumulate</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>Typically elements that can contain renderable elements. 
 102.637 +              language is responsible for defining the applicable set of
 102.638 +              elements.
 102.639 +              For SVG: <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a></td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>no</td></tr></tbody></table>
 102.640 +    </dd></dl>
 102.641 +</div>
 102.642 +<p><a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> is only
 102.643 +  applicable to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a>
 102.644 +  and specifies how the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">SVG user agent</span></a> manages the accumulation
 102.645 +  of the background image.</p>
 102.646 +
 102.647 +<p>A value of <strong>new</strong> indicates two things:</p>
 102.648 +<ul><li>It enables the ability of children of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.649 +    element to access the background image.</li><li>It indicates that a new (i.e., initially transparent black) background
 102.650 +    image canvas is established and that (in effect) all children of the
 102.651 +    current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.652 +    element shall be rendered into the new background image canvas in
 102.653 +    addition to being rendered onto the target device.</li></ul>
 102.654 +
 102.655 +<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the
 102.656 +initial/default value) depends on context:</p>
 102.657 +<ul><li>If an ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.658 +    element has a property value of <span class="attr-value">'enable-background:new'</span>, then all
 102.659 +    renderable child elements of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.660 +    element are rendered both onto the parent <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.661 +    element's background image canvas and onto the target device.</li><li>Otherwise, there is no current background image canvas, so it is only
 102.662 +    necessary to render <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a>
 102.663 +    the renderable elements onto the target device. (No need to render to the
 102.664 +    background image canvas.)</li></ul>
 102.665 +
 102.666 +<p>If a filter effect specifies either the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> or the 
 102.667 +	<a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images and no
 102.668 +ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.669 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background
 102.670 +image request is technically in error. Processing will proceed without
 102.671 +interruption (i.e., no error message) and a transparent black image shall be
 102.672 +provided in response to the request.</p>
 102.673 +
 102.674 +<p>The optional
 102.675 +<strong>&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt;</strong> 
 102.676 +<span class="specissue">ISSUE: define the type of each of these, probably &lt;number&gt;</span>
 102.677 +	parameters
 102.678 +on the <span class="attr-value">new</span> value indicate the subregion of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 102.679 + element to which <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> applies' user space where access to the
 102.680 +background image is allowed to happen. These parameters enable the user
 102.681 +agent potentially to allocate smaller temporary image buffers than the
 102.682 +default values, which might require the user agent to allocate buffers as
 102.683 +large as the current viewport. Thus, the values
 102.684 +&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt; act as a clipping rectangle
 102.685 +on the background image canvas. If more than zero but less than four of the
 102.686 +values &lt;x&gt;,&lt;y&gt;,&lt;width&gt; and &lt;height&gt; are specified or
 102.687 +if negative or zero values are specified for &lt;width&gt; or &lt;height&gt;,
 102.688 +<a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> are processed as if background
 102.689 +image processing were not enabled. </p>
 102.690 +
 102.691 +<h3 id="AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</h3>
 102.692 +<p>This section only applies to the SVG definition of enable-background.</p>
 102.693 +
 102.694 +<p>Assume you have an element E in the document and that E has a series of
 102.695 +ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note:
 102.696 +A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding
 102.697 +temporary background image offscreen buffer BUF<sub>i</sub>. The contents of
 102.698 +the <em>background image</em> available to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> referenced by E is defined as
 102.699 +follows:</p>
 102.700 +<ul><li>Find the element A<sub>i</sub> with the smallest subscript i (including
 102.701 +    A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> property has the value
 102.702 +    <span class="prop-value">new</span>. (Note: if there is no such ancestor
 102.703 +    element, then there is no background image available to E, in which case
 102.704 +    a transparent black image will be used as E's background image.)</li><li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to
 102.705 +    transparent black. Render all children of A<sub>i</sub> up to but not
 102.706 +    including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted,
 102.707 +    then filtered, clipped, masked and composited using the various painting,
 102.708 +    filtering, clipping, masking and object opacity settings on the given
 102.709 +    child. Any filter effects, masking and group opacity that might be set on
 102.710 +    A<sub>i</sub> do <em>not</em> apply when rendering the children of
 102.711 +    A<sub>i</sub> into BUF<sub>i</sub>.<br/>
 102.712 +    (Note that for the case of A<sub>0</sub>=E, the graphical contents of E
 102.713 +    are not rendered into BUF<sub>1</sub> and thus are not part of the
 102.714 +    background image available to E. Instead, the graphical contents of E are
 102.715 +    available via the <a href="#SourceGraphic">SourceGraphic</a> and <a href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li><li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite
 102.716 +    BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li><li>The accumulated result (i.e., BUF<sub>n</sub>) represents the
 102.717 +    background image available to E.</li></ul>
 102.718 +
 102.719 +<pre class="xml">&lt;?xml version="1.0" standalone="no"?&gt;
 102.720 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
 102.721 +  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
 102.722 +&lt;svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
 102.723 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
 102.724 +  &lt;title&gt;Example enable-background01&lt;/title&gt;
 102.725 +  &lt;desc&gt;This test case shows five pictures which illustrate the rules
 102.726 +        for background image processing.&lt;/desc&gt;
 102.727 +
 102.728 +  &lt;defs&gt;
 102.729 +    &lt;filter id="ShiftBGAndBlur" 
 102.730 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"&gt;
 102.731 +      &lt;desc&gt;
 102.732 +        This filter discards the SourceGraphic, if any, and just produces
 102.733 +        a result consisting of the BackgroundImage shifted down 125 units
 102.734 +        and then blurred.
 102.735 +      &lt;/desc&gt;
 102.736 +      &lt;feOffset in="BackgroundImage" dx="0" dy="125" /&gt;
 102.737 +      &lt;feGaussianBlur stdDeviation="8" /&gt;
 102.738 +    &lt;/filter&gt;
 102.739 +    &lt;filter id="ShiftBGAndBlur_WithSourceGraphic" 
 102.740 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"&gt;
 102.741 +      &lt;desc&gt;
 102.742 +        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
 102.743 +        and then renders the SourceGraphic on top of the shifted/blurred background.
 102.744 +      &lt;/desc&gt;
 102.745 +      &lt;feOffset in="BackgroundImage" dx="0" dy="125" /&gt;
 102.746 +      &lt;feGaussianBlur stdDeviation="8" result="blur" /&gt;
 102.747 +      &lt;feMerge&gt;
 102.748 +        &lt;feMergeNode in="blur"/&gt;
 102.749 +        &lt;feMergeNode in="SourceGraphic"/&gt;
 102.750 +      &lt;/feMerge&gt;
 102.751 +    &lt;/filter&gt;
 102.752 +  &lt;/defs&gt;
 102.753 +
 102.754 +  &lt;g transform="translate(0,0)"&gt;
 102.755 +    &lt;desc&gt;The first picture is our reference graphic without filters.&lt;/desc&gt;
 102.756 +    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 102.757 +    &lt;g opacity=".5"&gt;
 102.758 +      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 102.759 +      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 102.760 +    &lt;/g&gt;
 102.761 +    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 102.762 +  &lt;/g&gt;
 102.763 +
 102.764 +  &lt;g enable-background="new" transform="translate(270,0)"&gt;
 102.765 +    &lt;desc&gt;The second adds an empty 'g' element which invokes ShiftBGAndBlur.&lt;/desc&gt;
 102.766 +    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 102.767 +    &lt;g opacity=".5"&gt;
 102.768 +      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 102.769 +      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 102.770 +    &lt;/g&gt;
 102.771 +    &lt;g filter="url(#ShiftBGAndBlur)"/&gt;
 102.772 +    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 102.773 +  &lt;/g&gt;
 102.774 +
 102.775 +  &lt;g enable-background="new" transform="translate(540,0)"&gt;
 102.776 +    &lt;desc&gt;The third invokes ShiftBGAndBlur on the inner group.&lt;/desc&gt;
 102.777 +    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 102.778 +    &lt;g filter="url(#ShiftBGAndBlur)" opacity=".5"&gt;
 102.779 +      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 102.780 +      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 102.781 +    &lt;/g&gt;
 102.782 +    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 102.783 +  &lt;/g&gt;
 102.784 +
 102.785 +  &lt;g enable-background="new" transform="translate(810,0)"&gt;
 102.786 +    &lt;desc&gt;The fourth invokes ShiftBGAndBlur on the triangle.&lt;/desc&gt;
 102.787 +    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 102.788 +    &lt;g opacity=".5"&gt;
 102.789 +      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 102.790 +      &lt;polygon points="160,25 160,125 240,75" fill="blue"
 102.791 +               filter="url(#ShiftBGAndBlur)"/&gt;
 102.792 +    &lt;/g&gt;
 102.793 +    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 102.794 +  &lt;/g&gt;
 102.795 +
 102.796 +  &lt;g enable-background="new" transform="translate(1080,0)"&gt;
 102.797 +    &lt;desc&gt;The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.&lt;/desc&gt;
 102.798 +    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 102.799 +    &lt;g opacity=".5"&gt;
 102.800 +      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 102.801 +      &lt;polygon points="160,25 160,125 240,75" fill="blue"
 102.802 +               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/&gt;
 102.803 +    &lt;/g&gt;
 102.804 +    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 102.805 +  &lt;/g&gt;
 102.806 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/enable-background-01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/enable-background-01.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 102.807 +
 102.808 +<p>The example above contains five parts, described as follows:</p>
 102.809 +<ol><li>The first set is the reference graphic. The reference graphic consists
 102.810 +    of a red rectangle followed by a 50% transparent <span class="element-name">‘g’</span>
 102.811 +    element. Inside the <span class="element-name">‘g’</span>
 102.812 +    is a green circle that partially overlaps the rectangle and a a blue
 102.813 +    triangle that partially overlaps the circle. The three objects are then
 102.814 +    outlined by a rectangle stroked with a thin blue line. No filters are
 102.815 +    applied to the reference graphic.</li><li>The second set enables background image processing and adds an empty
 102.816 +    <span class="element-name">‘g’</span>
 102.817 +    element which invokes the ShiftBGAndBlur filter. This filter takes the
 102.818 +    current accumulated background image (i.e., the entire reference graphic)
 102.819 +    as input, shifts its offscreen down, blurs it, and then writes the result
 102.820 +    to the canvas. Note that the offscreen for the filter is initialized to
 102.821 +    transparent black, which allows the already rendered rectangle, circle
 102.822 +    and triangle to show through after the filter renders its own result to
 102.823 +    the canvas.</li><li>The third set enables background image processing and instead invokes
 102.824 +    the ShiftBGAndBlur filter on the inner <span class="element-name">‘g’</span>
 102.825 +    element. The accumulated background at the time the filter is applied
 102.826 +    contains only the red rectangle. Because the children of the inner <span class="element-name">‘g’</span>
 102.827 +    (i.e., the circle and triangle) are not part of the inner <span class="element-name">‘g’</span>
 102.828 +    element's background and because ShiftBGAndBlur ignores SourceGraphic,
 102.829 +    the children of the inner <span class="element-name">‘g’</span>
 102.830 +    do not appear in the result.</li><li>The fourth set enables background image processing and invokes the
 102.831 +    ShiftBGAndBlur on the <span class="element-name">‘polygon’</span>
 102.832 +    element that draws the triangle. The accumulated background at the time
 102.833 +    the filter is applied contains the red rectangle plus the green circle
 102.834 +    ignoring the effect of the <span class="prop-name">‘opacity’</span>
 102.835 +    property on the inner <span class="element-name">‘g’</span>
 102.836 +    element. (Note that the blurred green circle at the bottom does not let
 102.837 +    the red rectangle show through on its left side. This is due to ignoring
 102.838 +    the effect of the <span class="prop-name">‘opacity’</span>
 102.839 +    property.) Because the triangle itself is not part of the accumulated
 102.840 +    background and because ShiftBGAndBlur ignores SourceGraphic, the triangle
 102.841 +    does not appear in the result.</li><li>The fifth set is the same as the fourth except that filter
 102.842 +    ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur.
 102.843 +    ShiftBGAndBlur_WithSourceGraphic performs the same effect as
 102.844 +    ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted,
 102.845 +    blurred background image. In this case, SourceGraphic is the blue
 102.846 +    triangle; thus, the result is the same as in the fourth case except that
 102.847 +    the blue triangle now appears.</li></ol>
 102.848 +
 102.849 +
 102.850 +<h2 id="FilterPrimitivesOverview">7 Filter primitives overview</h2>
 102.851 +
 102.852 +<h3 id="FilterPrimitivesOverviewIntro">7.1 Overview</h3>
 102.853 +
 102.854 +<p>This section describes the various filter primtives that can be assembled
 102.855 +to achieve a particular filter effect.</p>
 102.856 +
 102.857 +<p>Unless otherwise stated, all image filters operate on premultiplied RGBA
 102.858 +samples. Filters which work more naturally on non-premultiplied data
 102.859 +(<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> and <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>) will temporarily undo and redo
 102.860 +premultiplication as specified. All raster effect filtering operations take 1
 102.861 +to N input RGBA images, additional attributes as parameters, and produce a
 102.862 +single output RGBA image.</p>
 102.863 +
 102.864 +<p>The RGBA result from each filter primitive will be clamped into the
 102.865 +allowable ranges for colors and opacity values. Thus, for example, the result
 102.866 +from a given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will have any negative color values or opacity
 102.867 +values adjusted up to color/opacity of zero.</p>
 102.868 +
 102.869 +<p id="filtersColorSpace">The color space in which a particular <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> performs its
 102.870 +operations is determined by the value of property <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> on the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter
 102.871 +primitive</span></a>. A different property, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> determines the color space for
 102.872 +other color operations. Because these two properties have different initial
 102.873 +values (<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> has an
 102.874 +initial value of <span class="prop-value">linearRGB</span> whereas <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results
 102.875 +(e.g., when coordinating gradient interpolation with a filtering operation)
 102.876 +it will be necessary to explicitly set <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> to <span class="prop-value">linearRGB</span> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> to <span class="prop-value">sRGB</span> on particular elements. Note that the examples
 102.877 +below do not explicitly set either <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a>, so the initial values for these properties apply to the examples.</p>
 102.878 +
 102.879 +<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> result in undefined pixels. For example,
 102.880 +filter primitive <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the
 102.881 +right, leaving undefined pixels at the top and left. In these cases, the
 102.882 +undefined pixels are set to transparent black.</span></p>
 102.883 +
 102.884 +<h3 id="CommonAttributes">7.2 Common attributes</h3>
 102.885 +
 102.886 +<p>The following attributes are available for most of the filter
 102.887 +primitives:</p>
 102.888 +
 102.889 +<div class="adef-list">
 102.890 +<p><em>Attribute definitions:</em></p>
 102.891 +<dl><dt id="FilterPrimitiveXAttribute">
 102.892 +  <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The minimum x coordinate for the subregion which restricts
 102.893 +      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 102.894 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p>
 102.895 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.896 +	</dd><dt id="FilterPrimitiveYAttribute">
 102.897 +  <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The minimum y coordinate for the subregion which restricts
 102.898 +      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. </p>
 102.899 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p>
 102.900 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.901 +	</dd><dt id="FilterPrimitiveWidthAttribute">
 102.902 +  <span class="adef">width</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The width of the subregion which restricts calculation and rendering
 102.903 +      of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 102.904 +      <p>A negative or zero value disables the effect of the given filter
 102.905 +      primitive (i.e., the result is a transparent black image).</p>
 102.906 +	  <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p>
 102.907 +      <p><span class="anim-target">Animatable: yes.</span></p>
 102.908 +	</dd><dt id="FilterPrimitiveHeightAttribute">
 102.909 +  <span class="adef">height</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The height of the subregion which restricts calculation and rendering
 102.910 +      of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 102.911 +      <p>A negative or zero value disables the effect of the given filter
 102.912 +      primitive (i.e., the result is a transparent black image).</p>
 102.913 +	  <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p>
 102.914 +      <p><span class="anim-target">Animatable: yes.</span></p>
 102.915 +	</dd><dt id="FilterPrimitiveMxAttribute">
 102.916 +  <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The margin delta for the x coordinate of the subregion which
 102.917 +      	restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 102.918 +		see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 
 102.919 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p>
 102.920 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.921 +	</dd><dt id="FilterPrimitiveMyAttribute">
 102.922 +  <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The margin delta for the y coordinate of the subregion which
 102.923 +      restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 102.924 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p>
 102.925 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.926 +	</dd><dt id="FilterPrimitiveMwAttribute">
 102.927 +  <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The margin delta for the width of the subregion which restricts
 102.928 +      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 
 102.929 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p>
 102.930 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.931 +	</dd><dt id="FilterPrimitiveMhAttribute">
 102.932 +  <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The margin delta for the height of the subregion which restricts
 102.933 +      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 102.934 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p>
 102.935 +      	<p><span class="anim-target">Animatable: yes.</span></p>
 102.936 +	</dd><dt id="FilterPrimitiveResultAttribute">
 102.937 +  <span class="adef">result</span> =
 102.938 +  "<em><a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a></em>"</dt><dd><p>Assigned name for this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. If supplied, then graphics
 102.939 +      that result from processing this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> can be referenced by
 102.940 +      an <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute on a subsequent filter
 102.941 +      primitive within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. If no value is
 102.942 +      provided, the output will only be available for re-use as the implicit
 102.943 +      input into the next <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> if that <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> provides
 102.944 +      no value for its <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.</p>
 102.945 +      <p>Note that a <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> is not an XML
 102.946 +      ID; instead, a <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> is only
 102.947 +      meaningful within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element and thus have only
 102.948 +      local scope. It is legal for the same
 102.949 +      <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> to appear multiple times
 102.950 +      within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. When referenced, the
 102.951 +      <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> will use the closest
 102.952 +      preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the given result.</p>
 102.953 +      <p><span class="anim-target">Animatable: yes.</span></p>
 102.954 +	</dd><dt id="FilterPrimitiveInAttribute">
 102.955 +  <span class="adef">in</span> = "<em><a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> | <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> | <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> | <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> | <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> | <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> |
 102.956 +  <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a></em>"</dt><dd><p>Identifies input for the given filter primitive. The value can be
 102.957 +      either one of six keywords or can be a string which matches a previous
 102.958 +      <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> attribute value within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 102.959 +      element. If no value is provided and this is the first <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 102.960 +	then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>
 102.961 +      as its input. If no value is provided and this is a subsequent <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 102.962 +	then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use the result from the
 102.963 +      previous <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> as its input.</p> 
 102.964 +      <p>If the value for <span class="attr-name">result</span> appears
 102.965 +      multiple times within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then a reference to
 102.966 +      that result will use the closest preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the
 102.967 +      given value for attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a>.
 102.968 +      Forward references to results are not allowed, and will be treated as
 102.969 +      if no result was specified. </p>
 102.970 +      <p>Definitions for the six keywords: </p>
 102.971 +      <dl><dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt><dd><p>This keyword represents the graphics elements
 102.972 +            that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. For raster
 102.973 +            effects <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, the graphics elements
 102.974 +            will be rasterized into an initially clear RGBA raster in image
 102.975 +            space. Pixels left untouched by the original graphic will be left
 102.976 +            clear. The image is specified to be rendered in linear RGBA
 102.977 +            pixels. The alpha channel of this image captures any
 102.978 +            anti-aliasing specified by SVG. (Since the raster is linear, the
 102.979 +            alpha channel of this image will represent the exact percent
 102.980 +            coverage of each pixel.)</p></dd><dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt><dd><p>This keyword represents the graphics elements
 102.981 +            that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 
 102.982 +			<a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> has all of the same rules
 102.983 +            as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that only the
 102.984 +            alpha channel is used. The input image is an RGBA image
 102.985 +            consisting of implicitly black color values for the RGB channels,
 102.986 +            but whose alpha channel is the same as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>.</p>
 102.987 +			<p class="note implementation">If this option is
 102.988 +            used, then some implementations might need to rasterize the
 102.989 +            graphics elements
 102.990 +            in order to extract the alpha channel.</p>
 102.991 +		</dd><dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt><dd><p>This keyword represents an image snapshot of the canvas under
 102.992 +            the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element was invoked. See
 102.993 +            <a href="#AccessingBackgroundImage">accessing the background
 102.994 +            image</a>.</p>
 102.995 +		  </dd><dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt><dd><p>Same as <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> except
 102.996 +            only the alpha channel is used. See <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> and <a href="#AccessingBackgroundImage">accessing the background
 102.997 +            image</a>.</p>
 102.998 +		  </dd><dt id="FillPaint"><span class="attr-value">FillPaint</span></dt><dd>
 102.999 +      <p>This keyword represents the target element <i>rendered filled</i>.</p>
102.1000 +			<p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="prop-name">‘fill’</span></a>
102.1001 +            property on the target element for the filter effect.</p>
102.1002 +      <p>For non-SVG cases <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> generates a transparent black image. 
102.1003 +        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span>
102.1004 +      </p>
102.1005 +			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
102.1006 +			<p>The <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> image has conceptually infinite extent. 
102.1007 +			Frequently this image is opaque everywhere, but it might not be if the "paint"
102.1008 +			itself has alpha, as in the case of a gradient or pattern which
102.1009 +			itself includes transparent or semi-transparent parts.</p>
102.1010 +	  	</dd><dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt><dd>
102.1011 +			<p>This keyword represents the target element <i>rendered stroked</i>.</p>
102.1012 +      <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="prop-name">‘stroke’</span></a>
102.1013 +         on the target element for the filter effect.</p>
102.1014 +      <p>For non-SVG cases <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> generates a transparent black image. 
102.1015 +        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span>
102.1016 +      </p>
102.1017 +			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
102.1018 +	  		<p>The <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> image has conceptually infinite extent.
102.1019 +			Frequently this image is opaque everywhere, but it 
102.1020 +			might not be if the "paint"
102.1021 +			itself has alpha, as in the case of a gradient or pattern which
102.1022 +			itself includes transparent or semi-transparent parts.
102.1023 +			</p>
102.1024 +		  </dd></dl>
102.1025 +      <p><span class="anim-target">Animatable: yes.</span></p>
102.1026 +	</dd></dl>
102.1027 +</div>
102.1028 +
102.1029 +<h3 id="FilterPrimitiveSubRegion">7.3 Filter primitive subregion</h3>
102.1030 +
102.1031 +
102.1032 +<p>
102.1033 +All <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> have attributes <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
102.1034 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, and <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>,
102.1035 +<a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a>, which
102.1036 +together identify a subregion which restricts calculation and rendering of
102.1037 +the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. The <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
102.1038 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes are defined
102.1039 +according to the same rules as other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>' coordinate and length
102.1040 +attributes and thus represent values in the coordinate system established by
102.1041 +attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.1042 +The <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and
102.1043 +<a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a> attributes contain deltas to the corresponding
102.1044 +<a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and
102.1045 +<a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes and contain values in the coordinate
102.1046 +system established by attribute <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.1047 +</p>
102.1048 +
102.1049 +<p><a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
102.1050 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> default to the union (i.e., tightest fitting bounding
102.1051 +box) of the subregions defined for all referenced nodes. If there are no
102.1052 +referenced nodes (e.g., for <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> or <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>), or one or more of the
102.1053 +referenced nodes is a standard input (one of <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a>, <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>,
102.1054 +<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for
102.1055 +<a href="#feTileElement"><span class="element-name">‘feTile’</span></a>
102.1056 +(which is special because its principal function is to replicate the
102.1057 +referenced node in X and Y and thereby produce a usually larger result), the
102.1058 +default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the
102.1059 +dimensions of the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>.</p>
102.1060 +
102.1061 +<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>,
102.1062 +<strong>height</strong> have been calculated for the filter primitive
102.1063 +subregion the margin attributes <strong>mx</strong>, <strong>my</strong>,
102.1064 +<strong>mw</strong>, <strong>mh</strong> are calculated and added to the
102.1065 +former to make the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. If the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive
102.1066 +subregion</span></a> has a negative or zero width or height, the effect of the filter
102.1067 +primitive is disabled. </p>
102.1068 +
102.1069 +<p>The <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> act as a hard clip clipping rectangle for
102.1070 +the filter primitive.</p>
102.1071 +
102.1072 +<p>All intermediate offscreens are defined to not exceed the intersection of
102.1073 +the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> with the <a href="#FilterEffectsRegion">filter
102.1074 +region</a>. The filter region and any of the filter primitive subregions are
102.1075 +to be set up such that all offscreens are made big enough to accommodate any
102.1076 +pixels which even partly intersect with either the filter region or the
102.1077 +filter primitive subregions.</p>
102.1078 +
102.1079 +<p><a href="#feTileElement"><span class="element-name">‘feTile’</span></a> references a previous filter primitive and then stitches the tiles together
102.1080 +based on the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> of the referenced filter primitive in
102.1081 +order to fill its own <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
102.1082 +
102.1083 +<pre class="xml">&lt;svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"&gt; 
102.1084 +	&lt;defs&gt;
102.1085 +		&lt;filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"&gt;
102.1086 +		   &lt;feFlood x="25%" y="25%" width="50%" height="50%"
102.1087 +					flood-color="green" flood-opacity="0.75"/&gt;
102.1088 +		&lt;/filter&gt;
102.1089 +		&lt;filter id="blend" primitiveUnits="objectBoundingBox"&gt;
102.1090 +		   &lt;feBlend x="25%" y="25%" width="50%" height="50%"
102.1091 +					in2="SourceGraphic" mode="multiply"/&gt;
102.1092 +		&lt;/filter&gt;
102.1093 +		&lt;filter id="merge" primitiveUnits="objectBoundingBox"&gt;
102.1094 +		   &lt;feMerge x="25%" y="25%" width="50%" height="50%"&gt;
102.1095 +				&lt;feMergeNode in="SourceGraphic"/&gt;
102.1096 +				&lt;feMergeNode in="FillPaint"/&gt;
102.1097 +		   &lt;/feMerge&gt;
102.1098 +		&lt;/filter&gt;
102.1099 +	&lt;/defs&gt;
102.1100 +	
102.1101 +	&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
102.1102 +	   &lt;rect width="200" height="200"/&gt;
102.1103 +	   &lt;line x2="200" y2="200"/&gt;
102.1104 +	   &lt;line x1="200" y2="200"/&gt;
102.1105 +	&lt;/g&gt;
102.1106 +	&lt;circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/&gt;
102.1107 +
102.1108 +	&lt;g transform="translate(200 0)"&gt;
102.1109 +		&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
102.1110 +		   &lt;rect width="200" height="200"/&gt;
102.1111 +		   &lt;line x2="200" y2="200"/&gt;
102.1112 +		   &lt;line x1="200" y2="200"/&gt;
102.1113 +		&lt;/g&gt;
102.1114 +		&lt;circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/&gt;
102.1115 +	&lt;/g&gt;
102.1116 +	
102.1117 +	&lt;g transform="translate(0 200)"&gt;
102.1118 +		&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
102.1119 +		   &lt;rect width="200" height="200"/&gt;
102.1120 +		   &lt;line x2="200" y2="200"/&gt;
102.1121 +		   &lt;line x1="200" y2="200"/&gt;
102.1122 +		&lt;/g&gt;
102.1123 +		&lt;circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/&gt;
102.1124 +	&lt;/g&gt;
102.1125 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filtersubregion00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filtersubregion00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.1126 +
102.1127 +<p>
102.1128 +In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. The filter output should be limited to the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>, so you should never see the circles themselves, just the rects that make up the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. 
102.1129 +</p>
102.1130 +<ul><li>
102.1131 +The upper left rect shows an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle.
102.1132 +</li><li>
102.1133 +The lower left rect shows an <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> that merges <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> with <a href="#FillPaint"><span class="attr-value">FillPaint</span></a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle.
102.1134 +</li><li>The upper right rect shows an <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it.
102.1135 +</li></ul>
102.1136 +
102.1137 +
102.1138 +
102.1139 +<h2 id="LightSourceDefinitions">8 Light source elements and properties</h2>
102.1140 +
102.1141 +<h3 id="LightSourceIntro">8.1 Introduction</h3>
102.1142 +
102.1143 +<p>The following sections define the elements that define a light source, <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
102.1144 +<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> and <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>,
102.1145 +and property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>, which defines the color of the
102.1146 +light.</p>
102.1147 +
102.1148 +<h3 id="feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></h3>
102.1149 +
102.1150 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDistantLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1151 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a></li><li><a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a></li></ul></dd></dl></div>
102.1152 +
102.1153 +<div class="adef-list">
102.1154 +<p><em>Attribute definitions:</em></p>
102.1155 +<dl><dt id="feDistantLightAzimuthAttribute"><span class="adef">azimuth</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Direction angle for the light source on the XY plane (clockwise), in
102.1156 +      degrees.<br/>
102.1157 +      If the attribute is not specified, then the effect is as if a value of
102.1158 +      <span class="attr-value">0</span> were specified.<br/>
102.1159 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDistantLightElevationAttribute"><span class="adef">elevation</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Direction angle for the light source on the YZ plane, in degrees.<br/>
102.1160 +      If the attribute is not specified, then the effect is as if a value of
102.1161 +      <span class="attr-value">0</span> were specified.<br/>
102.1162 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1163 +</div>
102.1164 +
102.1165 +<h3 id="fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></h3>
102.1166 +
102.1167 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘fePointLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1168 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a></li></ul></dd></dl></div>
102.1169 +
102.1170 +<div class="adef-list">
102.1171 +<p><em>Attribute definitions:</em></p>
102.1172 +<dl><dt id="fePointLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location for the light source in the coordinate system established
102.1173 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1174 +      element.<br/>
102.1175 +      If the attribute is not specified, then the effect is as if a value of
102.1176 +      <span class="attr-value">0</span> were specified.<br/>
102.1177 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location for the light source in the coordinate system established
102.1178 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1179 +      element.<br/>
102.1180 +      If the attribute is not specified, then the effect is as if a value of
102.1181 +      <span class="attr-value">0</span> were specified.<br/>
102.1182 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location for the light source in the coordinate system established
102.1183 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1184 +      element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>
102.1185 +      , the positive Z-axis comes out towards the person viewing the content
102.1186 +      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/>
102.1187 +      If the attribute is not specified, then the effect is as if a value of
102.1188 +      <span class="attr-value">0</span> were specified.<br/>
102.1189 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1190 +</div>
102.1191 +
102.1192 +<h3 id="feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></h3>
102.1193 +
102.1194 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpotLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1195 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a></li><li><a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a></li><li><a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a></li><li><a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a></li><li><a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a></li></ul></dd></dl></div>
102.1196 +
102.1197 +<div class="adef-list">
102.1198 +<p><em>Attribute definitions:</em></p>
102.1199 +<dl><dt id="feSpotLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location for the light source in the coordinate system established
102.1200 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1201 +      element.<br/>
102.1202 +      If the attribute is not specified, then the effect is as if a value of
102.1203 +      <span class="attr-value">0</span> were specified.<br/>
102.1204 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location for the light source in the coordinate system established
102.1205 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1206 +      element.<br/>
102.1207 +      If the attribute is not specified, then the effect is as if a value of
102.1208 +      <span class="attr-value">0</span> were specified.<br/>
102.1209 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location for the light source in the coordinate system established
102.1210 +      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1211 +      element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>
102.1212 +      , the positive Z-axis comes out towards the person viewing the content
102.1213 +      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/>
102.1214 +      If the attribute is not specified, then the effect is as if a value of
102.1215 +      <span class="attr-value">0</span> were specified.<br/>
102.1216 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtXAttribute"><span class="adef">pointsAtX</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 
102.1217 +    	on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.1218 +      element of the point at which the light source is pointing.<br/>
102.1219 +      If the attribute is not specified, then the effect is as if a value of
102.1220 +      <span class="attr-value">0</span> were specified.<br/>
102.1221 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtYAttribute"><span class="adef">pointsAtY</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 
102.1222 +    	on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of the point at which the light source is pointing.<br/>
102.1223 +      If the attribute is not specified, then the effect is as if a value of
102.1224 +      <span class="attr-value">0</span> were specified.<br/>
102.1225 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtZAttribute"><span class="adef">pointsAtZ</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location in the coordinate system established by the
102.1226 +		    attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of
102.1227 +		    the point at which the light source is pointing, assuming that, in the
102.1228 +    		<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>, the positive Z-axis comes out
102.1229 +         towards the person viewing the content and assuming that
102.1230 +         one unit along the Z-axis equals 
102.1231 +         <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">
102.1232 +         one unit in X and Y</a>.<br/>
102.1233 +      If the attribute is not specified, then the effect is as if a value of
102.1234 +      <span class="attr-value">0</span> were specified.<br/>
102.1235 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Exponent value controlling the focus for the light source.<br/>
102.1236 +      If the attribute is not specified, then the effect is as if a value of
102.1237 +      <span class="attr-value">1</span> were specified.<br/>
102.1238 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightLimitingConeAngleAttribute"><span class="adef">limitingConeAngle</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>A limiting cone which restricts the region where the light is
102.1239 +      projected. No light is projected outside the cone. <span class="attr-name">limitingConeAngle</span> represents the angle in degrees between
102.1240 +      the spot light axis (i.e. the axis between the light source and the
102.1241 +      point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents
102.1242 +      should apply a smoothing technique such as anti-aliasing at the
102.1243 +      boundary of the cone.</span><br/>
102.1244 +      If no value is specified, then no limiting cone will be applied.<br/>
102.1245 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1246 +</div>
102.1247 +
102.1248 +<h3 id="LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</h3>
102.1249 +
102.1250 +<p>The <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a> property defines the
102.1251 +color of the light source for <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>.</p>
102.1252 +
102.1253 +<div class="propdef">
102.1254 +<dl><dt><span class="index-def" title="'margin-top'"><a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a></span></dt><dd>
102.1255 +      <table summary="lighting-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/>
102.1256 +              <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor">&lt;color&gt;</a>
102.1257 +              [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor">&lt;icccolor&gt;</a>] |<br/>
102.1258 +              <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>white</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>
102.1259 +            elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
102.1260 +    </dd></dl>
102.1261 +</div>
102.1262 +
102.1263 +<h2 id="feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></h2>
102.1264 +
102.1265 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feBlend’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1266 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a></li></ul></dd></dl></div>
102.1267 +
102.1268 +<p>This filter composites two objects together using commonly used imaging
102.1269 +software blending modes. It performs a pixel-wise combination of two input
102.1270 +images.</p>
102.1271 +
102.1272 +<div class="adef-list">
102.1273 +<p><em>Attribute definitions:</em></p>
102.1274 +<dl><dt id="feBlendModeAttribute"><span class="adef">mode</span> = "<em>normal | multiply | screen | darken |
102.1275 +  lighten</em>"</dt><dd>One of the image blending modes (see <a href="#BlendingTable">table</a> below). Default is: normal.<br/>
102.1276 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feBlendIn2Attribute"><span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
102.1277 +  attribute)</em>"</dt><dd>The second input image to the blending operation. This attribute can
102.1278 +      take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/>
102.1279 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1280 +</div>
102.1281 +
102.1282 +<p>For all feBlend modes, the result opacity is computed as follows:</p>
102.1283 +<pre>qr = 1 - (1-qa)*(1-qb)</pre>
102.1284 +
102.1285 +<p>For the compositing formulas below, the following definitions apply:</p>
102.1286 +<pre>image A = in
102.1287 +image B = in2
102.1288 +cr = Result color (RGB) - premultiplied 
102.1289 +qa = Opacity value at a given pixel for image A 
102.1290 +qb = Opacity value at a given pixel for image B 
102.1291 +ca = Color (RGB) at a given pixel for image A - premultiplied 
102.1292 +cb = Color (RGB) at a given pixel for image B - premultiplied </pre>
102.1293 +
102.1294 +<p id="BlendingTable">The following table
102.1295 +provides the list of available image blending modes:</p>
102.1296 +
102.1297 +<div class="note-editor">
102.1298 +ED: make table look nicer</div>
102.1299 +
102.1300 +<table summary="blending modes" width="500" border="1"><tbody><tr><td>Image Blending Mode</td><td>Formula for computing result color</td></tr><tr><td>normal</td><td>cr = (1 - qa) * cb + ca</td></tr><tr><td>multiply</td><td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td></tr><tr><td>screen</td><td>cr = cb + ca - ca * cb</td></tr><tr><td>darken</td><td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr><tr><td>lighten</td><td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr></tbody></table>
102.1301 +
102.1302 +<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a href="#feCompositeOperatorAttribute"><span class="attr-value">operator="over"</span></a> on the <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.1303 +filter primitive, matches the blending method used by <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> and matches
102.1304 +the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#SimpleAlphaBlending"><span class="svg-term">simple alpha compositing</span></a> technique used in SVG for all compositing outside of filter effects.</p>
102.1305 +
102.1306 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.1307 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.1308 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.1309 +&lt;svg width="5cm" height="5cm" viewBox="0 0 500 500"
102.1310 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
102.1311 +  &lt;title&gt;Example feBlend - Examples of feBlend modes&lt;/title&gt;
102.1312 +  &lt;desc&gt;Five text strings blended into a gradient,
102.1313 +        with one text string for each of the five feBlend modes.&lt;/desc&gt;
102.1314 +  &lt;defs&gt;
102.1315 +    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
102.1316 +            x1="100" y1="0" x2="300" y2="0"&gt;
102.1317 +      &lt;stop offset="0" stop-color="#000000" /&gt;
102.1318 +      &lt;stop offset=".33" stop-color="#ffffff" /&gt;
102.1319 +      &lt;stop offset=".67" stop-color="#ff0000" /&gt;
102.1320 +      &lt;stop offset="1" stop-color="#808080" /&gt;
102.1321 +    &lt;/linearGradient&gt;
102.1322 +    &lt;filter id="Normal"&gt;
102.1323 +      &lt;feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/&gt;
102.1324 +    &lt;/filter&gt;
102.1325 +    &lt;filter id="Multiply"&gt;
102.1326 +      &lt;feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/&gt;
102.1327 +    &lt;/filter&gt;
102.1328 +    &lt;filter id="Screen"&gt;
102.1329 +      &lt;feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/&gt;
102.1330 +    &lt;/filter&gt;
102.1331 +    &lt;filter id="Darken"&gt;
102.1332 +      &lt;feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/&gt;
102.1333 +    &lt;/filter&gt;
102.1334 +    &lt;filter id="Lighten"&gt;
102.1335 +      &lt;feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/&gt;
102.1336 +    &lt;/filter&gt;
102.1337 +  &lt;/defs&gt;
102.1338 +  &lt;rect fill="none" stroke="blue"  
102.1339 +        x="1" y="1" width="498" height="498"/&gt;
102.1340 +  &lt;g enable-background="new" &gt;
102.1341 +    &lt;rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /&gt;
102.1342 +    &lt;g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" &gt;
102.1343 +      &lt;text x="50" y="90" filter="url(#Normal)" &gt;Normal&lt;/text&gt;
102.1344 +      &lt;text x="50" y="180" filter="url(#Multiply)" &gt;Multiply&lt;/text&gt;
102.1345 +      &lt;text x="50" y="270" filter="url(#Screen)" &gt;Screen&lt;/text&gt;
102.1346 +      &lt;text x="50" y="360" filter="url(#Darken)" &gt;Darken&lt;/text&gt;
102.1347 +      &lt;text x="50" y="450" filter="url(#Lighten)" &gt;Lighten&lt;/text&gt;
102.1348 +    &lt;/g&gt;
102.1349 +  &lt;/g&gt;
102.1350 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feBlend.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feBlend.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.1351 +
102.1352 +<h2 id="feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></h2>
102.1353 +
102.1354 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feColorMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1355 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a></li><li><a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a></li></ul></dd></dl></div>
102.1356 +
102.1357 +<p>This filter applies a matrix transformation:</p>
102.1358 +<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140">
102.1359 +<pre>| R' |     | a00 a01 a02 a03 a04 |   | R |
102.1360 +| G' |     | a10 a11 a12 a13 a14 |   | G |
102.1361 +| B' |  =  | a20 a21 a22 a23 a24 | * | B |
102.1362 +| A' |     | a30 a31 a32 a33 a34 |   | A |
102.1363 +| 1  |     |  0   0   0   0   1  |   | 1 |</pre>
102.1364 +</object>
102.1365 +
102.1366 +<p>on the RGBA color and alpha values of every pixel on the input graphics to
102.1367 +produce a result with a new set of RGBA color and alpha values.</p>
102.1368 +
102.1369 +<p>The calculations are performed on non-premultiplied color values. If the
102.1370 +input graphics consists of premultiplied color values, those values are
102.1371 +automatically converted into non-premultiplied color values for this
102.1372 +operation.</p>
102.1373 +
102.1374 +<p>These matrices often perform an identity mapping in the alpha channel. If
102.1375 +that is the case, an implementation can avoid the costly undoing and redoing
102.1376 +of the premultiplication for all pixels with A = 1.</p>
102.1377 +
102.1378 +<div class="adef-list">
102.1379 +<p><em>Attribute definitions:</em></p>
102.1380 +<dl><dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> =
102.1381 +  "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt><dd>Indicates the type of matrix operation. The keyword <span class="attr-name">matrix</span> indicates that a full 5x4 matrix of
102.1382 +      values will be provided. The other keywords represent convenience
102.1383 +      shortcuts to allow commonly used color operations to be performed
102.1384 +      without specifying a complete matrix.<br/>
102.1385 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> =
102.1386 +  "<em>list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s</em>"</dt><dd>The contents of <span class="attr-name">values</span> depends on the
102.1387 +      value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">type</span></a>: 
102.1388 +      <ul><li>For <span class="attr-value">type="matrix"</span>, <span class="attr-name">values</span> is a list of 20 matrix values (a00
102.1389 +          a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a
102.1390 +          comma. For example, the identity matrix could be expressed as: 
102.1391 +          <pre>type="matrix" 
102.1392 +values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"</pre>
102.1393 +        </li><li>For <span class="attr-value">type="saturate"</span>, <span class="attr-name">values</span> is a single real number value (0 to
102.1394 +          1). A <span class="attr-value">saturate</span> operation is
102.1395 +          equivalent to the following matrix operation: 
102.1396 +		  <p>
102.1397 +		  <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130">
102.1398 +          <pre>| R' |     |0.213+0.787s  0.715-0.715s  0.072-0.072s 0  0 |   | R |
102.1399 +| G' |     |0.213-0.213s  0.715+0.285s  0.072-0.072s 0  0 |   | G |
102.1400 +| B' |  =  |0.213-0.213s  0.715-0.715s  0.072+0.928s 0  0 | * | B |
102.1401 +| A' |     |           0            0             0  1  0 |   | A |
102.1402 +| 1  |     |           0            0             0  0  1 |   | 1 |</pre>
102.1403 +		  </object>
102.1404 +		</p>
102.1405 +        </li><li>For <span class="attr-value">type="hueRotate"</span>, <span class="attr-name">values</span> is a single one real number value
102.1406 +          (degrees). A <span class="attr-value">hueRotate</span> operation is
102.1407 +          equivalent to the following matrix operation: 
102.1408 +		  <p>
102.1409 +		  <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130">
102.1410 +          <pre>| R' |     | a00  a01  a02  0  0 |   | R |
102.1411 +| G' |     | a10  a11  a12  0  0 |   | G |
102.1412 +| B' |  =  | a20  a21  a22  0  0 | * | B |
102.1413 +| A' |     | 0    0    0    1  0 |   | A |
102.1414 +| 1  |     | 0    0    0    0  1 |   | 1 |</pre>
102.1415 +		</object>
102.1416 +		</p>
102.1417 +
102.1418 +          where the terms a00, a01, etc. are calculated as follows: 
102.1419 +		  <p>
102.1420 +		<object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230">
102.1421 +          <pre>| a00 a01 a02 |    [+0.213 +0.715 +0.072]
102.1422 +| a10 a11 a12 | =  [+0.213 +0.715 +0.072] +
102.1423 +| a20 a21 a22 |    [+0.213 +0.715 +0.072]
102.1424 +                        [+0.787 -0.715 -0.072]
102.1425 +cos(hueRotate value) *  [-0.213 +0.285 -0.072] +
102.1426 +                        [-0.213 -0.715 +0.928]
102.1427 +                        [-0.213 -0.715+0.928]
102.1428 +sin(hueRotate value) *  [+0.143 +0.140-0.283]
102.1429 +                        [-0.787 +0.715+0.072]</pre>
102.1430 +		</object>
102.1431 +		</p>
102.1432 +          Thus, the upper left term of the hue matrix turns out to be:
102.1433 +		  <p>
102.1434 +		<object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 
102.1435 +          <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre>
102.1436 +		  </object>
102.1437 +		  </p>
102.1438 +
102.1439 +        </li><li>For <span class="attr-value">type="luminanceToAlpha"</span>,
102.1440 +          <span class="attr-name">values</span> is not applicable. A <span class="attr-value">luminanceToAlpha</span> operation is equivalent
102.1441 +          to the following matrix operation: 
102.1442 +		  <p>
102.1443 +		  <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130">
102.1444 +          <pre>   | R' |     |      0        0        0  0  0 |   | R |
102.1445 +   | G' |     |      0        0        0  0  0 |   | G |
102.1446 +   | B' |  =  |      0        0        0  0  0 | * | B |
102.1447 +   | A' |     | 0.2125   0.7154   0.0721  0  0 |   | A |
102.1448 +   | 1  |     |      0        0        0  0  1 |   | 1 |</pre>
102.1449 +   </object>
102.1450 +   </p>
102.1451 +	      </li></ul>
102.1452 +      If the attribute is not specified, then the default behavior depends on
102.1453 +      the value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a>. If <span class="attr-value">type="matrix"</span>, then this attribute defaults
102.1454 +      to the identity matrix. If <span class="attr-value">type="saturate"</span>, then this attribute defaults
102.1455 +      to the value <span class="attr-value">1</span>, which results in the
102.1456 +      identify matrix. If <span class="attr-value">type="hueRotate"</span>,
102.1457 +      then this attribute defaults to the value <span class="attr-value">0</span>, which results in the identify matrix.<br/>
102.1458 +      <span class="anim-target">Animatable: yes.</span> </dd></dl>
102.1459 +</div>
102.1460 +
102.1461 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.1462 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.1463 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.1464 +&lt;svg width="8cm" height="5cm" viewBox="0 0 800 500"
102.1465 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
102.1466 +  &lt;title&gt;Example feColorMatrix - Examples of feColorMatrix operations&lt;/title&gt;
102.1467 +  &lt;desc&gt;Five text strings showing the effects of feColorMatrix: 
102.1468 +        an unfiltered text string acting as a reference, 
102.1469 +        use of the feColorMatrix matrix option to convert to grayscale,
102.1470 +        use of the feColorMatrix saturate option,
102.1471 +        use of the feColorMatrix hueRotate option,
102.1472 +        and use of the feColorMatrix luminanceToAlpha option.&lt;/desc&gt;
102.1473 +  &lt;defs&gt;
102.1474 +    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
102.1475 +            x1="100" y1="0" x2="500" y2="0"&gt;
102.1476 +      &lt;stop offset="0" stop-color="#ff00ff" /&gt;
102.1477 +      &lt;stop offset=".33" stop-color="#88ff88" /&gt;
102.1478 +      &lt;stop offset=".67" stop-color="#2020ff" /&gt;
102.1479 +      &lt;stop offset="1" stop-color="#d00000" /&gt;
102.1480 +    &lt;/linearGradient&gt;
102.1481 +    &lt;filter id="Matrix" filterUnits="objectBoundingBox" 
102.1482 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1483 +      &lt;feColorMatrix type="matrix" in="SourceGraphic"
102.1484 +           values=".33 .33 .33 0 0 
102.1485 +                   .33 .33 .33 0 0 
102.1486 +                   .33 .33 .33 0 0 
102.1487 +                   .33 .33 .33 0 0"/&gt;
102.1488 +    &lt;/filter&gt;
102.1489 +    &lt;filter id="Saturate40" filterUnits="objectBoundingBox" 
102.1490 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1491 +      &lt;feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/&gt;
102.1492 +    &lt;/filter&gt;
102.1493 +    &lt;filter id="HueRotate90" filterUnits="objectBoundingBox" 
102.1494 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1495 +      &lt;feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/&gt;
102.1496 +    &lt;/filter&gt;
102.1497 +    &lt;filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
102.1498 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1499 +      &lt;feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/&gt;
102.1500 +      &lt;feComposite in="SourceGraphic" in2="a" operator="in" /&gt;
102.1501 +    &lt;/filter&gt;
102.1502 +  &lt;/defs&gt;
102.1503 +  &lt;rect fill="none" stroke="blue"  
102.1504 +        x="1" y="1" width="798" height="498"/&gt;
102.1505 +  &lt;g font-family="Verdana" font-size="75" 
102.1506 +            font-weight="bold" fill="url(#MyGradient)" &gt;
102.1507 +    &lt;rect x="100" y="0" width="500" height="20" /&gt;
102.1508 +    &lt;text x="100" y="90"&gt;Unfiltered&lt;/text&gt;
102.1509 +    &lt;text x="100" y="190" filter="url(#Matrix)" &gt;Matrix&lt;/text&gt;
102.1510 +    &lt;text x="100" y="290" filter="url(#Saturate40)" &gt;Saturate&lt;/text&gt;
102.1511 +    &lt;text x="100" y="390" filter="url(#HueRotate90)" &gt;HueRotate&lt;/text&gt;
102.1512 +    &lt;text x="100" y="490" filter="url(#LuminanceToAlpha)" &gt;Luminance&lt;/text&gt;
102.1513 +  &lt;/g&gt;
102.1514 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feColorMatrix.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feColorMatrix.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.1515 +
102.1516 +<h2 id="feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></h2>
102.1517 +
102.1518 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComponentTransfer’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1519 +                <ul class="no-bullets"><li><a href=""><span class="element-name">‘feFuncA’</span></a></li><li><a href=""><span class="element-name">‘feFuncB’</span></a></li><li><a href=""><span class="element-name">‘feFuncG’</span></a></li><li><a href=""><span class="element-name">‘feFuncR’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a></li></ul></dd></dl></div>
102.1520 +
102.1521 +<p>This filter primitive performs component-wise remapping of data as
102.1522 +follows:</p>
102.1523 +<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R )
102.1524 +G' = <a href="#feFuncGElement">feFuncG</a>( G )
102.1525 +B' = <a href="#feFuncBElement">feFuncB</a>( B )
102.1526 +A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre>
102.1527 +
102.1528 +<p>for every pixel. It allows operations like brightness adjustment, contrast
102.1529 +adjustment, color balance or thresholding.</p>
102.1530 +
102.1531 +<p>The calculations are performed on non-premultiplied color values. If the
102.1532 +input graphics consists of premultiplied color values, those values are
102.1533 +automatically converted into non-premultiplied color values for this
102.1534 +operation. (Note that the undoing and redoing of the premultiplication can be
102.1535 +avoided if <a href=""><span class="element-name">‘feFuncA’</span></a> is the identity transform
102.1536 +and all alpha values on the source graphic are set to 1.)</p>
102.1537 +
102.1538 +<p>The child elements of a <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element specify the
102.1539 +transfer functions for the four channels:</p>
102.1540 +
102.1541 +<ul id="transferFuncElements"><li><a href=""><span class="element-name">‘feFuncR’</span></a> — transfer function for the red component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncG’</span></a> — transfer function for the green component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncB’</span></a> — transfer function for the blue component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncA’</span></a> — transfer function for the alpha component of the input graphic</li></ul>
102.1542 +
102.1543 +<p>The following rules apply to the processing of the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element:</p>
102.1544 +<ul><li>If more than one <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function element</span></a> of the same kind is specified, the last occurrence is to be used.</li><li>If any of the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> are unspecified, the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> must be processed as if those <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> were specified with their <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> attributes set to <span class="attr-value">'identity'</span>.</li></ul>
102.1545 +	
102.1546 +
102.1547 +
102.1548 +<div id="feFuncRElement">
102.1549 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncR’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1550 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a></li></ul></dd></dl></div>
102.1551 +</div>
102.1552 +
102.1553 +<div id="feFuncGElement">
102.1554 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncG’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1555 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncGElement">SVGFEFuncGElement</a></li></ul></dd></dl></div>
102.1556 +</div>
102.1557 +
102.1558 +<div id="feFuncBElement">
102.1559 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncB’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1560 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a></li></ul></dd></dl></div>
102.1561 +</div>
102.1562 +
102.1563 +<div id="feFuncAElement">
102.1564 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncA’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1565 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a></li></ul></dd></dl></div>
102.1566 +</div>
102.1567 +
102.1568 +<p id="TransferFunctionElementAttributes">The attributes below are the
102.1569 +<span class="SVG-TermDefine">transfer function element attributes</span>,
102.1570 +which apply to the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a>.</p>
102.1571 +
102.1572 +<div class="adef-list">
102.1573 +<p><em>Attribute definitions:</em></p>
102.1574 +<dl><dt id="feComponentTransferTypeAttribute"><span class="adef">type</span>
102.1575 +  = "<em>identity | table | discrete | linear | gamma</em>"</dt><dd><p>Indicates the type of component transfer function. The type of
102.1576 +      function determines the applicability of the other attributes.</p>
102.1577 +      <ul><li>For <span class="attr-value">identity</span>: 
102.1578 +          <pre>C' = C</pre>
102.1579 +        </li><li>For <span class="attr-value">table</span>, the function is
102.1580 +          defined by linear interpolation into a lookup table by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of
102.1581 +          <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order
102.1582 +          to identify <em>n</em> interpolation ranges. Interpolations use the
102.1583 +          following formula. 
102.1584 +          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
102.1585 +          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
102.1586 +          <p>The result <code>C'</code> is given by:</p>
102.1587 +          <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N *
102.1588 +          (v<sub>k+1</sub> - v<sub>k</sub>)</p>
102.1589 +        </li><li>For <span class="attr-value">discrete</span>, the function is
102.1590 +          defined by the step function defined by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of
102.1591 +          <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order
102.1592 +          to identify a step function consisting of <em>n</em> steps. The
102.1593 +          step function is defined by the following formula. 
102.1594 +          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
102.1595 +          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
102.1596 +          <p>The result <code>C'</code> is given by:</p>
102.1597 +          <p class="filterformula">C' = v<sub>k</sub></p>
102.1598 +        </li><li>For <span class="attr-value">linear</span>, the function is
102.1599 +          defined by the following linear equation: 
102.1600 +          <p class="filterformula">C' = <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">slope</span></a> * C + <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">intercept</span></a></p>
102.1601 +        </li><li>For <span class="attr-value">gamma</span>, the function is
102.1602 +          defined by the following exponential function: 
102.1603 +          <p class="filterformula">C' = <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">amplitude</span></a> * pow(C, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">exponent</span></a>) + <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">offset</span></a></p>
102.1604 +        </li></ul>
102.1605 +      <span class="anim-target">Animatable: yes.</span> </dd><dt id="feComponentTransferTableValuesAttribute"><span class="adef">tableValues</span> = "<em>(list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s)</em>"</dt><dd>When <span class="attr-value">type="table"</span>, the list of
102.1606 +      <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
102.1607 +      s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which
102.1608 +      define the lookup table. An empty list results in an identity transfer
102.1609 +      function. If the attribute is not specified, then the effect is as if
102.1610 +      an empty list were provided.<br/>
102.1611 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferSlopeAttribute"><span class="adef">slope</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the slope of the
102.1612 +      linear function.<br/>
102.1613 +      If the attribute is not specified, then the effect is as if a value of
102.1614 +      <span class="attr-value">1</span> were specified.<br/>
102.1615 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferInterceptAttribute"><span class="adef">intercept</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the intercept of
102.1616 +      the linear function.<br/>
102.1617 +      If the attribute is not specified, then the effect is as if a value of
102.1618 +      <span class="attr-value">0</span> were specified.<br/>
102.1619 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferAmplitudeAttribute"><span class="adef">amplitude</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the amplitude of
102.1620 +      the gamma function.<br/>
102.1621 +      If the attribute is not specified, then the effect is as if a value of
102.1622 +      <span class="attr-value">1</span> were specified.<br/>
102.1623 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferExponentAttribute"><span class="adef">exponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the exponent of
102.1624 +      the gamma function.<br/>
102.1625 +      If the attribute is not specified, then the effect is as if a value of
102.1626 +      <span class="attr-value">1</span> were specified.<br/>
102.1627 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferOffsetAttribute"><span class="adef">offset</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the offset of the
102.1628 +      gamma function.<br/>
102.1629 +      If the attribute is not specified, then the effect is as if a value of
102.1630 +      <span class="attr-value">0</span> were specified.<br/>
102.1631 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1632 +</div>
102.1633 +
102.1634 +
102.1635 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.1636 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.1637 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.1638 +&lt;svg width="8cm" height="4cm" viewBox="0 0 800 400"
102.1639 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
102.1640 +  &lt;title&gt;Example feComponentTransfer - Examples of feComponentTransfer operations&lt;/title&gt;
102.1641 +  &lt;desc&gt;Four text strings showing the effects of feComponentTransfer: 
102.1642 +        an identity function acting as a reference, 
102.1643 +        use of the feComponentTransfer table option,
102.1644 +        use of the feComponentTransfer linear option,
102.1645 +        and use of the feComponentTransfer gamma option.&lt;/desc&gt;
102.1646 +  &lt;defs&gt;
102.1647 +    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
102.1648 +            x1="100" y1="0" x2="600" y2="0"&gt;
102.1649 +      &lt;stop offset="0" stop-color="#ff0000" /&gt;
102.1650 +      &lt;stop offset=".33" stop-color="#00ff00" /&gt;
102.1651 +      &lt;stop offset=".67" stop-color="#0000ff" /&gt;
102.1652 +      &lt;stop offset="1" stop-color="#000000" /&gt;
102.1653 +    &lt;/linearGradient&gt;
102.1654 +    &lt;filter id="Identity" filterUnits="objectBoundingBox" 
102.1655 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1656 +      &lt;feComponentTransfer&gt;
102.1657 +        &lt;feFuncR type="identity"/&gt;
102.1658 +        &lt;feFuncG type="identity"/&gt;
102.1659 +        &lt;feFuncB type="identity"/&gt;
102.1660 +        &lt;feFuncA type="identity"/&gt;
102.1661 +      &lt;/feComponentTransfer&gt;
102.1662 +    &lt;/filter&gt;
102.1663 +    &lt;filter id="Table" filterUnits="objectBoundingBox" 
102.1664 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1665 +      &lt;feComponentTransfer&gt;
102.1666 +        &lt;feFuncR type="table" tableValues="0 0 1 1"/&gt;
102.1667 +        &lt;feFuncG type="table" tableValues="1 1 0 0"/&gt;
102.1668 +        &lt;feFuncB type="table" tableValues="0 1 1 0"/&gt;
102.1669 +      &lt;/feComponentTransfer&gt;
102.1670 +    &lt;/filter&gt;
102.1671 +    &lt;filter id="Linear" filterUnits="objectBoundingBox" 
102.1672 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1673 +      &lt;feComponentTransfer&gt;
102.1674 +        &lt;feFuncR type="linear" slope=".5" intercept=".25"/&gt;
102.1675 +        &lt;feFuncG type="linear" slope=".5" intercept="0"/&gt;
102.1676 +        &lt;feFuncB type="linear" slope=".5" intercept=".5"/&gt;
102.1677 +      &lt;/feComponentTransfer&gt;
102.1678 +    &lt;/filter&gt;
102.1679 +    &lt;filter id="Gamma" filterUnits="objectBoundingBox" 
102.1680 +            x="0%" y="0%" width="100%" height="100%"&gt;
102.1681 +      &lt;feComponentTransfer&gt;
102.1682 +        &lt;feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/&gt;
102.1683 +        &lt;feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/&gt;
102.1684 +        &lt;feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/&gt;
102.1685 +      &lt;/feComponentTransfer&gt;
102.1686 +    &lt;/filter&gt;
102.1687 +  &lt;/defs&gt;
102.1688 +  &lt;rect fill="none" stroke="blue"  
102.1689 +        x="1" y="1" width="798" height="398"/&gt;
102.1690 +  &lt;g font-family="Verdana" font-size="75" 
102.1691 +            font-weight="bold" fill="url(#MyGradient)" &gt;
102.1692 +    &lt;rect x="100" y="0" width="600" height="20" /&gt;
102.1693 +    &lt;text x="100" y="90"&gt;Identity&lt;/text&gt;
102.1694 +    &lt;text x="100" y="190" filter="url(#Table)" &gt;TableLookup&lt;/text&gt;
102.1695 +    &lt;text x="100" y="290" filter="url(#Linear)" &gt;LinearFunc&lt;/text&gt;
102.1696 +    &lt;text x="100" y="390" filter="url(#Gamma)" &gt;GammaFunc&lt;/text&gt;
102.1697 +  &lt;/g&gt;
102.1698 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComponentTransfer.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComponentTransfer.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.1699 +
102.1700 +<h2 id="feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></h2>
102.1701 +
102.1702 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComposite’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1703 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a></li><li><a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a></li><li><a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a></li><li><a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a></li></ul></dd></dl></div>
102.1704 +
102.1705 +<p>This filter performs the combination of the two input images pixel-wise in
102.1706 +image space using one of the Porter-Duff [<a href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in,
102.1707 +atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em>
102.1708 +operation (with the result clamped between [0..1]) can be applied.</p>
102.1709 +
102.1710 +<p>The <em>arithmetic</em> operation is useful for combining the output from
102.1711 +the <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> filters with texture
102.1712 +data. It is also useful for implementing <em>dissolve</em>. If the
102.1713 +<em>arithmetic</em> operation is chosen, each result pixel is computed using
102.1714 +the following formula:</p>
102.1715 +<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre>
102.1716 +
102.1717 +<p>For this filter primitive, the extent of the resulting image might grow as
102.1718 +described in the section that describes the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
102.1719 +
102.1720 +<div class="adef-list">
102.1721 +<p><em>Attribute definitions:</em></p>
102.1722 +<dl><dt id="feCompositeOperatorAttribute"><span class="adef">operator</span>
102.1723 +  = "<em>over | in | out | atop | xor | arithmetic</em>"</dt><dd>The compositing operation that is to be performed. All of the <span class="attr-name">operator</span> types except <span class="attr-value">arithmetic</span> match the correspond operation as
102.1724 +      described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span class="attr-value">arithmetic</span> operator is described above.<br/>
102.1725 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK1Attribute"><span class="adef">k1</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
102.1726 +      If the attribute is not specified, the effect is as if a value of "0"
102.1727 +      were specified.<br/>
102.1728 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK2Attribute"><span class="adef">k2</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
102.1729 +      If the attribute is not specified, the effect is as if a value of "0"
102.1730 +      were specified.<br/>
102.1731 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK3Attribute"><span class="adef">k3</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
102.1732 +      If the attribute is not specified, the effect is as if a value of "0"
102.1733 +      were specified.<br/>
102.1734 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK4Attribute"><span class="adef">k4</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
102.1735 +      If the attribute is not specified, the effect is as if a value of "0"
102.1736 +      were specified.<br/>
102.1737 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeIn2Attribute">
102.1738 +  <span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
102.1739 +  attribute)</em>"</dt><dd>The second input image to the compositing operation. This attribute
102.1740 +      can take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/>
102.1741 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.1742 +</div>
102.1743 +
102.1744 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.1745 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.1746 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.1747 +&lt;svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
102.1748 +     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;
102.1749 +  &lt;title&gt;Example feComposite - Examples of feComposite operations&lt;/title&gt;
102.1750 +  &lt;desc&gt;Four rows of six pairs of overlapping triangles depicting
102.1751 +        the six different feComposite operators under different
102.1752 +        opacity values and different clearing of the background.&lt;/desc&gt;
102.1753 +	&lt;defs&gt;
102.1754 +    &lt;desc&gt;Define two sets of six filters for each of the six compositing operators.
102.1755 +          The first set wipes out the background image by flooding with opaque white.
102.1756 +          The second set does not wipe out the background, with the result
102.1757 +          that the background sometimes shines through and is other cases
102.1758 +          is blended into itself (i.e., "double-counting").&lt;/desc&gt;
102.1759 +    &lt;filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1760 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1761 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/&gt;
102.1762 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1763 +    &lt;/filter&gt;
102.1764 +    &lt;filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1765 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1766 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/&gt;
102.1767 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1768 +    &lt;/filter&gt;
102.1769 +    &lt;filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1770 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1771 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/&gt;
102.1772 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1773 +    &lt;/filter&gt;
102.1774 +    &lt;filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1775 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1776 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/&gt;
102.1777 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1778 +    &lt;/filter&gt;
102.1779 +    &lt;filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1780 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1781 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/&gt;
102.1782 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1783 +    &lt;/filter&gt;
102.1784 +    &lt;filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
102.1785 +            x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1786 +      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
102.1787 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
102.1788 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/&gt;
102.1789 +      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
102.1790 +    &lt;/filter&gt;
102.1791 +    &lt;filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1792 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/&gt;
102.1793 +    &lt;/filter&gt;
102.1794 +    &lt;filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1795 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/&gt;
102.1796 +    &lt;/filter&gt;
102.1797 +    &lt;filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1798 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/&gt;
102.1799 +    &lt;/filter&gt;
102.1800 +    &lt;filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1801 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/&gt;
102.1802 +    &lt;/filter&gt;
102.1803 +    &lt;filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1804 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/&gt;
102.1805 +    &lt;/filter&gt;
102.1806 +    &lt;filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
102.1807 +            x="-5%" y="-5%" width="110%" height="110%"&gt;
102.1808 +      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
102.1809 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/&gt;
102.1810 +    &lt;/filter&gt;
102.1811 +    &lt;path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /&gt;
102.1812 +    &lt;path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /&gt;
102.1813 +    &lt;path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /&gt;
102.1814 +    &lt;path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /&gt;
102.1815 +    &lt;g id="TwoBlueTriangles"&gt;
102.1816 +      &lt;use xlink:href="#Blue100"/&gt;
102.1817 +      &lt;use xlink:href="#Blue50"/&gt;
102.1818 +    &lt;/g&gt;
102.1819 +    &lt;g id="BlueTriangles"&gt;
102.1820 +      &lt;use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1821 +      &lt;use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1822 +      &lt;use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1823 +      &lt;use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1824 +      &lt;use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1825 +      &lt;use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/&gt;
102.1826 +    &lt;/g&gt;
102.1827 +  &lt;/defs&gt;
102.1828 +
102.1829 +  &lt;rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/&gt;
102.1830 +  &lt;g font-family="Verdana" font-size="40" shape-rendering="crispEdges"&gt;
102.1831 +    &lt;desc&gt;Render the examples using the filters that draw on top of
102.1832 +          an opaque white surface, thus obliterating the background.&lt;/desc&gt;
102.1833 +    &lt;g enable-background="new"&gt;
102.1834 +      &lt;text x="15" y="75"&gt;opacity 1.0&lt;/text&gt;
102.1835 +      &lt;text x="15" y="115" font-size="27"&gt;(with feFlood)&lt;/text&gt;
102.1836 +      &lt;text x="15" y="200"&gt;opacity 0.5&lt;/text&gt;
102.1837 +      &lt;text x="15" y="240" font-size="27"&gt;(with feFlood)&lt;/text&gt;
102.1838 +      &lt;use xlink:href="#BlueTriangles"/&gt;
102.1839 +      &lt;g transform="translate(275,25)"&gt;
102.1840 +        &lt;use xlink:href="#Red100" filter="url(#overFlood)" /&gt;
102.1841 +        &lt;use xlink:href="#Red50" filter="url(#overFlood)" /&gt;
102.1842 +        &lt;text x="5" y="275"&gt;over&lt;/text&gt;
102.1843 +      &lt;/g&gt;
102.1844 +      &lt;g transform="translate(400,25)"&gt;
102.1845 +        &lt;use xlink:href="#Red100" filter="url(#inFlood)" /&gt;
102.1846 +        &lt;use xlink:href="#Red50" filter="url(#inFlood)" /&gt;
102.1847 +        &lt;text x="35" y="275"&gt;in&lt;/text&gt;
102.1848 +      &lt;/g&gt;
102.1849 +      &lt;g transform="translate(525,25)"&gt;
102.1850 +        &lt;use xlink:href="#Red100" filter="url(#outFlood)" /&gt;
102.1851 +        &lt;use xlink:href="#Red50" filter="url(#outFlood)" /&gt;
102.1852 +        &lt;text x="15" y="275"&gt;out&lt;/text&gt;
102.1853 +      &lt;/g&gt;
102.1854 +      &lt;g transform="translate(650,25)"&gt;
102.1855 +        &lt;use xlink:href="#Red100" filter="url(#atopFlood)" /&gt;
102.1856 +        &lt;use xlink:href="#Red50" filter="url(#atopFlood)" /&gt;
102.1857 +        &lt;text x="10" y="275"&gt;atop&lt;/text&gt;
102.1858 +      &lt;/g&gt;
102.1859 +      &lt;g transform="translate(775,25)"&gt;
102.1860 +        &lt;use xlink:href="#Red100" filter="url(#xorFlood)" /&gt;
102.1861 +        &lt;use xlink:href="#Red50" filter="url(#xorFlood)" /&gt;
102.1862 +        &lt;text x="15" y="275"&gt;xor&lt;/text&gt;
102.1863 +      &lt;/g&gt;
102.1864 +      &lt;g transform="translate(900,25)"&gt;
102.1865 +        &lt;use xlink:href="#Red100" filter="url(#arithmeticFlood)" /&gt;
102.1866 +        &lt;use xlink:href="#Red50" filter="url(#arithmeticFlood)" /&gt;
102.1867 +        &lt;text x="-25" y="275"&gt;arithmetic&lt;/text&gt;
102.1868 +      &lt;/g&gt;
102.1869 +    &lt;/g&gt;
102.1870 +    &lt;g transform="translate(0,325)" enable-background="new"&gt;
102.1871 +    &lt;desc&gt;Render the examples using the filters that do not obliterate
102.1872 +          the background, thus sometimes causing the background to continue
102.1873 +          to appear in some cases, and in other cases the background
102.1874 +          image blends into itself ("double-counting").&lt;/desc&gt;
102.1875 +      &lt;text x="15" y="75"&gt;opacity 1.0&lt;/text&gt;
102.1876 +      &lt;text x="15" y="115" font-size="27"&gt;(without feFlood)&lt;/text&gt;
102.1877 +      &lt;text x="15" y="200"&gt;opacity 0.5&lt;/text&gt;
102.1878 +      &lt;text x="15" y="240" font-size="27"&gt;(without feFlood)&lt;/text&gt;
102.1879 +      &lt;use xlink:href="#BlueTriangles"/&gt;
102.1880 +      &lt;g transform="translate(275,25)"&gt;
102.1881 +        &lt;use xlink:href="#Red100" filter="url(#overNoFlood)" /&gt;
102.1882 +        &lt;use xlink:href="#Red50" filter="url(#overNoFlood)" /&gt;
102.1883 +        &lt;text x="5" y="275"&gt;over&lt;/text&gt;
102.1884 +      &lt;/g&gt;
102.1885 +      &lt;g transform="translate(400,25)"&gt;
102.1886 +        &lt;use xlink:href="#Red100" filter="url(#inNoFlood)" /&gt;
102.1887 +        &lt;use xlink:href="#Red50" filter="url(#inNoFlood)" /&gt;
102.1888 +        &lt;text x="35" y="275"&gt;in&lt;/text&gt;
102.1889 +      &lt;/g&gt;
102.1890 +      &lt;g transform="translate(525,25)"&gt;
102.1891 +        &lt;use xlink:href="#Red100" filter="url(#outNoFlood)" /&gt;
102.1892 +        &lt;use xlink:href="#Red50" filter="url(#outNoFlood)" /&gt;
102.1893 +        &lt;text x="15" y="275"&gt;out&lt;/text&gt;
102.1894 +      &lt;/g&gt;
102.1895 +      &lt;g transform="translate(650,25)"&gt;
102.1896 +        &lt;use xlink:href="#Red100" filter="url(#atopNoFlood)" /&gt;
102.1897 +        &lt;use xlink:href="#Red50" filter="url(#atopNoFlood)" /&gt;
102.1898 +        &lt;text x="10" y="275"&gt;atop&lt;/text&gt;
102.1899 +      &lt;/g&gt;
102.1900 +      &lt;g transform="translate(775,25)"&gt;
102.1901 +        &lt;use xlink:href="#Red100" filter="url(#xorNoFlood)" /&gt;
102.1902 +        &lt;use xlink:href="#Red50" filter="url(#xorNoFlood)" /&gt;
102.1903 +        &lt;text x="15" y="275"&gt;xor&lt;/text&gt;
102.1904 +      &lt;/g&gt;
102.1905 +      &lt;g transform="translate(900,25)"&gt;
102.1906 +        &lt;use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /&gt;
102.1907 +        &lt;use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /&gt;
102.1908 +        &lt;text x="-25" y="275"&gt;arithmetic&lt;/text&gt;
102.1909 +      &lt;/g&gt;
102.1910 +    &lt;/g&gt;
102.1911 +  &lt;/g&gt;
102.1912 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComposite.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComposite.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.1913 +
102.1914 +<h2 id="feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></h2>
102.1915 +
102.1916 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feConvolveMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.1917 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a></li><li><a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a></li><li><a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a></li><li><a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a></li><li><a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a></li><li><a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a></li><li><a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a></li><li><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li><li><a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a></li></ul></dd></dl></div>
102.1918 +
102.1919 +
102.1920 +<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution
102.1921 +combines pixels in the input image with neighboring pixels to produce a
102.1922 +resulting image. A wide variety of imaging operations can be achieved through
102.1923 +convolutions, including blurring, edge detection, sharpening, embossing and
102.1924 +beveling.</p>
102.1925 +
102.1926 +<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel)
102.1927 +which describes how a given pixel value in the input image is combined with
102.1928 +its neighboring pixel values to produce a resulting pixel value. Each result
102.1929 +pixel is determined by applying the kernel matrix to the corresponding source
102.1930 +pixel and its neighboring pixels. The basic convolution formula which is
102.1931 +applied to each color value for a given pixel is:</p>
102.1932 +
102.1933 +<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br/>
102.1934 +              SUM <sub>I=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br/>
102.1935 +                SUM <sub>J=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br/>
102.1936 +                  SOURCE <sub>X-<a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a>+J, Y-<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>+I</sub> *  <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a><sub><a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1,  <a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br/>
102.1937 +                } <br/>
102.1938 +              } <br/>
102.1939 +            ) /  <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> +  <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a><br/>
102.1940 +</p>
102.1941 +
102.1942 +<div class="note-editor">
102.1943 +ED: Consider making this into mathml</div>
102.1944 +
102.1945 +<p>where "orderX" and "orderY" represent the X and Y values for the <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> attribute, "targetX" represents the value
102.1946 +of the <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> attribute, "targetY" represents the
102.1947 +value of the <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> attribute, "kernelMatrix" represents the
102.1948 +value of the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> attribute, "divisor" represents the
102.1949 +value of the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> attribute, and "bias" represents the
102.1950 +value of the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute.</p>
102.1951 +
102.1952 +<p>Note in the above formulas that the values in the kernel matrix are
102.1953 +applied such that the kernel matrix is rotated 180 degrees relative to the
102.1954 +source and destination images in order to match convolution theory as
102.1955 +described in many computer graphics textbooks.</p>
102.1956 +
102.1957 +<p>To illustrate, suppose you have a input image which is 5 pixels by 5
102.1958 +pixels, whose color values for one of the color channels are as follows:</p>
102.1959 +<pre>    0  20  40 235 235
102.1960 +  100 120 140 235 235
102.1961 +  200 220 240 235 235
102.1962 +  225 225 255 255 255
102.1963 +  225 225 255 255 255</pre>
102.1964 +
102.1965 +<div class="note-editor">
102.1966 +ED: Consider making this into mathml</div>
102.1967 +
102.1968 +<p>and you define a 3-by-3 convolution kernel as follows:</p>
102.1969 +<pre>  1 2 3
102.1970 +  4 5 6
102.1971 +  7 8 9</pre>
102.1972 +
102.1973 +<div class="note-editor">
102.1974 +ED: Consider making this into mathml</div>
102.1975 +
102.1976 +<p>Let's focus on the color value at the second row and second column of the
102.1977 +image (source pixel value is 120). Assuming the simplest case (where the
102.1978 +input image's pixel grid aligns perfectly with the kernel's pixel grid) and
102.1979 +assuming default values for attributes <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> and
102.1980 +<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>, then resulting color value will
102.1981 +be:</p>
102.1982 +<pre>(9*  0 + 8* 20 + 7* 40 +
102.1983 +6*100 + 5*120 + 4*140 +
102.1984 +3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre>
102.1985 +
102.1986 +<div class="note-editor">
102.1987 +ED: Consider making this into mathml</div>
102.1988 +
102.1989 +<p>Because they operate on pixels, matrix convolutions are inherently
102.1990 +resolution-dependent. To make <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> produce resolution-independent
102.1991 +results, an explicit value should be provided for either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
102.1992 +and/or attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
102.1993 +
102.1994 +<p><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other
102.1995 +attributes, defines an implicit pixel grid in the filter effects coordinate
102.1996 +system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid
102.1997 +established by <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the
102.1998 +pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the
102.1999 +input image will be temporarily rescaled to match its pixels with <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The convolution happens on the
102.2000 +resampled image. After applying the convolution, the image is resampled back
102.2001 +to the original resolution.</p>
102.2002 +
102.2003 +<p>When the image must be resampled to match the coordinate system defined by
102.2004 +<a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> prior to convolution, or
102.2005 +resampled to match the device coordinate system after convolution, it is
102.2006 +recommended that high quality viewers make use of appropriate interpolation
102.2007 +techniques, for example bilinear or bicubic. Depending on the speed of the
102.2008 +available interpolents, this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that
102.2009 +implementations might choose approaches that minimize or eliminate resampling
102.2010 +when not necessary to produce proper results, such as when the document is
102.2011 +zoomed out such that <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is
102.2012 +considerably smaller than a device pixel.</p>
102.2013 +
102.2014 +<div class="adef-list">
102.2015 +<p><em>Attribute definitions:</em></p>
102.2016 +<dl><dt id="feConvolveMatrixElementOrderAttribute"><span class="adef">order</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>Indicates the number of cells in each dimension for <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. The values provided must be
102.2017 +      <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a>
102.2018 +      s greater than zero. The first number, &lt;orderX&gt;, indicates the
102.2019 +      number of columns in the matrix. The second number, &lt;orderY&gt;,
102.2020 +      indicates the number of rows in the matrix. If &lt;orderY&gt; is not
102.2021 +      provided, it defaults to &lt;orderX&gt;.<br/>
102.2022 +      A typical value is order="3". It is recommended that only small values
102.2023 +      (e.g., 3) be used; higher values may result in very high CPU overhead
102.2024 +      and usually do not produce results that justify the impact on
102.2025 +      performance.<br/>
102.2026 +      If the attribute is not specified, the effect is as if a value of "3"
102.2027 +      were specified.<br/>
102.2028 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementKernelMatrixAttribute"><span class="adef">kernelMatrix</span> = "<span class="attr-value">&lt;list of
102.2029 +  numbers&gt;</span>"</dt><dd>The list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
102.2030 +      s that make up the kernel matrix for the convolution. Values are
102.2031 +      separated by space characters and/or a comma. The number of entries in
102.2032 +      the list must equal &lt;orderX&gt; times &lt;orderY&gt;.<br/>
102.2033 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementDivisorAttribute"><span class="adef">divisor</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the
102.2034 +      input image to yield a number, that number is divided by <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> to yield the final destination color
102.2035 +      value. A divisor that is the sum of all the matrix values tends to have
102.2036 +      an evening effect on the overall color intensity of the result. If the
102.2037 +      specified divisor is zero then the default value will be used instead.
102.2038 +      The default value is the sum of all values in kernelMatrix, with the
102.2039 +      exception that if the sum is zero, then the divisor is set to 1.<br/>
102.2040 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementBiasAttribute"><span class="adef">bias</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the
102.2041 +      input image to yield a number and applying the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute is added to each component. One
102.2042 +      application of <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is when it is
102.2043 +      desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If
102.2044 +      <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is not specified, then the effect
102.2045 +      is as if a value of zero were specified.<br/>
102.2046 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetXAttribute"><span class="adef">targetX</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></span>"</dt><dd>Determines the positioning in X of the convolution matrix relative to
102.2047 +      a given target pixel in the input image. The leftmost column of the
102.2048 +      matrix is column number zero. The value must be such that: 0 &lt;=
102.2049 +      targetX &lt; orderX. By default, the convolution matrix is centered in
102.2050 +      X over each pixel of the input image (i.e., targetX = floor ( orderX /
102.2051 +      2 )).<br/>
102.2052 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetYAttribute"><span class="adef">targetY</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></span>"</dt><dd>Determines the positioning in Y of the convolution matrix relative to
102.2053 +      a given target pixel in the input image. The topmost row of the matrix
102.2054 +      is row number zero. The value must be such that: 0 &lt;= targetY &lt;
102.2055 +      orderY. By default, the convolution matrix is centered in Y over each
102.2056 +      pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br/>
102.2057 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementEdgeModeAttribute"><span class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap |
102.2058 +  none</span>"</dt><dd><p>Determines how to extend the input image as necessary with color
102.2059 +      values so that the matrix operations can be applied when the kernel is
102.2060 +      positioned at or near the edge of the input image.</p>
102.2061 +      <p>"duplicate" indicates that the input image is extended along each of
102.2062 +      its borders as necessary by duplicating the color values at the given
102.2063 +      edge of the input image.</p>
102.2064 +      <pre>Original N-by-M image, where m=M-1 and n=N-1:
102.2065 +          11 12 ... 1m 1M
102.2066 +          21 22 ... 2m 2M
102.2067 +          .. .. ... .. ..
102.2068 +          n1 n2 ... nm nM
102.2069 +          N1 N2 ... Nm NM
102.2070 +Extended by two pixels using "duplicate":
102.2071 +  11 11   11 12 ... 1m 1M   1M 1M
102.2072 +  11 11   11 12 ... 1m 1M   1M 1M
102.2073 +  11 11   11 12 ... 1m 1M   1M 1M
102.2074 +  21 21   21 22 ... 2m 2M   2M 2M
102.2075 +  .. ..   .. .. ... .. ..   .. ..
102.2076 +  n1 n1   n1 n2 ... nm nM   nM nM
102.2077 +  N1 N1   N1 N2 ... Nm NM   NM NM
102.2078 +  N1 N1   N1 N2 ... Nm NM   NM NM
102.2079 +  N1 N1   N1 N2 ... Nm NM   NM NM</pre>
102.2080 +
102.2081 +      <div class="note-editor">
102.2082 +      ED: Consider making this into mathml</div>
102.2083 +      <p>"wrap" indicates that the input image is extended by taking the
102.2084 +      color values from the opposite edge of the image.</p>
102.2085 +      <pre>Extended by two pixels using "wrap":
102.2086 +  nm nM   n1 n2 ... nm nM   n1 n2
102.2087 +  Nm NM   N1 N2 ... Nm NM   N1 N2
102.2088 +  1m 1M   11 12 ... 1m 1M   11 12
102.2089 +  2m 2M   21 22 ... 2m 2M   21 22
102.2090 +  .. ..   .. .. ... .. ..   .. ..
102.2091 +  nm nM   n1 n2 ... nm nM   n1 n2
102.2092 +  Nm NM   N1 N2 ... Nm NM   N1 N2
102.2093 +  1m 1M   11 12 ... 1m 1M   11 12
102.2094 +  2m 2M   21 22 ... 2m 2M   21 22</pre>
102.2095 +
102.2096 +      <div class="note-editor">
102.2097 +      ED: Consider making this into mathml</div>
102.2098 +      <p>"none" indicates that the input image is extended with pixel values
102.2099 +      of zero for R, G, B and A.</p>
102.2100 +      <p><span class="anim-target">Animatable: yes.</span></p>
102.2101 +    </dd><dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
102.2102 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
102.2103 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
102.2104 +      current filter units (i.e., units as determined by the value of
102.2105 +      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) between successive columns
102.2106 +      and rows, respectively, in the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. By specifying value(s) for 
102.2107 +      <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, the kernel becomes defined
102.2108 +      in a scalable, abstract coordinate system. If <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not specified, the default
102.2109 +      value is one pixel in the offscreen bitmap, which is a pixel-based
102.2110 +      coordinate system, and thus potentially not scalable. For some level of
102.2111 +      consistency across display media and user agents, it is necessary that
102.2112 +      a value be provided for at least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. 
102.2113 +      In some implementations, the most consistent results and the fastest performance will be achieved if
102.2114 +      the pixel grid of the temporary offscreen images aligns with the pixel
102.2115 +      grid of the kernel.<br/>
102.2116 +      If a negative or zero value is specified the default value will be used
102.2117 +      instead. <br/>
102.2118 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span class="adef">preserveAlpha</span> = "<span class="attr-value">false |
102.2119 +  true</span>"</dt><dd>A value of <span class="attr-value">false</span> indicates that the
102.2120 +      convolution will apply to all channels, including the alpha channel.<br/>
102.2121 +      A value of <span class="attr-value">true</span> indicates that the
102.2122 +      convolution will only apply to the color channels. In this case, the
102.2123 +      filter will temporarily unpremultiply the color component values, apply
102.2124 +      the kernel, and then re-premultiply at the end.<br/>
102.2125 +      If <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> is not specified, then
102.2126 +      the effect is as if a value of <span class="attr-value">false</span>
102.2127 +      were specified.<br/>
102.2128 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2129 +</div>
102.2130 +
102.2131 +
102.2132 +
102.2133 +<h2 id="feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></h2>
102.2134 +
102.2135 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDiffuseLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2136 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a></li><li><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a></li></ul></dd></dl></div>
102.2137 +
102.2138 +<p>This filter primitive lights an image using the alpha channel as a bump
102.2139 +map. The resulting image is an RGBA opaque image based on the light color
102.2140 +with alpha = 1.0 everywhere. The lighting calculation follows the standard
102.2141 +diffuse component of the Phong lighting model. The resulting image depends on
102.2142 +the light color, light position and surface geometry of the input bump
102.2143 +map.</p>
102.2144 +
102.2145 +<p>The light map produced by this filter primitive can be combined with a
102.2146 +texture image using the multiply term of the <em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> compositing method. Multiple
102.2147 +light sources can be simulated by adding several of these light maps together
102.2148 +before applying it to the texture image.</p>
102.2149 +
102.2150 +<p>The formulas below make use of 3x3 filters. Because they operate on
102.2151 +pixels, such filters are inherently resolution-dependent. To make <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> produce
102.2152 +resolution-independent results, an explicit value should be provided for
102.2153 +either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
102.2154 +and/or attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
102.2155 +
102.2156 +<p><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other
102.2157 +attributes, defines an implicit pixel grid in the filter effects coordinate
102.2158 +system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid
102.2159 +established by <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the
102.2160 +pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the
102.2161 +input image will be temporarily rescaled to match its pixels with <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back
102.2162 +to its original resolution.</p>
102.2163 +
102.2164 +<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example
102.2165 +bilinear or bicubic.</span> Depending on the speed of the available interpolents,
102.2166 +this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that
102.2167 +implementations might choose approaches that minimize or eliminate resampling
102.2168 +when not necessary to produce proper results, such as when the document is
102.2169 +zoomed out such that <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is
102.2170 +considerably smaller than a device pixel.</p>
102.2171 +
102.2172 +<p>For the formulas that follow, the
102.2173 +<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is
102.2174 +defined as:</p>
102.2175 +
102.2176 +<div class="note-editor">
102.2177 +ED: Consider making the following in mathml</div>
102.2178 +
102.2179 +<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) =
102.2180 +sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p>
102.2181 +
102.2182 +<p>The resulting RGBA image is computed as follows:</p>
102.2183 +
102.2184 +<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L *
102.2185 +L<sub>r</sub><br/>
102.2186 +D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br/>
102.2187 +D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br/>
102.2188 +D<sub>a</sub> = 1.0</p>
102.2189 +
102.2190 +<p>where</p>
102.2191 +<dl><dd>k<sub>d</sub> = diffuse lighting constant<br/>
102.2192 +      N = surface normal unit vector, a function of x and y<br/>
102.2193 +      L = unit vector pointing from surface to light, a function of x and y
102.2194 +      in the point and spot light cases<br/>
102.2195 +      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a
102.2196 +      function of x and y in the spot light case</dd></dl>
102.2197 +
102.2198 +<p>N is a function of x and y and depends on the surface gradient as
102.2199 +follows:</p>
102.2200 +
102.2201 +<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p>
102.2202 +
102.2203 +<p class="filterformula">Z (x,y) = surfaceScale *  A<sub>in</sub>(x,y)</p>
102.2204 +
102.2205 +<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter.
102.2206 +Different filter kernels are used depending on whether the given pixel is on
102.2207 +the interior or an edge. For each case, the formula is:</p>
102.2208 +
102.2209 +<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale *
102.2210 +FACTOR<sub>x</sub> *<br/>
102.2211 +           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) +
102.2212 +K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br/>
102.2213 +            K <sub>x</sub>(0,1)*I(x-dx,y)   +
102.2214 +K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br/>
102.2215 +            K <sub>x</sub>(0,2)*I(x-dx,y+dy) +
102.2216 +K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br/>
102.2217 +N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br/>
102.2218 +           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) +
102.2219 +K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br/>
102.2220 +            K <sub>y</sub>(0,1)*I(x-dx,y)   +
102.2221 +K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br/>
102.2222 +            K <sub>y</sub>(0,2)*I(x-dx,y+dy) +
102.2223 +K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br/>
102.2224 +N<sub>z</sub> (x,y) = 1.0<br/>
102.2225 +<br/>
102.2226 +N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) /
102.2227 +Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p>
102.2228 +
102.2229 +<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g.,
102.2230 +<code>I(x-dx,y-dy)</code>), represent deltas relative to a given
102.2231 +<code>(x,y)</code> position for the purpose of estimating the slope of the
102.2232 +surface at that point. These deltas are determined by the value (explicit or
102.2233 +implicit) of attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
102.2234 +
102.2235 +<table summary="feDiffuseLighting formulas" border="1"><colgroup><col width="33.3%"/><col width="33.3%"/><col width="*"/></colgroup><tbody><tr><td><p>Top/left corner:</p>
102.2236 +
102.2237 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
102.2238 +        K<sub>x</sub> =<br/>
102.2239 +            |  0  0  0 |<br/>
102.2240 +            |  0 -2  2 |<br/>
102.2241 +            |  0 -1  1 |<br/>
102.2242 +        <br/>
102.2243 +        FACTOR<sub>y</sub>=2/(3*dy)<br/>
102.2244 +        K<sub>y</sub> =  <br/>
102.2245 +            |  0  0  0 |<br/>
102.2246 +            |  0 -2 -1 |<br/>
102.2247 +            |  0  2  1 |</p>
102.2248 +      </td><td><p>Top row:</p>
102.2249 +
102.2250 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/>
102.2251 +        K<sub>x</sub> =<br/>
102.2252 +            |  0  0  0 |<br/>
102.2253 +            | -2  0  2 |<br/>
102.2254 +            | -1  0  1 |<br/>
102.2255 +        <br/>
102.2256 +        FACTOR<sub>y</sub>=1/(2*dy)<br/>
102.2257 +        K<sub>y</sub> =  <br/>
102.2258 +            |  0  0  0 |<br/>
102.2259 +            | -1 -2 -1 |<br/>
102.2260 +            |  1  2  1 |</p>
102.2261 +      </td><td><p>Top/right corner:</p>
102.2262 +
102.2263 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
102.2264 +        K<sub>x</sub> =<br/>
102.2265 +            |  0  0  0 |<br/>
102.2266 +            | -2  2  0 |<br/>
102.2267 +            | -1  1  0 |<br/>
102.2268 +        <br/>
102.2269 +        FACTOR<sub>y</sub>=2/(3*dy)<br/>
102.2270 +        K<sub>y</sub> =  <br/>
102.2271 +            |  0  0  0 |<br/>
102.2272 +            | -1 -2  0 |<br/>
102.2273 +            |  1  2  0 |</p>
102.2274 +      </td></tr><tr><td><p>Left column:</p>
102.2275 +
102.2276 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/>
102.2277 +        K<sub>x</sub> =<br/>
102.2278 +            | 0 -1  1 |<br/>
102.2279 +            | 0 -2  2 |<br/>
102.2280 +            | 0 -1  1 |<br/>
102.2281 +        <br/>
102.2282 +        FACTOR<sub>y</sub>=1/(3*dy)<br/>
102.2283 +        K<sub>y</sub> =  <br/>
102.2284 +            |  0 -2 -1 |<br/>
102.2285 +            |  0  0  0 |<br/>
102.2286 +            |  0  2  1 |</p>
102.2287 +      </td><td><p>Interior pixels:</p>
102.2288 +
102.2289 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br/>
102.2290 +        K<sub>x</sub> =<br/>
102.2291 +            | -1  0  1 |<br/>
102.2292 +            | -2  0  2 |<br/>
102.2293 +            | -1  0  1 |<br/>
102.2294 +        <br/>
102.2295 +        FACTOR<sub>y</sub>=1/(4*dy)<br/>
102.2296 +        K<sub>y</sub> =  <br/>
102.2297 +            | -1 -2 -1 |<br/>
102.2298 +            |  0  0  0 |<br/>
102.2299 +            |  1  2  1 |</p>
102.2300 +      </td><td><p>Right column:</p>
102.2301 +
102.2302 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/>
102.2303 +        K<sub>x</sub> =<br/>
102.2304 +            | -1  1  0|<br/>
102.2305 +            | -2  2  0|<br/>
102.2306 +            | -1  1  0|<br/>
102.2307 +        <br/>
102.2308 +        FACTOR<sub>y</sub>=1/(3*dy)<br/>
102.2309 +        K<sub>y</sub> =  <br/>
102.2310 +            | -1 -2  0 |<br/>
102.2311 +            |  0  0  0 |<br/>
102.2312 +            |  1  2  0 |</p>
102.2313 +      </td></tr><tr><td><p>Bottom/left corner:</p>
102.2314 +
102.2315 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
102.2316 +        K<sub>x</sub> =<br/>
102.2317 +            | 0 -1  1 |<br/>
102.2318 +            | 0 -2  2 |<br/>
102.2319 +            | 0  0  0 |<br/>
102.2320 +        <br/>
102.2321 +        FACTOR<sub>y</sub>=2/(3*dy)<br/>
102.2322 +        K<sub>y</sub> =  <br/>
102.2323 +            |  0 -2 -1 |<br/>
102.2324 +            |  0  2  1 |<br/>
102.2325 +            |  0  0  0 |</p>
102.2326 +      </td><td><p>Bottom row:</p>
102.2327 +
102.2328 +        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/>
102.2329 +        K<sub>x</sub> =<br/>
102.2330 +            | -1  0  1 |<br/>
102.2331 +            | -2  0  2 |<br/>
102.2332 +            |  0  0  0 |<br/>
102.2333 +        <br/>
102.2334 +        FACTOR<sub>y</sub>=1/(2*dy)<br/>
102.2335 +        K<sub>y</sub> =  <br/>
102.2336 +            | -1 -2 -1 |<br/>
102.2337 +            |  1  2  1 |<br/>
102.2338 +            |  0  0  0 |</p>
102.2339 +      </td><td><p>Bottom/right corner:</p>
102.2340 +
102.2341 +        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
102.2342 +        K<sub>x</sub> =<br/>
102.2343 +            | -1  1  0 |<br/>
102.2344 +            | -2  2  0 |<br/>
102.2345 +            |  0  0  0 |<br/>
102.2346 +        <br/>
102.2347 +        FACTOR<sub>y</sub>=2/(3*dy)<br/>
102.2348 +        K<sub>y</sub> =  <br/>
102.2349 +            | -1 -2  0 |<br/>
102.2350 +            |  1  2  0 |<br/>
102.2351 +            |  0  0  0 |</p>
102.2352 +      </td></tr></tbody></table>
102.2353 +
102.2354 +<p>L, the unit vector from the image sample to the light, is calculated as
102.2355 +follows:</p>
102.2356 +
102.2357 +<p>For Infinite light sources it is constant:</p>
102.2358 +
102.2359 +<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br/>
102.2360 +L<sub>y</sub> = sin(azimuth)*cos(elevation)<br/>
102.2361 +L<sub>z</sub> = sin(elevation)</p>
102.2362 +
102.2363 +<p>For Point and spot lights it is a function of position:</p>
102.2364 +
102.2365 +<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br/>
102.2366 +L<sub>y</sub> = Light<sub>y</sub> - y<br/>
102.2367 +L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br/>
102.2368 +<br/>
102.2369 +L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>,
102.2370 +L<sub>y</sub>, L<sub>z</sub>)</p>
102.2371 +
102.2372 +<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the
102.2373 +input light position.</p>
102.2374 +
102.2375 +<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a
102.2376 +function of position in the spot light case only:</p>
102.2377 +
102.2378 +<p class="filterformula">L<sub>r</sub> =
102.2379 +Light<sub>r</sub>*pow((-L.S),specularExponent)<br/>
102.2380 +L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br/>
102.2381 +L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p>
102.2382 +
102.2383 +<p>where S is the unit vector pointing from the light to the point
102.2384 +(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p>
102.2385 +
102.2386 +<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br/>
102.2387 +S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br/>
102.2388 +S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br/>
102.2389 +<br/>
102.2390 +S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>,
102.2391 +S<sub>y</sub>, S<sub>z</sub>)</p>
102.2392 +
102.2393 +<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> =
102.2394 +L<sub>b</sub> = 0). If <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> is specified, -L.S &lt; cos(limitingConeAngle) also indicates that no light is present.</p>
102.2395 +
102.2396 +<div class="adef-list">
102.2397 +<p><em>Attribute definitions:</em></p>
102.2398 +<dl><dt id="feDiffuseLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/>
102.2399 +      If the attribute is not specified, then the effect is as if a value of
102.2400 +      <span class="attr-value">1</span> were specified.<br/>
102.2401 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingDiffuseConstantAttribute"><span class="adef">diffuseConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>kd in Phong lighting model. In SVG, this can be any non-negative
102.2402 +      number.<br/>
102.2403 +      If the attribute is not specified, then the effect is as if a value of
102.2404 +      <span class="attr-value">1</span> were specified.<br/>
102.2405 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
102.2406 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
102.2407 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
102.2408 +      current filter units (i.e., units as determined by the value of
102.2409 +      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and
102.2410 +      <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation
102.2411 +      formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined
102.2412 +      in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the
102.2413 +      <code>dx</code> and <code>dy</code> values should represent very small
102.2414 +      deltas relative to a given <code>(x,y)</code> position, which might be
102.2415 +      implemented in some cases as one pixel in the intermediate image
102.2416 +      offscreen bitmap, which is a pixel-based coordinate system, and thus
102.2417 +      potentially not scalable. For some level of consistency across display
102.2418 +      media and user agents, it is necessary that a value be provided for at
102.2419 +      least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate
102.2420 +      images are in the <a href="#Introduction">Introduction</a> and in the
102.2421 +      description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.<br/>
102.2422 +      If a negative or zero value is specified the default value will be used
102.2423 +      instead. <br/>
102.2424 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2425 +</div>
102.2426 +
102.2427 +<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
102.2428 +<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>. The light color is specified
102.2429 +by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p>
102.2430 +
102.2431 +<h2 id="feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></h2>
102.2432 +
102.2433 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDisplacementMap’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2434 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a></li><li><a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a></li><li><a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a></li></ul></dd></dl></div>
102.2435 +
102.2436 +<p>This filter primitive uses the pixels values from the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>
102.2437 +to spatially displace the image from <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>.
102.2438 +This is the transformation to be performed:</p>
102.2439 +
102.2440 +<pre>	P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5))
102.2441 +	</pre>
102.2442 +
102.2443 +<p>where P(x,y) is the input image, <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>, and
102.2444 +P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of
102.2445 +the channel designated by the <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> and
102.2446 +<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a>. For example, to use the R component of <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>
102.2447 +to control displacement in x and the G component of Image2 to control
102.2448 +displacement in y, set <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> to <span class="attr-value">"R"</span> and
102.2449 +<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> to <span class="attr-value">"G"</span>.</p>
102.2450 +
102.2451 +<p>The displacement map, <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>, defines the inverse of the mapping
102.2452 +performed.</p>
102.2453 +
102.2454 +<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> are performed using non-premultiplied color values. If the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p>
102.2455 +
102.2456 +<p>This filter can have arbitrary non-localized effect on the input which
102.2457 +might require substantial buffering in the processing pipeline. However with
102.2458 +this formulation, any intermediate buffering needs can be determined by
102.2459 +<a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> which represents the maximum range of displacement in either x
102.2460 +or y.</p>
102.2461 +
102.2462 +<p>When applying this filter, the source pixel location will often lie
102.2463 +between several source pixels. In this case it is recommended that high
102.2464 +quality viewers apply an interpolent on the surrounding pixels, for example
102.2465 +bilinear or bicubic, rather than simply selecting the nearest source pixel.
102.2466 +Depending on the speed of the available interpolents, this choice may be
102.2467 +affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property
102.2468 +setting.</p>
102.2469 +
102.2470 +<p>The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property only applies to the 
102.2471 +  <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> source image and does not apply to the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image.
102.2472 +  The <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image must remain in its current color space.
102.2473 +</p>
102.2474 +
102.2475 +<div class="adef-list">
102.2476 +<p><em>Attribute definitions:</em></p>
102.2477 +<dl><dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span>
102.2478 +  = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Displacement scale factor. The amount is expressed in the coordinate
102.2479 +      system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.2480 +      element.<br/>
102.2481 +      When the value of this attribute is <span class="attr-value">0</span>,
102.2482 +      this operation has no effect on the source image.<br/>
102.2483 +      <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> is <span class="attr-value">0</span>.</p>
102.2484 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapXChannelSelectorAttribute"><span class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the x-axis.
102.2485 +    The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'xChannelSelector'</a> is <span class="attr-value">A</span>.
102.2486 +    <br/>
102.2487 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapYChannelSelectorAttribute"><span class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the y-axis.
102.2488 +    The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'yChannelSelector'</a> is <span class="attr-value">A</span>.
102.2489 +    <br/>
102.2490 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> =
102.2491 +  "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute)</em>"</dt><dd>The second input image, which is used to displace the pixels in the
102.2492 +      image from attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. This attribute can take on the same
102.2493 +      values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.<br/>
102.2494 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2495 +</div>
102.2496 +
102.2497 +<h2 id="feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></h2>
102.2498 +
102.2499 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFlood’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2500 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a></li></ul></dd></dl></div>
102.2501 +
102.2502 +<p>This filter primitive creates a rectangle filled with the color and
102.2503 +opacity values from properties <span class="prop-name">‘flood-color’</span>
102.2504 +and <span class="prop-name">‘flood-opacity’</span>. The rectangle is as large
102.2505 +as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>
102.2506 +established by the <span class="element-name">‘feFlood’</span> element.</p>
102.2507 +
102.2508 +<div class="adef-list">
102.2509 +  </div>
102.2510 +
102.2511 +<p>The <span class="prop-name">‘flood-color’</span> property indicates what
102.2512 +color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter
102.2513 +primitive subregion</a>. The keyword <span class="attr-value">currentColor</span> and ICC colors can be specified in the
102.2514 +same manner as within a &lt;paint&gt; specification for the <span class="prop-name">‘fill’</span> and <span class="prop-name">‘stroke’</span>
102.2515 +properties.</p>
102.2516 +
102.2517 +<div class="propdef">
102.2518 +<dl><dt id="FloodColorProperty"><span class="propdef-title prop-name">‘flood-color’</span></dt><dd>
102.2519 +      <table summary="flood-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/>
102.2520 +              <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor">&lt;color&gt;</a>
102.2521 +              [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor">&lt;icccolor&gt;</a>] |<br/>
102.2522 +              <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>black</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
102.2523 +    </dd></dl>
102.2524 +</div>
102.2525 +
102.2526 +<p>The <span class="prop-name">‘flood-opacity’</span> property defines the
102.2527 +opacity value to use across the entire <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
102.2528 +
102.2529 +<div class="propdef">
102.2530 +<dl><dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">‘flood-opacity’</span></dt><dd>
102.2531 +      <table summary="flood-opacity property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>&lt;opacity-value&gt; | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>1</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
102.2532 +    </dd></dl>
102.2533 +</div>
102.2534 +
102.2535 +<h2 id="feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2>
102.2536 +
102.2537 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feGaussianBlur’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2538 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a></li></ul></dd></dl></div>
102.2539 +
102.2540 +<p>This filter primitive performs a Gaussian blur on the input image.</p>
102.2541 +
102.2542 +<p>The Gaussian blur kernel is an approximation of the normalized
102.2543 +convolution:</p>
102.2544 +
102.2545 +<p class="filterformula">G(x,y) = H(x)I(y)</p>
102.2546 +<p>where 
102.2547 +<span>H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span>
102.2548 +</p>
102.2549 +<p>and</p> 
102.2550 +<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p>
102.2551 +<p>with 's' being the standard deviation in the x direction
102.2552 +and 't' being the standard deviation in the y direction, as specified by <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>.</p>
102.2553 +
102.2554 +<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a> can be either one or two numbers.
102.2555 +If two numbers are provided, the first number represents a standard deviation
102.2556 +value along the x-axis of the current coordinate system and the second value
102.2557 +represents a standard deviation in Y. If one number is provided, then that
102.2558 +value is used for both X and Y.</p>
102.2559 +
102.2560 +<p>Even if only one value is provided for <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>, this can be implemented as a
102.2561 +separable convolution.</p>
102.2562 +
102.2563 +<p>For larger values of 's' (s &gt;= 2.0), an approximation can be used:
102.2564 +Three successive box-blurs build a piece-wise quadratic convolution kernel,
102.2565 +which approximates the Gaussian kernel to within roughly 3%.</p>
102.2566 +
102.2567 +<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p>
102.2568 +
102.2569 +<p>... if d is odd, use three box-blurs of size 'd', centered on the output
102.2570 +pixel.</p>
102.2571 +
102.2572 +<p>... if d is even, two box-blurs of size 'd' (the first one centered on the
102.2573 +pixel boundary between the output pixel and the one to the left, the second
102.2574 +one centered on the pixel boundary between the output pixel and the one to
102.2575 +the right) and one box blur of size 'd+1' centered on the output pixel.</p>
102.2576 +
102.2577 +<p>Frequently this operation will take place on alpha-only images, such as
102.2578 +that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. The implementation may notice this
102.2579 +and optimize the single channel case. If the input has infinite extent and is
102.2580 +constant, this operation has no effect. If the input has infinite extent and
102.2581 +is a tile, the filter is evaluated with periodic boundary conditions.</p>
102.2582 +
102.2583 +<div class="adef-list">
102.2584 +<p><em>Attribute definitions:</em></p>
102.2585 +<dl><dt id="feGaussianBlurStdDeviationAttribute"><span class="adef">stdDeviation</span> =
102.2586 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>The standard deviation for the blur operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
102.2587 +      s are provided, the first number represents a standard deviation value
102.2588 +      along the x-axis of the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.2589 +      element. The second value represents a standard deviation in Y. If one
102.2590 +      number is provided, then that value is used for both X and Y.<br/>
102.2591 +      A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br/>
102.2592 +      If the attribute is not specified, then the effect is as if a value of
102.2593 +      <span class="attr-value">0</span> were specified.<br/>
102.2594 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2595 +</div>
102.2596 +
102.2597 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
102.2598 +use of the <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive
102.2599 +to create a drop shadow effect.</p>
102.2600 +
102.2601 +<h2 id="feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></h2>
102.2602 +
102.2603 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feUnsharpMask’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2604 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a></li><li><a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a></li><li><a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEUnsharpMaskElement">SVGFEUnsharpMaskElement</a></li></ul></dd></dl></div>
102.2605 +
102.2606 +<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p>
102.2607 +
102.2608 +<p>The filter first does a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p>
102.2609 +
102.2610 +<p>
102.2611 +For controlling the result there are three attributes that can be used:
102.2612 +  <ul><li>the <a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute controls how much to blur the input image</li><li>the <a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a> attribute can be used for controlling when the difference should not be subtracted</li><li>the <a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a> attribute specifies an optional multiplier for the difference to subtract</li></ul> 
102.2613 +</p>
102.2614 +
102.2615 +<h2 id="feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></h2>
102.2616 +
102.2617 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feImage’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2618 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateTransformElement"><span class="element-name">‘animateTransform’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a></li><li><a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a></li></ul></dd></dl></div>
102.2619 +
102.2620 +<p>This filter primitive refers to a graphic external to this filter element,
102.2621 +which is loaded or rendered into an RGBA raster and becomes the result of the
102.2622 +filter primitive.</p>
102.2623 +
102.2624 +<p>This filter primitive can refer to an external image or can be a reference
102.2625 +to another piece of SVG. It produces an image similar to the built-in image
102.2626 +source <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that the graphic comes
102.2627 +from an external source.</p>
102.2628 +
102.2629 +<p>If the <span class="attr-name">xlink:href</span> references a stand-alone
102.2630 +image resource such as a JPEG, PNG or SVG file, then the image resource is
102.2631 +rendered according to the behavior of the <span class="element-name">‘image’</span> element; otherwise, the referenced
102.2632 +resource is rendered according to the behavior of the <span class="element-name">‘use’</span> element. In either case, the current user
102.2633 +coordinate system depends on the value of attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.2634 +The processing of the <span class="attr-name">preserveAspectRatio</span>
102.2635 +attribute on the <span class="element-name">‘feImage’</span> element is
102.2636 +identical to that of the <a href="struct.html#ImageElement"><span class="element-name">‘image’</span></a> element.</p>
102.2637 +
102.2638 +<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate
102.2639 +system, it is recommended that high quality viewers make use of appropriate
102.2640 +interpolation techniques, for example bilinear or bicubic.</span> Depending on the
102.2641 +speed of the available interpolents, this choice may be affected by the <span class="prop-name">‘image-rendering’</span> property setting.</p>
102.2642 +
102.2643 +<div class="adef-list">
102.2644 +<p><em>Attribute definitions:</em></p>
102.2645 +<dl><dt id="feImageHrefAttribute"><span class="adef">xlink:href</span> =
102.2646 +  "<span class="attr-value">&lt;IRI&gt;</span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
102.2647 +      to an image resource or to an element.
102.2648 +      <br/>
102.2649 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2650 +</div>
102.2651 +
102.2652 +<h2 id="feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></h2>
102.2653 +
102.2654 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMerge’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2655 +                <ul class="no-bullets"><li><a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a></li></ul></dd></dl></div>
102.2656 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMergeNode’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2657 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a></li></ul></dd></dl></div>
102.2658 +
102.2659 +<p>This filter primitive composites input image layers on top of each other
102.2660 +using the <em>over</em> operator with <em>Input1</em> (corresponding to the
102.2661 +first <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element) on the bottom
102.2662 +and the last specified input, <em>InputN</em> (corresponding to the last <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element), on top.</p>
102.2663 +
102.2664 +<p>Many effects produce a number of intermediate layers in order to create
102.2665 +the final output image. This filter allows us to collapse those into a single
102.2666 +image. Although this could be done by using n-1 Composite-filters, it is more
102.2667 +convenient to have this common operation available in this form, and offers
102.2668 +the implementation some additional flexibility.</p>
102.2669 +
102.2670 +<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements,
102.2671 +each of which has an <a href="#CommonAttributes"><span class="attr-name">in</span></a> attribute.</p>
102.2672 +
102.2673 +<p>The canonical implementation of feMerge is to render the entire effect
102.2674 +into one RGBA layer, and then render the resulting layer on the output
102.2675 +device. In certain cases (in particular if the output device itself is a
102.2676 +continuous tone device), and since merging is associative, it might be a
102.2677 +sufficient approximation to evaluate the effect one layer at a time and
102.2678 +render each layer individually onto the output device bottom to top.</p>
102.2679 +
102.2680 +<p>If the topmost image input is <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> and this <span class="element-name">‘feMerge’</span> is the last filter primitive in the
102.2681 +filter, the implementation is encouraged to render the layers up to that
102.2682 +point, and then render the <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> directly from its vector
102.2683 +description on top.</p>
102.2684 +
102.2685 +<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes
102.2686 +use of the <span class="element-name">feMerge</span> filter primitive to
102.2687 +composite two intermediate filter results together.</p>
102.2688 +
102.2689 +<h2 id="feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></h2>
102.2690 +
102.2691 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMorphology’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2692 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a></li></ul></dd></dl></div>
102.2693 +
102.2694 +<p>This filter primitive performs "fattening" or "thinning" of artwork. It is
102.2695 +particularly useful for fattening or thinning an alpha channel.</p>
102.2696 +
102.2697 +<p>The dilation (or erosion) kernel is a rectangle with a width of
102.2698 +2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the
102.2699 +output pixel is the individual component-wise maximum of the corresponding
102.2700 +R,G,B,A values in the input image's kernel rectangle. In erosion, the output
102.2701 +pixel is the individual component-wise minimum of the corresponding R,G,B,A
102.2702 +values in the input image's kernel rectangle.</p>
102.2703 +
102.2704 +<p>Frequently this operation will take place on alpha-only images, such as
102.2705 +that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. In that case, the implementation
102.2706 +might want to optimize the single channel case.</p>
102.2707 +
102.2708 +<p>If the input has infinite extent and is constant, this operation has no
102.2709 +effect. If the input has infinite extent and is a tile, the filter is
102.2710 +evaluated with periodic boundary conditions.</p>
102.2711 +
102.2712 +<p>Because <span class="element-name">‘feMorphology’</span> operates on
102.2713 +premultipied color values, it will always result in color values less than or
102.2714 +equal to the alpha channel.</p>
102.2715 +
102.2716 +<div class="adef-list">
102.2717 +<p><em>Attribute definitions:</em></p>
102.2718 +<dl><dt id="feMorphologyOperatorAttribute"><span class="adef">operator</span> = "<em>erode | dilate</em>"</dt><dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten)
102.2719 +      the source graphic.<br/>
102.2720 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> =
102.2721 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>The radius (or radii) for the operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
102.2722 +      s are provided, the first number represents a x-radius and the second
102.2723 +      value represents a y-radius. If one number is provided, then that value
102.2724 +      is used for both X and Y. The values are in the coordinate system
102.2725 +      established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.2726 +      element.<br/>
102.2727 +      A negative or zero value disables the effect of the given filter
102.2728 +      primitive (i.e., the result is a transparent black image).<br/>
102.2729 +      If the attribute is not specified, then the effect is as if a value of
102.2730 +      <span class="attr-value">0</span> were specified.<br/>
102.2731 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2732 +</div>
102.2733 +
102.2734 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.2735 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.2736 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.2737 +&lt;svg width="5cm" height="7cm" viewBox="0 0 700 500"
102.2738 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
102.2739 +  &lt;title&gt;Example feMorphology - Examples of erode and dilate&lt;/title&gt;
102.2740 +  &lt;desc&gt;Five text strings drawn as outlines.
102.2741 +        The first is unfiltered. The second and third use 'erode'.
102.2742 +        The fourth and fifth use 'dilate'.&lt;/desc&gt;
102.2743 +  &lt;defs&gt;
102.2744 +    &lt;filter id="Erode3"&gt;
102.2745 +      &lt;feMorphology operator="erode" in="SourceGraphic" radius="3" /&gt;
102.2746 +    &lt;/filter&gt;
102.2747 +    &lt;filter id="Erode6"&gt;
102.2748 +      &lt;feMorphology operator="erode" in="SourceGraphic" radius="6" /&gt;
102.2749 +    &lt;/filter&gt;
102.2750 +    &lt;filter id="Dilate3"&gt;
102.2751 +      &lt;feMorphology operator="dilate" in="SourceGraphic" radius="3" /&gt;
102.2752 +    &lt;/filter&gt;
102.2753 +    &lt;filter id="Dilate6"&gt;
102.2754 +      &lt;feMorphology operator="dilate" in="SourceGraphic" radius="6" /&gt;
102.2755 +    &lt;/filter&gt;
102.2756 +  &lt;/defs&gt;
102.2757 +  &lt;rect fill="none" stroke="blue" stroke-width="2"  
102.2758 +        x="1" y="1" width="698" height="498"/&gt;
102.2759 +  &lt;g enable-background="new" &gt;
102.2760 +    &lt;g font-family="Verdana" font-size="75" 
102.2761 +              fill="none" stroke="black" stroke-width="6" &gt;
102.2762 +      &lt;text x="50" y="90"&gt;Unfiltered&lt;/text&gt;
102.2763 +      &lt;text x="50" y="180" filter="url(#Erode3)" &gt;Erode radius 3&lt;/text&gt;
102.2764 +      &lt;text x="50" y="270" filter="url(#Erode6)" &gt;Erode radius 6&lt;/text&gt;
102.2765 +      &lt;text x="50" y="360" filter="url(#Dilate3)" &gt;Dilate radius 3&lt;/text&gt;
102.2766 +      &lt;text x="50" y="450" filter="url(#Dilate6)" &gt;Dilate radius 6&lt;/text&gt;
102.2767 +    &lt;/g&gt;
102.2768 +  &lt;/g&gt;
102.2769 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feMorphology.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feMorphology.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.2770 +
102.2771 +<h2 id="feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></h2>
102.2772 +
102.2773 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feOffset’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2774 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a></li></ul></dd></dl></div>
102.2775 +
102.2776 +<p>This filter primitive offsets the input image relative to its current
102.2777 +position in the image space by the specified vector.</p>
102.2778 +
102.2779 +<p>This is important for effects like drop shadows.</p>
102.2780 +
102.2781 +<p>When applying this filter, the destination location may be offset by a
102.2782 +fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer
102.2783 +should make use of appropriate interpolation techniques, for example bilinear
102.2784 +or bicubic.</span> This is especially recommended for dynamic viewers where this
102.2785 +interpolation provides visually smoother movement of images. For static
102.2786 +viewers this is less of a concern. Close attention should be made to the
102.2787 +<span class="prop-name">‘image-rendering’</span> property setting to
102.2788 +determine the authors intent.</p>
102.2789 +
102.2790 +<div class="adef-list">
102.2791 +<p><em>Attribute definitions:</em></p>
102.2792 +<dl><dt id="feOffsetDxAttribute"><span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>The amount to offset the input graphic along the x-axis. The offset
102.2793 +      amount is expressed in the coordinate system established by attribute
102.2794 +      <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.2795 +      element.<br/>
102.2796 +      If the attribute is not specified, then the effect is as if a value of
102.2797 +      <span class="attr-value">0</span> were specified.<br/>
102.2798 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feOffsetDyAttribute"><span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>The amount to offset the input graphic along the y-axis. The offset
102.2799 +      amount is expressed in the coordinate system established by attribute
102.2800 +      <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.2801 +      element.<br/>
102.2802 +      If the attribute is not specified, then the effect is as if a value of
102.2803 +      <span class="attr-value">0</span> were specified.<br/>
102.2804 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2805 +</div>
102.2806 +
102.2807 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
102.2808 +use of the <span class="element-name">feOffset</span> filter primitive to
102.2809 +offset the drop shadow from the original source graphic.</p>
102.2810 +
102.2811 +<h2 id="feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></h2>
102.2812 +
102.2813 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpecularLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2814 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a></li><li><a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a></li></ul></dd></dl></div>
102.2815 +
102.2816 +<p>This filter primitive lights a source graphic using the alpha channel as a
102.2817 +bump map. The resulting image is an RGBA image based on the light color. The
102.2818 +lighting calculation follows the standard specular component of the Phong
102.2819 +lighting model. The resulting image depends on the light color, light
102.2820 +position and surface geometry of the input bump map. The result of the
102.2821 +lighting calculation is added. The filter primitive assumes that the viewer
102.2822 +is at infinity in the z direction (i.e., the unit vector in the eye direction
102.2823 +is (0,0,1) everywhere).</p>
102.2824 +
102.2825 +<p>This filter primitive produces an image which contains the specular
102.2826 +reflection part of the lighting calculation. Such a map is intended to be
102.2827 +combined with a texture using the <em>add</em> term of the
102.2828 +<em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> method. Multiple light sources
102.2829 +can be simulated by adding several of these light maps before applying it to
102.2830 +the texture image.</p>
102.2831 +
102.2832 +<p>The resulting RGBA image is computed as follows:</p>
102.2833 +
102.2834 +<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H,
102.2835 +specularExponent) * L<sub>r<br/>
102.2836 +</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
102.2837 +L<sub>g<br/>
102.2838 +</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
102.2839 +L<sub>b<br/>
102.2840 +</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p>
102.2841 +
102.2842 +<p>where</p>
102.2843 +<dl><dd>k<sub>s</sub> = specular lighting constant<br/>
102.2844 +      N = surface normal unit vector, a function of x and y<br/>
102.2845 +      H = "halfway" unit vector between eye unit vector and light unit
102.2846 +      vector<br/>
102.2847 +      <br/>
102.2848 +      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd></dl>
102.2849 +
102.2850 +<p>See <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> for definition of N and
102.2851 +(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p>
102.2852 +
102.2853 +<p>The definition of H reflects our assumption of the constant eye vector E =
102.2854 +(0,0,1):</p>
102.2855 +
102.2856 +<p class="filterformula">H = (L + E) / Norm(L+E)</p>
102.2857 +
102.2858 +<p>where L is the light unit vector.</p>
102.2859 +
102.2860 +<p>Unlike the <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a>, the <span class="element-name">‘feSpecularLighting’</span> filter produces a non-opaque
102.2861 +image. This is due to the fact that the specular result
102.2862 +(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be
102.2863 +added to the textured image. The alpha channel of the result is the max of
102.2864 +the color components, so that where the specular light is zero, no additional
102.2865 +coverage is added to the image and a fully white highlight will add
102.2866 +opacity.</p>
102.2867 +
102.2868 +<p>The <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> and <span class="element-name">‘feSpecularLighting’</span> filters will often be
102.2869 +applied together. An implementation may detect this and calculate both maps
102.2870 +in one pass, instead of two.</p>
102.2871 +
102.2872 +<div class="adef-list">
102.2873 +<p><em>Attribute definitions:</em></p>
102.2874 +<dl><dt id="feSpecularLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/>
102.2875 +      If the attribute is not specified, then the effect is as if a value of
102.2876 +      <span class="attr-value">1</span> were specified.<br/>
102.2877 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularConstantAttribute"><span class="adef">specularConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>ks in Phong lighting model. In SVG, this can be any non-negative
102.2878 +      number.<br/>
102.2879 +      If the attribute is not specified, then the effect is as if a value of
102.2880 +      <span class="attr-value">1</span> were specified.<br/>
102.2881 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Exponent for specular term, larger is more "shiny". Range 1.0 to
102.2882 +      128.0.<br/>
102.2883 +      If the attribute is not specified, then the effect is as if a value of
102.2884 +      <span class="attr-value">1</span> were specified.<br/>
102.2885 +      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
102.2886 +      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
102.2887 +      to the same value as &lt;dx&gt;. Indicates the intended distance in
102.2888 +      current filter units (i.e., units as determined by the value of
102.2889 +      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and
102.2890 +      <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation
102.2891 +      formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined
102.2892 +      in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the
102.2893 +      <code>dx</code> and <code>dy</code> values should represent very small
102.2894 +      deltas relative to a given <code>(x,y)</code> position, which might be
102.2895 +      implemented in some cases as one pixel in the intermediate image
102.2896 +      offscreen bitmap, which is a pixel-based coordinate system, and thus
102.2897 +      potentially not scalable. For some level of consistency across display
102.2898 +      media and user agents, it is necessary that a value be provided for at
102.2899 +      least one of <span class="attr-name">filterRes</span> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate
102.2900 +      images are in the <a href="#Introduction">Introduction</a> and in the
102.2901 +      description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">filterRes</span></a>.<br/>
102.2902 +      If a negative or zero value is specified the default value will be used
102.2903 +      instead. <br/>
102.2904 +      <span class="anim-target">Animatable: yes.</span></dd></dl>
102.2905 +</div>
102.2906 +
102.2907 +<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>. The light color is
102.2908 +specified by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p>
102.2909 +
102.2910 +<p><a href="#AnExample">The example</a> at the start of this chapter makes
102.2911 +use of the <span class="element-name">feSpecularLighting</span> filter
102.2912 +primitive to achieve a highly reflective, 3D glowing effect.</p>
102.2913 +
102.2914 +<h2 id="feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></h2>
102.2915 +
102.2916 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feTile’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.2917 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a></li></ul></dd></dl></div>
102.2918 +
102.2919 +<p>This filter primitive fills a target rectangle with a repeated, tiled
102.2920 +pattern of an input image. 
102.2921 +The target rectangle is as large as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established
102.2922 +by the <span class="element-name">‘feTile’</span> element.
102.2923 +</p>
102.2924 +
102.2925 +<p>Typically, the input image has been defined with its own <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to
102.2926 +define a reference tile. <span class="element-name">‘feTile’</span>
102.2927 +replicates the reference tile in both X and Y to completely fill the target
102.2928 +rectangle. The top/left corner of each given tile is at location
102.2929 +<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the
102.2930 +top/left of the input image's filter primitive subregion, <code>width</code>
102.2931 +and <code>height</code> represent the width and height of the input image's
102.2932 +filter primitive subregion, and <code>i</code> and <code>j</code> can be any
102.2933 +integer value. In most cases, the input image will have a smaller filter
102.2934 +primitive subregion than the <span class="element-name">‘feTile’</span> in
102.2935 +order to achieve a repeated pattern effect.</p>
102.2936 +
102.2937 +<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled
102.2938 +image to avoid artifacts between tiles, particularly in situations where the
102.2939 +user to device transform includes shear and/or rotation. Unless care is
102.2940 +taken, interpolation can lead to edge pixels in the tile having opacity
102.2941 +values lower or higher than expected due to the interaction of painting
102.2942 +adjacent tiles which each have partial overlap with particular pixels.</p>
102.2943 +
102.2944 +<div class="adef-list">
102.2945 +  </div>
102.2946 +
102.2947 +<h2 id="feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></h2>
102.2948 +
102.2949 +
102.2950 +
102.2951 +<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p>
102.2952 +
102.2953 +<p>This filter primitive creates an image using the Perlin turbulence
102.2954 +function. It allows the synthesis of artificial textures like clouds or
102.2955 +marble. For a detailed description the of the Perlin turbulence function, see
102.2956 +"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting
102.2957 +image will fill the entire <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> for this filter primitive.</p>
102.2958 +
102.2959 +<p>It is possible to create bandwidth-limited noise by synthesizing only one
102.2960 +octave.</p>
102.2961 +
102.2962 +<p>The C code below shows the exact algorithm used for this filter effect.</p>
102.2963 +
102.2964 +<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of
102.2965 +-1 to 1 (the actual result might exceed this range in some cases). To convert
102.2966 +to a color value, use the formula <code>colorValue = ((turbFunctionResult *
102.2967 +255) + 255) / 2</code>, then clamp to the range 0 to 255.</p>
102.2968 +
102.2969 +<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0
102.2970 +to 1 (the actual result might exceed this range in some cases). To convert to
102.2971 +a color value, use the formula <code>colorValue = (turbFunctionResult *
102.2972 +255)</code>, then clamp to the range 0 to 255.</p>
102.2973 +
102.2974 +<p>The following order is used for applying the pseudo random numbers. An
102.2975 +initial seed value is computed based on the <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> attribute. 
102.2976 +Then the implementation computes the lattice
102.2977 +points for R, then continues getting additional pseudo random numbers
102.2978 +relative to the last generated pseudo random number and computes the lattice
102.2979 +points for G, and so on for B and A.</p>
102.2980 +
102.2981 +<p>The generated color and alpha values are in the color space determined by
102.2982 +the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property:</p>
102.2983 +<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2].
102.2984 +Algorithm is: r = (a * r) mod m
102.2985 +where a = 16807 and m = 2**31 - 1 = 2147483647
102.2986 +See [Park &amp; Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988
102.2987 +To test: the algorithm should produce the result 1043618065
102.2988 +as the 10,000th generated number if the original seed is 1.
102.2989 +*/
102.2990 +#define RAND_m 2147483647 /* 2**31 - 1 */
102.2991 +#define RAND_a 16807 /* 7**5; primitive root of m */
102.2992 +#define RAND_q 127773 /* m / a */
102.2993 +#define RAND_r 2836 /* m % a */
102.2994 +long setup_seed(long lSeed)
102.2995 +{
102.2996 +  if (lSeed &lt;= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1;
102.2997 +  if (lSeed &gt; RAND_m - 1) lSeed = RAND_m - 1;
102.2998 +  return lSeed;
102.2999 +}
102.3000 +long random(long lSeed)
102.3001 +{
102.3002 +  long result;
102.3003 +  result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q);
102.3004 +  if (result &lt;= 0) result += RAND_m;
102.3005 +  return result;
102.3006 +}
102.3007 +#define BSize 0x100
102.3008 +#define BM 0xff
102.3009 +#define PerlinN 0x1000
102.3010 +#define NP 12 /* 2^PerlinN */
102.3011 +#define NM 0xfff
102.3012 +static uLatticeSelector[BSize + BSize + 2];
102.3013 +static double fGradient[4][BSize + BSize + 2][2];
102.3014 +struct StitchInfo
102.3015 +{
102.3016 +  int nWidth; // How much to subtract to wrap for stitching.
102.3017 +  int nHeight;
102.3018 +  int nWrapX; // Minimum value to wrap.
102.3019 +  int nWrapY;
102.3020 +};
102.3021 +static void init(long lSeed)
102.3022 +{
102.3023 +  double s;
102.3024 +  int i, j, k;
102.3025 +  lSeed = setup_seed(lSeed);
102.3026 +  for(k = 0; k &lt; 4; k++)
102.3027 +  {
102.3028 +    for(i = 0; i &lt; BSize; i++)
102.3029 +    {
102.3030 +      uLatticeSelector[i] = i;
102.3031 +      for (j = 0; j &lt; 2; j++)
102.3032 +        fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize;
102.3033 +      s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1]));
102.3034 +      fGradient[k][i][0] /= s;
102.3035 +      fGradient[k][i][1] /= s;
102.3036 +    }
102.3037 +  }
102.3038 +  while(--i)
102.3039 +  {
102.3040 +    k = uLatticeSelector[i];
102.3041 +    uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize];
102.3042 +    uLatticeSelector[j] = k;
102.3043 +  }
102.3044 +  for(i = 0; i &lt; BSize + 2; i++)
102.3045 +  {
102.3046 +    uLatticeSelector[BSize + i] = uLatticeSelector[i];
102.3047 +    for(k = 0; k &lt; 4; k++)
102.3048 +      for(j = 0; j &lt; 2; j++)
102.3049 +        fGradient[k][BSize + i][j] = fGradient[k][i][j];
102.3050 +  }
102.3051 +}
102.3052 +#define s_curve(t) ( t * t * (3. - 2. * t) )
102.3053 +#define lerp(t, a, b) ( a + t * (b - a) )
102.3054 +double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo)
102.3055 +{
102.3056 +  int bx0, bx1, by0, by1, b00, b10, b01, b11;
102.3057 +  double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v;
102.3058 +  register i, j;
102.3059 +  t = vec[0] + PerlinN;
102.3060 +  bx0 = (int)t;
102.3061 +  bx1 = bx0+1;
102.3062 +  rx0 = t - (int)t;
102.3063 +  rx1 = rx0 - 1.0f;
102.3064 +  t = vec[1] + PerlinN;
102.3065 +  by0 = (int)t;
102.3066 +  by1 = by0+1;
102.3067 +  ry0 = t - (int)t;
102.3068 +  ry1 = ry0 - 1.0f;
102.3069 +  // If stitching, adjust lattice points accordingly.
102.3070 +  if(pStitchInfo != NULL)
102.3071 +  {
102.3072 +    if(bx0 &gt;= pStitchInfo-&gt;nWrapX)
102.3073 +      bx0 -= pStitchInfo-&gt;nWidth;
102.3074 +    if(bx1 &gt;= pStitchInfo-&gt;nWrapX)
102.3075 +      bx1 -= pStitchInfo-&gt;nWidth;
102.3076 +    if(by0 &gt;= pStitchInfo-&gt;nWrapY)
102.3077 +      by0 -= pStitchInfo-&gt;nHeight;
102.3078 +    if(by1 &gt;= pStitchInfo-&gt;nWrapY)
102.3079 +      by1 -= pStitchInfo-&gt;nHeight;
102.3080 +  }
102.3081 +  bx0 &amp;= BM;
102.3082 +  bx1 &amp;= BM;
102.3083 +  by0 &amp;= BM;
102.3084 +  by1 &amp;= BM;
102.3085 +  i = uLatticeSelector[bx0];
102.3086 +  j = uLatticeSelector[bx1];
102.3087 +  b00 = uLatticeSelector[i + by0];
102.3088 +  b10 = uLatticeSelector[j + by0];
102.3089 +  b01 = uLatticeSelector[i + by1];
102.3090 +  b11 = uLatticeSelector[j + by1];
102.3091 +  sx = double(s_curve(rx0));
102.3092 +  sy = double(s_curve(ry0));
102.3093 +  q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1];
102.3094 +  q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1];
102.3095 +  a = lerp(sx, u, v);
102.3096 +  q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1];
102.3097 +  q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1];
102.3098 +  b = lerp(sx, u, v);
102.3099 +  return lerp(sy, a, b);
102.3100 +}
102.3101 +double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY,
102.3102 +          int nNumOctaves, bool bFractalSum, bool bDoStitching,
102.3103 +          double fTileX, double fTileY, double fTileWidth, double fTileHeight)
102.3104 +{
102.3105 +  StitchInfo stitch;
102.3106 +  StitchInfo *pStitchInfo = NULL; // Not stitching when NULL.
102.3107 +  // Adjust the base frequencies if necessary for stitching.
102.3108 +  if(bDoStitching)
102.3109 +  {
102.3110 +    // When stitching tiled turbulence, the frequencies must be adjusted
102.3111 +    // so that the tile borders will be continuous.
102.3112 +    if(fBaseFreqX != 0.0)
102.3113 +    {
102.3114 +      double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth;
102.3115 +      double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth;
102.3116 +      if(fBaseFreqX / fLoFreq &lt; fHiFreq / fBaseFreqX)
102.3117 +        fBaseFreqX = fLoFreq;
102.3118 +      else
102.3119 +        fBaseFreqX = fHiFreq;
102.3120 +    }
102.3121 +    if(fBaseFreqY != 0.0)
102.3122 +    {
102.3123 +      double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight;
102.3124 +      double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight;
102.3125 +      if(fBaseFreqY / fLoFreq &lt; fHiFreq / fBaseFreqY)
102.3126 +        fBaseFreqY = fLoFreq;
102.3127 +      else
102.3128 +        fBaseFreqY = fHiFreq;
102.3129 +    }
102.3130 +    // Set up initial stitch values.
102.3131 +    pStitchInfo = &amp;stitch;
102.3132 +    stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f);
102.3133 +    stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth;
102.3134 +    stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f);
102.3135 +    stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight;
102.3136 +  }
102.3137 +  double fSum = 0.0f;
102.3138 +  double vec[2];
102.3139 +  vec[0] = point[0] * fBaseFreqX;
102.3140 +  vec[1] = point[1] * fBaseFreqY;
102.3141 +  double ratio = 1;
102.3142 +  for(int nOctave = 0; nOctave &lt; nNumOctaves; nOctave++)
102.3143 +  {
102.3144 +    if(bFractalSum)
102.3145 +      fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio);
102.3146 +    else
102.3147 +      fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio);
102.3148 +    vec[0] *= 2;
102.3149 +    vec[1] *= 2;
102.3150 +    ratio *= 2;
102.3151 +    if(pStitchInfo != NULL)
102.3152 +    {
102.3153 +      // Update stitch values. Subtracting PerlinN before the multiplication and
102.3154 +      // adding it afterward simplifies to subtracting it once.
102.3155 +      stitch.nWidth *= 2;
102.3156 +      stitch.nWrapX = 2 * stitch.nWrapX - PerlinN;
102.3157 +      stitch.nHeight *= 2;
102.3158 +      stitch.nWrapY = 2 * stitch.nWrapY - PerlinN;
102.3159 +    }
102.3160 +  }
102.3161 +  return fSum;
102.3162 +}</pre>
102.3163 +
102.3164 +<div class="adef-list">
102.3165 +<p><em>Attribute definitions:</em></p>
102.3166 +<dl><dt id="feTurbulenceBaseFrequencyAttribute"><span class="adef">baseFrequency</span> =
102.3167 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>
102.3168 +		<p>The base frequency (frequencies) parameter(s) for the noise function.
102.3169 +      If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s are provided, the first number represents a base frequency in the X
102.3170 +      direction and the second value represents a base frequency in the Y
102.3171 +      direction. If one number is provided, then that value is used for both
102.3172 +      X and Y.</p>
102.3173 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> is <span class="attr-value">0</span>.</p>
102.3174 +		<p>Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</p>
102.3175 +      	<p><span class="anim-target">Animatable: yes.</span></p>
102.3176 +</dd><dt id="feTurbulenceNumOctavesAttribute"><span class="adef">numOctaves</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></em>"</dt><dd>
102.3177 +		<p>The numOctaves parameter for the noise function.</p>
102.3178 +      	<p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> is <span class="attr-value">1</span>.</span></p>
102.3179 +		<p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</span></p>
102.3180 +      	<p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p>
102.3181 +	</dd><dt id="feTurbulenceSeedAttribute">
102.3182 +  <span class="adef">seed</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
102.3183 +		<p>The starting number for the pseudo random number generator.</p>
102.3184 +		<p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> is <span class="attr-value">0</span>.</span></p>
102.3185 +	  	<p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 
102.3186 +	  truncated, i.e. rounded to the closest integer value towards zero.</span></p>
102.3187 +      	<p><span class="anim-target">Animatable: yes.</span></p>
102.3188 +	</dd><dt id="feTurbulenceStitchTilesAttribute"><span class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt><dd>
102.3189 +	<p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt
102.3190 +      it made to achieve smooth transitions at the border of tiles which
102.3191 +      contain a turbulence function. Sometimes the result will show clear
102.3192 +      discontinuities at the tile borders.<br/>
102.3193 +      If <span class="attr-value">stitchTiles="stitch"</span>, then the user
102.3194 +      agent will automatically adjust baseFrequency-x and baseFrequency-y
102.3195 +      values such that the <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> node's width and height (i.e., the
102.3196 +      width and height of the current subregion) contains an integral number
102.3197 +      of the Perlin tile width and height for the first octave. The
102.3198 +      baseFrequency will be adjusted up or down depending on which way has
102.3199 +      the smallest relative (not absolute) change as follows: Given the
102.3200 +      frequency, calculate <code>lowFreq=floor(width*frequency)/width</code>
102.3201 +      and <code>hiFreq=ceil(width*frequency)/width</code>. If
102.3202 +      frequency/lowFreq &lt; hiFreq/frequency then use lowFreq, else use
102.3203 +      hiFreq. While generating turbulence values, generate lattice vectors as
102.3204 +      normal for Perlin Noise, except for those lattice points that lie on
102.3205 +      the right or bottom edges of the active area (the size of the resulting
102.3206 +      tile). In those cases, copy the lattice vector from the opposite edge
102.3207 +      of the active area.</p>
102.3208 +	  <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> attribute is <span class="attr-value">noStitch</span>.</span></p>
102.3209 +      <p><span class="anim-target">Animatable: yes.</span></p>
102.3210 +	</dd><dt id="feTurbulenceTypeAttribute">
102.3211 +  <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt><dd>
102.3212 +		<p>Indicates whether the filter primitive should perform a noise or
102.3213 +      turbulence function.</p>
102.3214 +		<p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> attribute is <span class="attr-value">turbulence</span>.</span></p>
102.3215 +      	<p><span class="anim-target">Animatable: yes.</span></p>
102.3216 +	</dd></dl>
102.3217 +</div>
102.3218 +
102.3219 +<pre class="xml">&lt;?xml version="1.0"?&gt;
102.3220 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
102.3221 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
102.3222 +&lt;svg width="450px" height="325px" viewBox="0 0 450 325"
102.3223 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
102.3224 +  &lt;title&gt;Example feTurbulence - Examples of feTurbulence operations&lt;/title&gt;
102.3225 +  &lt;desc&gt;Six rectangular areas showing the effects of 
102.3226 +        various parameter settings for feTurbulence.&lt;/desc&gt;
102.3227 +  &lt;g  font-family="Verdana" text-anchor="middle" font-size="10" &gt;
102.3228 +    &lt;defs&gt;
102.3229 +      &lt;filter id="Turb1" filterUnits="objectBoundingBox" 
102.3230 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3231 +        &lt;feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/&gt;
102.3232 +      &lt;/filter&gt;
102.3233 +      &lt;filter id="Turb2" filterUnits="objectBoundingBox" 
102.3234 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3235 +        &lt;feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/&gt;
102.3236 +      &lt;/filter&gt;
102.3237 +      &lt;filter id="Turb3" filterUnits="objectBoundingBox" 
102.3238 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3239 +        &lt;feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/&gt;
102.3240 +      &lt;/filter&gt;
102.3241 +      &lt;filter id="Turb4" filterUnits="objectBoundingBox" 
102.3242 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3243 +        &lt;feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/&gt;
102.3244 +      &lt;/filter&gt;
102.3245 +      &lt;filter id="Turb5" filterUnits="objectBoundingBox" 
102.3246 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3247 +        &lt;feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/&gt;
102.3248 +      &lt;/filter&gt;
102.3249 +      &lt;filter id="Turb6" filterUnits="objectBoundingBox" 
102.3250 +              x="0%" y="0%" width="100%" height="100%"&gt;
102.3251 +        &lt;feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/&gt;
102.3252 +      &lt;/filter&gt;
102.3253 +    &lt;/defs&gt;
102.3254 +
102.3255 +    &lt;rect x="1" y="1" width="448" height="323"
102.3256 +          fill="none" stroke="blue" stroke-width="1"  /&gt;
102.3257 +
102.3258 +    &lt;rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  /&gt;
102.3259 +    &lt;text x="75" y="117"&gt;type=turbulence&lt;/text&gt;
102.3260 +    &lt;text x="75" y="129"&gt;baseFrequency=0.05&lt;/text&gt;
102.3261 +    &lt;text x="75" y="141"&gt;numOctaves=2&lt;/text&gt;
102.3262 +
102.3263 +    &lt;rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  /&gt;
102.3264 +    &lt;text x="225" y="117"&gt;type=turbulence&lt;/text&gt;
102.3265 +    &lt;text x="225" y="129"&gt;baseFrequency=0.1&lt;/text&gt;
102.3266 +    &lt;text x="225" y="141"&gt;numOctaves=2&lt;/text&gt;
102.3267 +
102.3268 +    &lt;rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  /&gt;
102.3269 +    &lt;text x="375" y="117"&gt;type=turbulence&lt;/text&gt;
102.3270 +    &lt;text x="375" y="129"&gt;baseFrequency=0.05&lt;/text&gt;
102.3271 +    &lt;text x="375" y="141"&gt;numOctaves=8&lt;/text&gt;
102.3272 +
102.3273 +    &lt;rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  /&gt;
102.3274 +    &lt;text x="75" y="272"&gt;type=fractalNoise&lt;/text&gt;
102.3275 +    &lt;text x="75" y="284"&gt;baseFrequency=0.1&lt;/text&gt;
102.3276 +    &lt;text x="75" y="296"&gt;numOctaves=4&lt;/text&gt;
102.3277 +
102.3278 +    &lt;rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  /&gt;
102.3279 +    &lt;text x="225" y="272"&gt;type=fractalNoise&lt;/text&gt;
102.3280 +    &lt;text x="225" y="284"&gt;baseFrequency=0.4&lt;/text&gt;
102.3281 +    &lt;text x="225" y="296"&gt;numOctaves=4&lt;/text&gt;
102.3282 +
102.3283 +    &lt;rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  /&gt;
102.3284 +    &lt;text x="375" y="272"&gt;type=fractalNoise&lt;/text&gt;
102.3285 +    &lt;text x="375" y="284"&gt;baseFrequency=0.1&lt;/text&gt;
102.3286 +    &lt;text x="375" y="296"&gt;numOctaves=1&lt;/text&gt;
102.3287 +  &lt;/g&gt;
102.3288 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feTurbulence.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feTurbulence.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
102.3289 +
102.3290 +
102.3291 +<h2 id="feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></h2>
102.3292 +
102.3293 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDropShadow’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
102.3294 +                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li><li><a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a></li></ul></dd></dl></div>
102.3295 +
102.3296 +<p>This filter creates a drop shadow of the input image. It is a shorthand
102.3297 +filter, and is defined in terms of combinations of other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>.
102.3298 +The expectation is that it can be optimized more easily by
102.3299 +implementations.</p>
102.3300 +
102.3301 +<p>The result of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter
102.3302 +primitive is equivalent to the following: 
102.3303 +
102.3304 +<pre class="examplesource">
102.3305 +  &lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt; 
102.3306 +  &lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt; 
102.3307 +  &lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt; 
102.3308 +  &lt;feComposite in2="offsetblur" operator="in"/&gt; 
102.3309 +  &lt;feMerge&gt; 
102.3310 +    &lt;feMergeNode/&gt;
102.3311 +    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt; 
102.3312 +  &lt;/feMerge&gt;
102.3313 +</pre>
102.3314 +</p>
102.3315 +
102.3316 +<p>
102.3317 +The above divided into steps:
102.3318 +<ol><li>Take the alpha channel of the input to the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> and do processing as if the
102.3319 +    following <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> was applied: 
102.3320 +    <pre class="examplesource">	&lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt;</pre>
102.3321 +    <br/>
102.3322 +  </li><li>Offset the result of step 1 by <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> and <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> as
102.3323 +    specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>
102.3324 +    element, equivalent to applying an <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> with these parameters: 
102.3325 +    <pre class="examplesource">	&lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt;</pre>
102.3326 +    <br/>
102.3327 +  </li><li>Do processing as if an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element with <a href="#FloodColorProperty"><span class="prop-name">‘flood-color’</span></a> and 
102.3328 +	<a href="#FloodOpacityProperty"><span class="prop-name">‘flood-opacity’</span></a> as specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> was applied: 
102.3329 +    <pre class="examplesource">	&lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt;</pre>
102.3330 +    <br/>
102.3331 +  </li><li>Composite the result of the <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> in step 3 with the result of
102.3332 +    the <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> in step 2 as if an <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> filter primitive with <a href="#feCompositeOperatorAttribute"><span class="attr-name">operator</span></a>='in' was applied: 
102.3333 +    <pre class="examplesource">	&lt;feComposite in2="offsetblur" operator="in"/&gt;</pre>
102.3334 +    <br/>
102.3335 +  </li><li>Finally merge the result of the previous step, doing processing as if
102.3336 +    the following <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> was performed: 
102.3337 +    <pre class="examplesource">	&lt;feMerge&gt;
102.3338 +	    &lt;feMergeNode/&gt;
102.3339 +	    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt;
102.3340 +	&lt;/feMerge&gt;</pre>
102.3341 +  </li></ol>
102.3342 +</p>
102.3343 +
102.3344 +<p class="note implementation">Note that while the definition of the <span class="element-name">‘feDropShadow’</span> filter primitive says that it can
102.3345 +be expanded into an equivalent tree it is not required that it is implemented
102.3346 +like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately.
102.3347 +</p> 
102.3348 +
102.3349 +<p>Beyond the DOM interface <a href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way
102.3350 +of accessing the internals of the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the
102.3351 +filter primitive is implemented as an equivalent tree then that tree must not
102.3352 +be exposed to the DOM.</span> </p>
102.3353 +
102.3354 +<div class="adef-list">
102.3355 +<p><em>Attribute definitions:</em></p>
102.3356 +<dl><dt id="feDropShadowDxAttribute">
102.3357 +  <span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
102.3358 +		<p>The x offset of the drop shadow.</p> 
102.3359 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> is <span class="attr-value">2</span>.</p> 
102.3360 +		<p>This attribute is then forwarded to the <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p>
102.3361 +		<p><span class="anim-target">Animatable: yes.</span></p>
102.3362 +	</dd><dt id="feDropShadowDyAttribute">
102.3363 +  <span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
102.3364 +		<p>The y offset of the drop shadow.</p>
102.3365 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> is <span class="attr-value">2</span>. </p>
102.3366 +		<p>This attribute is then forwarded to the <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p>
102.3367 +		<p><span class="anim-target">Animatable: yes.</span></p>
102.3368 +	</dd><dt id="feDropShadowStdDeviationAttribute"><span class="adef">stdDeviation</span> =
102.3369 +  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>
102.3370 +		<p>The standard deviation for the blur operation in the drop shadow.</p>
102.3371 +		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> is <span class="attr-value">2</span>.</p> 
102.3372 +		<p>This attribute is then forwarded to the <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute of the internal
102.3373 +			<a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.</p>
102.3374 +		<p><span class="anim-target">Animatable: yes.</span></p>
102.3375 +	</dd></dl>
102.3376 +</div>
102.3377 +
102.3378 +<div class="note">
102.3379 +<h2 id="feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></h2>
102.3380 +The SVG WG is looking at providing a shorthand for diffuse+specular.
102.3381 +</div>
102.3382 +
102.3383 +<div class="note">
102.3384 +<h2 id="feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></h2>
102.3385 +The SVG WG is looking to add a filter primitive that allows programmatic access
102.3386 +to the pixel data for a filter, e.g via OpenCL.
102.3387 +</div>
102.3388 +
102.3389 +<h2 id="RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</h2>
102.3390 +
102.3391 +<p>The schema for Filter Effects 1.0 is written in <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a>
102.3392 +[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses
102.3393 +the datatypes from <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part
102.3394 +2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and
102.3395 +modularity to be much more naturally expressed than using DTD syntax. The
102.3396 +RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas,
102.3397 +or combined with other schemas in other languages into a multi-namespace,
102.3398 +multi-grammar schema using <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation
102.3399 +Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p>
102.3400 +
102.3401 +<p>Unlike a DTD, the schema used for validation is not hardcoded into the
102.3402 +document instance. There is no equivalent to the DOCTYPE declaration. Simply
102.3403 +point your editor or other validation tool to the IRI of the schema (or your
102.3404 +local cached copy, as you prefer).</p>
102.3405 +
102.3406 +<p>
102.3407 +The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 
102.3408 +</p>
102.3409 +
102.3410 +<h2 id="DOMInterfaces">30 DOM interfaces</h2>
102.3411 +<div class="note">
102.3412 +The interfaces below will be made available in a IDL file for an upcoming draft.
102.3413 +</div>
102.3414 +
102.3415 + 
102.3416 +
102.3417 +<h2 id="DOMInterfaces">30 DOM interfaces</h2>
102.3418 +
102.3419 +<h3 id="InterfaceImageData">31.1 Interface ImageData</h3>
102.3420 +
102.3421 +
102.3422 + The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface.
102.3423 +<pre class="idl">interface <b>ImageData</b> {
102.3424 +  readonly attribute long <a href="#__svg__ImageData__width">width</a>;
102.3425 +  readonly attribute long <a href="#__svg__ImageData__height">height</a>;
102.3426 +  readonly attribute  <a href="#__svg__ImageData__data">data</a>;
102.3427 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.3428 +<dt id="__svg__ImageData__width"><b>width</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div>
102.3429 + The width of the bitmap that the ImageData represents.
102.3430 +</div></dd>
102.3431 +<dt id="__svg__ImageData__height"><b>height</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div>
102.3432 + The height of the bitmap that the ImageData represents.
102.3433 +</div></dd>
102.3434 +<dt id="__svg__ImageData__data"><b>data</b><span class="idl-type-parenthetical"> (readonly )</span></dt><dd><div>
102.3435 + An array of pixel values that is the bitmap. This array must
102.3436 + always be in the form of width×height×4 integer values. The
102.3437 + pixel data is in left-to-right order, starting from the top-left
102.3438 + corner, and going row by row downwards. Every pixel is
102.3439 + represented by four integer values, red, green, blue and alpha,
102.3440 + in that order. The range of each color component is 0..255. The
102.3441 + intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 
102.3442 + canvas interfaces, in particular see 
102.3443 + <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>.
102.3444 +</div></dd></dl></dd></dl>
102.3445 +
102.3446 +<h3 id="InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</h3>
102.3447 +
102.3448 +
102.3449 +
102.3450 + The <a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a> interface corresponds to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.3451 + element.
102.3452 +<pre class="idl">interface <b>SVGFilterElement</b> : ::svg::SVGElement,
102.3453 +                             ::svg::SVGURIReference,
102.3454 +                             ::svg::SVGLangSpace,
102.3455 +                             ::svg::SVGExternalResourcesRequired,
102.3456 +                             ::svg::SVGStylable,
102.3457 +                             ::svg::SVGUnitTypes {
102.3458 +
102.3459 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__filterUnits">filterUnits</a>;
102.3460 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__primitiveUnits">primitiveUnits</a>;
102.3461 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__x">x</a>;
102.3462 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__y">y</a>;
102.3463 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__width">width</a>;
102.3464 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__height">height</a>;
102.3465 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResX">filterResX</a>;
102.3466 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResY">filterResY</a>;
102.3467 +
102.3468 +  void <a href="#__svg__SVGFilterElement__setFilterRes">setFilterRes</a>(in unsigned long filterResX, in unsigned long filterResY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>);
102.3469 +  <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <a href="#__svg__SVGFilterElement__apply">apply</a>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> source);
102.3470 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.3471 +<dt id="__svg__SVGFilterElement__filterUnits"><b>filterUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3472 + Corresponds to attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.3473 + element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>.
102.3474 +</div></dd>
102.3475 +<dt id="__svg__SVGFilterElement__primitiveUnits"><b>primitiveUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3476 + Corresponds to attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.3477 + element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>.
102.3478 +</div></dd>
102.3479 +<dt id="__svg__SVGFilterElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3480 + Corresponds to attribute <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.3481 +</div></dd>
102.3482 +<dt id="__svg__SVGFilterElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3483 + Corresponds to attribute <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.3484 +</div></dd>
102.3485 +<dt id="__svg__SVGFilterElement__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3486 + Corresponds to attribute <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.3487 +</div></dd>
102.3488 +<dt id="__svg__SVGFilterElement__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3489 + Corresponds to attribute <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
102.3490 +</div></dd>
102.3491 +<dt id="__svg__SVGFilterElement__filterResX"><b>filterResX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3492 + Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.3493 + element.  Contains the X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
102.3494 +</div></dd>
102.3495 +<dt id="__svg__SVGFilterElement__filterResY"><b>filterResY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3496 + Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
102.3497 + element.  Contains the Y component (possibly computed automatically) of
102.3498 + attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
102.3499 +</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes">
102.3500 +<dt id="__svg__SVGFilterElement__setFilterRes">void <b>setFilterRes</b>(in unsigned long <var>filterResX</var>, in unsigned long <var>filterResY</var>)</dt><dd><div>
102.3501 + Sets the values for attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
102.3502 +
102.3503 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">unsigned long <var>filterResX</var></div> <div> The X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
102.3504 +</div></li><li><div class="parameter">unsigned long <var>filterResY</var></div> <div> The Y component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
102.3505 +</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt
102.3506 +   to change the value of a readonly attribute.
102.3507 +</dd></dl></dd></dl></dd>
102.3508 +<dt id="__svg__SVGFilterElement__apply"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <b>apply</b>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var>)</dt><dd><div>
102.3509 + Applies the filter to the given ImageData object and returns the result.
102.3510 +
102.3511 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var></div> <div> The image to apply the filter to.
102.3512 +</div></li></ol></dd><dt>Returns</dt><dd><div> The result of the filter, see <a class="idlinterface" href="#InterfaceImageData">ImageData</a> for how to construct this.
102.3513 +</div></dd></dl></dd></dl></dd></dl>
102.3514 +
102.3515 +
102.3516 +<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</h3>
102.3517 +
102.3518 +
102.3519 +
102.3520 + This interface defines the set of DOM attributes that are common across
102.3521 + the filter primitive interfaces.
102.3522 +<pre class="idl">interface <b>SVGFilterPrimitiveStandardAttributes</b> : ::svg::SVGStylable {
102.3523 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__x">x</a>;
102.3524 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__y">y</a>;
102.3525 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__width">width</a>;
102.3526 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__height">height</a>;
102.3527 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__result">result</a>;
102.3528 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.3529 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3530 + Corresponds to attribute <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a> on the given element.
102.3531 +</div></dd>
102.3532 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3533 + Corresponds to attribute <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a> on the given element.
102.3534 +</div></dd>
102.3535 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3536 + Corresponds to attribute <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> on the given element.
102.3537 +</div></dd>
102.3538 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
102.3539 + Corresponds to attribute <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> on the given element.
102.3540 +</div></dd>
102.3541 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__result"><b>result</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3542 + Corresponds to attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> on the given element.
102.3543 +</div></dd></dl></dd></dl>
102.3544 +
102.3545 +
102.3546 +<h3 id="InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</h3>
102.3547 +
102.3548 +
102.3549 +
102.3550 + The <a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a> interface corresponds to the <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
102.3551 + element.
102.3552 +<pre class="idl">interface <b>SVGFEBlendElement</b> : ::svg::SVGElement,
102.3553 +                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3554 +
102.3555 +  // Blend Mode Types
102.3556 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN">SVG_FEBLEND_MODE_UNKNOWN</a> = 0;
102.3557 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL">SVG_FEBLEND_MODE_NORMAL</a> = 1;
102.3558 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY">SVG_FEBLEND_MODE_MULTIPLY</a> = 2;
102.3559 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN">SVG_FEBLEND_MODE_SCREEN</a> = 3;
102.3560 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN">SVG_FEBLEND_MODE_DARKEN</a> = 4;
102.3561 +  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN">SVG_FEBLEND_MODE_LIGHTEN</a> = 5;
102.3562 +
102.3563 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in1">in1</a>;
102.3564 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in2">in2</a>;
102.3565 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEBlendElement__mode">mode</a>;
102.3566 +};</pre><dl class="interface"><dt>Constants in group “Blend Mode Typesâ€:</dt><dd><dl class="constants">
102.3567 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN"><b>SVG_FEBLEND_MODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3568 + The type is not one of predefined types. It is invalid to attempt to
102.3569 + define a new value of this type or to attempt to switch an existing
102.3570 + value to this type.
102.3571 +
102.3572 +</div></dd>
102.3573 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL"><b>SVG_FEBLEND_MODE_NORMAL</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3574 + Corresponds to value <span class="attr-value">'normal'</span>.
102.3575 +
102.3576 +</div></dd>
102.3577 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY"><b>SVG_FEBLEND_MODE_MULTIPLY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3578 + Corresponds to value <span class="attr-value">'multiply'</span>.
102.3579 +
102.3580 +</div></dd>
102.3581 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN"><b>SVG_FEBLEND_MODE_SCREEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3582 + Corresponds to value <span class="attr-value">'screen'</span>.
102.3583 +
102.3584 +</div></dd>
102.3585 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN"><b>SVG_FEBLEND_MODE_DARKEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3586 + Corresponds to value <span class="attr-value">'darken'</span>.
102.3587 +
102.3588 +</div></dd>
102.3589 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN"><b>SVG_FEBLEND_MODE_LIGHTEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3590 + Corresponds to value <span class="attr-value">'lighten'</span>.
102.3591 +
102.3592 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.3593 +<dt id="__svg__SVGFEBlendElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3594 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
102.3595 + element.
102.3596 +</div></dd>
102.3597 +<dt id="__svg__SVGFEBlendElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3598 + Corresponds to attribute <a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
102.3599 + element.
102.3600 +</div></dd>
102.3601 +<dt id="__svg__SVGFEBlendElement__mode"><b>mode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3602 + Corresponds to attribute <a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
102.3603 + element.  Takes one of the SVG_FEBLEND_MODE_* constants defined on
102.3604 + this interface.
102.3605 +</div></dd></dl></dd></dl>
102.3606 +
102.3607 +
102.3608 +<h3 id="InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</h3>
102.3609 +
102.3610 +
102.3611 +
102.3612 + The <a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a> interface corresponds to the
102.3613 + <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> element.
102.3614 +<pre class="idl">interface <b>SVGFEColorMatrixElement</b> : ::svg::SVGElement,
102.3615 +                                    <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3616 +
102.3617 +  // Color Matrix Types
102.3618 +  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN">SVG_FECOLORMATRIX_TYPE_UNKNOWN</a> = 0;
102.3619 +  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX">SVG_FECOLORMATRIX_TYPE_MATRIX</a> = 1;
102.3620 +  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE">SVG_FECOLORMATRIX_TYPE_SATURATE</a> = 2;
102.3621 +  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE">SVG_FECOLORMATRIX_TYPE_HUEROTATE</a> = 3;
102.3622 +  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA">SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</a> = 4;
102.3623 +
102.3624 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEColorMatrixElement__in1">in1</a>;
102.3625 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEColorMatrixElement__type">type</a>;
102.3626 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEColorMatrixElement__values">values</a>;
102.3627 +};</pre><dl class="interface"><dt>Constants in group “Color Matrix Typesâ€:</dt><dd><dl class="constants">
102.3628 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN"><b>SVG_FECOLORMATRIX_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3629 + The type is not one of predefined types. It is invalid to attempt to
102.3630 + define a new value of this type or to attempt to switch an existing
102.3631 + value to this type.
102.3632 +
102.3633 +</div></dd>
102.3634 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX"><b>SVG_FECOLORMATRIX_TYPE_MATRIX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3635 + Corresponds to value <span class="attr-value">'matrix'</span>.
102.3636 +
102.3637 +</div></dd>
102.3638 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE"><b>SVG_FECOLORMATRIX_TYPE_SATURATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3639 + Corresponds to value <span class="attr-value">'saturate'</span>.
102.3640 +
102.3641 +</div></dd>
102.3642 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE"><b>SVG_FECOLORMATRIX_TYPE_HUEROTATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3643 + Corresponds to value <span class="attr-value">'hueRotate'</span>.
102.3644 +
102.3645 +</div></dd>
102.3646 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA"><b>SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3647 + Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>.
102.3648 +
102.3649 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.3650 +<dt id="__svg__SVGFEColorMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3651 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
102.3652 + element.
102.3653 +</div></dd>
102.3654 +<dt id="__svg__SVGFEColorMatrixElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3655 + Corresponds to attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
102.3656 + element.  Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined
102.3657 + on this interface.
102.3658 +</div></dd>
102.3659 +<dt id="__svg__SVGFEColorMatrixElement__values"><b>values</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
102.3660 + Corresponds to attribute <a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
102.3661 + element.
102.3662 +</div></dd></dl></dd></dl>
102.3663 +
102.3664 +
102.3665 +<h3 id="InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</h3>
102.3666 +
102.3667 +
102.3668 +
102.3669 + The <a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a> interface corresponds to the
102.3670 + <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element.
102.3671 +<pre class="idl">interface <b>SVGFEComponentTransferElement</b> : ::svg::SVGElement,
102.3672 +                                          <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3673 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEComponentTransferElement__in1">in1</a>;
102.3674 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.3675 +<dt id="__svg__SVGFEComponentTransferElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3676 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>
102.3677 + element.
102.3678 +</div></dd></dl></dd></dl>
102.3679 +
102.3680 +
102.3681 +<h3 id="InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</h3>
102.3682 +
102.3683 +
102.3684 +
102.3685 + This interface defines a base interface used by the component transfer
102.3686 + function interfaces.
102.3687 +<pre class="idl">interface <b>SVGComponentTransferFunctionElement</b> : ::svg::SVGElement {
102.3688 +
102.3689 +  // Component Transfer Types
102.3690 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN">SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</a> = 0;
102.3691 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY">SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</a> = 1;
102.3692 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE">SVG_FECOMPONENTTRANSFER_TYPE_TABLE</a> = 2;
102.3693 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE">SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</a> = 3;
102.3694 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR">SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</a> = 4;
102.3695 +  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA">SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</a> = 5;
102.3696 +
102.3697 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGComponentTransferFunctionElement__type">type</a>;
102.3698 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGComponentTransferFunctionElement__tableValues">tableValues</a>;
102.3699 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__slope">slope</a>;
102.3700 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__intercept">intercept</a>;
102.3701 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__amplitude">amplitude</a>;
102.3702 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__exponent">exponent</a>;
102.3703 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__offset">offset</a>;
102.3704 +};</pre><dl class="interface"><dt>Constants in group “Component Transfer Typesâ€:</dt><dd><dl class="constants">
102.3705 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN"><b>SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3706 + The type is not one of predefined types. It is invalid to attempt to
102.3707 + define a new value of this type or to attempt to switch an existing
102.3708 + value to this type.
102.3709 +
102.3710 +</div></dd>
102.3711 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY"><b>SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3712 + Corresponds to value <span class="attr-value">'identity'</span>.
102.3713 +
102.3714 +</div></dd>
102.3715 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE"><b>SVG_FECOMPONENTTRANSFER_TYPE_TABLE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3716 + Corresponds to value <span class="attr-value">'table'</span>.
102.3717 +
102.3718 +</div></dd>
102.3719 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE"><b>SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3720 + Corresponds to value <span class="attr-value">'discrete'</span>.
102.3721 +
102.3722 +</div></dd>
102.3723 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR"><b>SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3724 + Corresponds to value <span class="attr-value">'linear'</span>.
102.3725 +
102.3726 +</div></dd>
102.3727 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA"><b>SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3728 + Corresponds to value <span class="attr-value">'gamma'</span>.
102.3729 +
102.3730 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.3731 +<dt id="__svg__SVGComponentTransferFunctionElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3732 + Corresponds to attribute <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> on the given
102.3733 + element.  Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined
102.3734 + on this interface.
102.3735 +</div></dd>
102.3736 +<dt id="__svg__SVGComponentTransferFunctionElement__tableValues"><b>tableValues</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
102.3737 + Corresponds to attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a> on the given element.
102.3738 +</div></dd>
102.3739 +<dt id="__svg__SVGComponentTransferFunctionElement__slope"><b>slope</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3740 + Corresponds to attribute <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a> on the given element.
102.3741 +</div></dd>
102.3742 +<dt id="__svg__SVGComponentTransferFunctionElement__intercept"><b>intercept</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3743 + Corresponds to attribute <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a> on the given element.
102.3744 +</div></dd>
102.3745 +<dt id="__svg__SVGComponentTransferFunctionElement__amplitude"><b>amplitude</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3746 + Corresponds to attribute <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a> on the given element.
102.3747 +</div></dd>
102.3748 +<dt id="__svg__SVGComponentTransferFunctionElement__exponent"><b>exponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3749 + Corresponds to attribute <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a> on the given element.
102.3750 +</div></dd>
102.3751 +<dt id="__svg__SVGComponentTransferFunctionElement__offset"><b>offset</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3752 + Corresponds to attribute <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a> on the given element.
102.3753 +</div></dd></dl></dd></dl>
102.3754 +
102.3755 +
102.3756 +<h3 id="InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</h3>
102.3757 +
102.3758 +
102.3759 +
102.3760 + The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncR’</span></a>
102.3761 + element.
102.3762 +<pre class="idl">interface <b>SVGFEFuncRElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
102.3763 +};</pre>
102.3764 +
102.3765 +
102.3766 +<h3 id="InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</h3>
102.3767 +
102.3768 +
102.3769 +
102.3770 + The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncG’</span></a>
102.3771 + element.
102.3772 +<pre class="idl">interface <b>SVGFEFuncGElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
102.3773 +};</pre>
102.3774 +
102.3775 +
102.3776 +<h3 id="InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</h3>
102.3777 +
102.3778 +
102.3779 +
102.3780 + The <a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncB’</span></a>
102.3781 + element.
102.3782 +<pre class="idl">interface <b>SVGFEFuncBElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
102.3783 +};</pre>
102.3784 +
102.3785 +
102.3786 +<h3 id="InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</h3>
102.3787 +
102.3788 +
102.3789 +
102.3790 + The <a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncA’</span></a>
102.3791 + element.
102.3792 +<pre class="idl">interface <b>SVGFEFuncAElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
102.3793 +};</pre>
102.3794 +
102.3795 +
102.3796 +<h3 id="InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</h3>
102.3797 +
102.3798 +
102.3799 +
102.3800 + The <a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a> interface corresponds to the
102.3801 + <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> element.
102.3802 +<pre class="idl">interface <b>SVGFECompositeElement</b> : ::svg::SVGElement,
102.3803 +                                  <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3804 +
102.3805 +  // Composite Operators
102.3806 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN">SVG_FECOMPOSITE_OPERATOR_UNKNOWN</a> = 0;
102.3807 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER">SVG_FECOMPOSITE_OPERATOR_OVER</a> = 1;
102.3808 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN">SVG_FECOMPOSITE_OPERATOR_IN</a> = 2;
102.3809 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT">SVG_FECOMPOSITE_OPERATOR_OUT</a> = 3;
102.3810 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP">SVG_FECOMPOSITE_OPERATOR_ATOP</a> = 4;
102.3811 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR">SVG_FECOMPOSITE_OPERATOR_XOR</a> = 5;
102.3812 +  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC">SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</a> = 6;
102.3813 +
102.3814 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in1">in1</a>;
102.3815 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in2">in2</a>;
102.3816 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFECompositeElement__operator">operator</a>;
102.3817 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k1">k1</a>;
102.3818 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k2">k2</a>;
102.3819 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k3">k3</a>;
102.3820 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k4">k4</a>;
102.3821 +};</pre><dl class="interface"><dt>Constants in group “Composite Operatorsâ€:</dt><dd><dl class="constants">
102.3822 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN"><b>SVG_FECOMPOSITE_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3823 + The type is not one of predefined types. It is invalid to attempt to
102.3824 + define a new value of this type or to attempt to switch an existing
102.3825 + value to this type.
102.3826 +
102.3827 +</div></dd>
102.3828 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER"><b>SVG_FECOMPOSITE_OPERATOR_OVER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3829 + Corresponds to value <span class="attr-value">'over'</span>.
102.3830 +
102.3831 +</div></dd>
102.3832 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN"><b>SVG_FECOMPOSITE_OPERATOR_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3833 + Corresponds to value <span class="attr-value">'in'</span>.
102.3834 +
102.3835 +</div></dd>
102.3836 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT"><b>SVG_FECOMPOSITE_OPERATOR_OUT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3837 + Corresponds to value <span class="attr-value">'out'</span>.
102.3838 +
102.3839 +</div></dd>
102.3840 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP"><b>SVG_FECOMPOSITE_OPERATOR_ATOP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3841 + Corresponds to value <span class="attr-value">'atop'</span>.
102.3842 +
102.3843 +</div></dd>
102.3844 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR"><b>SVG_FECOMPOSITE_OPERATOR_XOR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3845 + Corresponds to value <span class="attr-value">'xor'</span>.
102.3846 +
102.3847 +</div></dd>
102.3848 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC"><b>SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3849 + Corresponds to value <span class="attr-value">'arithmetic'</span>.
102.3850 +
102.3851 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.3852 +<dt id="__svg__SVGFECompositeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3853 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3854 + element.
102.3855 +</div></dd>
102.3856 +<dt id="__svg__SVGFECompositeElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3857 + Corresponds to attribute <a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3858 + element.
102.3859 +</div></dd>
102.3860 +<dt id="__svg__SVGFECompositeElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3861 + Corresponds to attribute <a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3862 + element.  Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined
102.3863 + on this interface.
102.3864 +</div></dd>
102.3865 +<dt id="__svg__SVGFECompositeElement__k1"><b>k1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3866 + Corresponds to attribute <a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3867 + element.
102.3868 +</div></dd>
102.3869 +<dt id="__svg__SVGFECompositeElement__k2"><b>k2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3870 + Corresponds to attribute <a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3871 + element.
102.3872 +</div></dd>
102.3873 +<dt id="__svg__SVGFECompositeElement__k3"><b>k3</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3874 + Corresponds to attribute <a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3875 + element.
102.3876 +</div></dd>
102.3877 +<dt id="__svg__SVGFECompositeElement__k4"><b>k4</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3878 + Corresponds to attribute <a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
102.3879 + element.
102.3880 +</div></dd></dl></dd></dl>
102.3881 +
102.3882 +
102.3883 +<h3 id="InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</h3>
102.3884 +
102.3885 +
102.3886 +
102.3887 + The <a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a> interface corresponds to the
102.3888 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3889 +<pre class="idl">interface <b>SVGFEConvolveMatrixElement</b> : ::svg::SVGElement,
102.3890 +                                       <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3891 +
102.3892 +  // Edge Mode Values
102.3893 +  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN">SVG_EDGEMODE_UNKNOWN</a> = 0;
102.3894 +  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE">SVG_EDGEMODE_DUPLICATE</a> = 1;
102.3895 +  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP">SVG_EDGEMODE_WRAP</a> = 2;
102.3896 +  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE">SVG_EDGEMODE_NONE</a> = 3;
102.3897 +
102.3898 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEConvolveMatrixElement__in1">in1</a>;
102.3899 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderX">orderX</a>;
102.3900 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderY">orderY</a>;
102.3901 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelMatrix">kernelMatrix</a>;
102.3902 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__divisor">divisor</a>;
102.3903 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__bias">bias</a>;
102.3904 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetX">targetX</a>;
102.3905 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetY">targetY</a>;
102.3906 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEConvolveMatrixElement__edgeMode">edgeMode</a>;
102.3907 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX">kernelUnitLengthX</a>;
102.3908 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY">kernelUnitLengthY</a>;
102.3909 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a> <a href="#__svg__SVGFEConvolveMatrixElement__preserveAlpha">preserveAlpha</a>;
102.3910 +};</pre><dl class="interface"><dt>Constants in group “Edge Mode Valuesâ€:</dt><dd><dl class="constants">
102.3911 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN"><b>SVG_EDGEMODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3912 + The type is not one of predefined types. It is invalid to attempt to
102.3913 + define a new value of this type or to attempt to switch an existing
102.3914 + value to this type.
102.3915 +
102.3916 +</div></dd>
102.3917 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE"><b>SVG_EDGEMODE_DUPLICATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3918 + Corresponds to value <span class="attr-value">'duplicate'</span>.
102.3919 +
102.3920 +</div></dd>
102.3921 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP"><b>SVG_EDGEMODE_WRAP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3922 + Corresponds to value <span class="attr-value">'wrap'</span>.
102.3923 +
102.3924 +</div></dd>
102.3925 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE"><b>SVG_EDGEMODE_NONE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.3926 + Corresponds to value <span class="attr-value">'none'</span>.
102.3927 +
102.3928 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.3929 +<dt id="__svg__SVGFEConvolveMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3930 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given
102.3931 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3932 +</div></dd>
102.3933 +<dt id="__svg__SVGFEConvolveMatrixElement__orderX"><b>orderX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3934 + Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given
102.3935 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3936 +</div></dd>
102.3937 +<dt id="__svg__SVGFEConvolveMatrixElement__orderY"><b>orderY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3938 + Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given
102.3939 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3940 +</div></dd>
102.3941 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelMatrix"><b>kernelMatrix</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
102.3942 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> on the given
102.3943 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3944 +</div></dd>
102.3945 +<dt id="__svg__SVGFEConvolveMatrixElement__divisor"><b>divisor</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3946 + Corresponds to attribute <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> on the given
102.3947 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3948 +</div></dd>
102.3949 +<dt id="__svg__SVGFEConvolveMatrixElement__bias"><b>bias</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3950 + Corresponds to attribute <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> on the given
102.3951 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3952 +</div></dd>
102.3953 +<dt id="__svg__SVGFEConvolveMatrixElement__targetX"><b>targetX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3954 + Corresponds to attribute <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> on the given
102.3955 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3956 +</div></dd>
102.3957 +<dt id="__svg__SVGFEConvolveMatrixElement__targetY"><b>targetY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.3958 + Corresponds to attribute <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> on the given
102.3959 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3960 +</div></dd>
102.3961 +<dt id="__svg__SVGFEConvolveMatrixElement__edgeMode"><b>edgeMode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.3962 + Corresponds to attribute <a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a> on the given
102.3963 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.  Takes one of the SVG_EDGEMODE_*
102.3964 + constants defined on this interface.
102.3965 +</div></dd>
102.3966 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3967 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.3968 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3969 +</div></dd>
102.3970 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3971 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.3972 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3973 +</div></dd>
102.3974 +<dt id="__svg__SVGFEConvolveMatrixElement__preserveAlpha"><b>preserveAlpha</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a>)</span></dt><dd><div>
102.3975 + Corresponds to attribute <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> on the given
102.3976 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
102.3977 +</div></dd></dl></dd></dl>
102.3978 +
102.3979 +
102.3980 +<h3 id="InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</h3>
102.3981 +
102.3982 +
102.3983 +
102.3984 + The <a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a> interface corresponds to the
102.3985 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
102.3986 +<pre class="idl">interface <b>SVGFEDiffuseLightingElement</b> : ::svg::SVGElement,
102.3987 +                                        <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.3988 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDiffuseLightingElement__in1">in1</a>;
102.3989 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__surfaceScale">surfaceScale</a>;
102.3990 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__diffuseConstant">diffuseConstant</a>;
102.3991 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>;
102.3992 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>;
102.3993 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.3994 +<dt id="__svg__SVGFEDiffuseLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.3995 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>
102.3996 + element.
102.3997 +</div></dd>
102.3998 +<dt id="__svg__SVGFEDiffuseLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.3999 + Corresponds to attribute <a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given
102.4000 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
102.4001 +</div></dd>
102.4002 +<dt id="__svg__SVGFEDiffuseLightingElement__diffuseConstant"><b>diffuseConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4003 + Corresponds to attribute <a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a> on the given
102.4004 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
102.4005 +</div></dd>
102.4006 +<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4007 + Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.4008 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
102.4009 +</div></dd>
102.4010 +<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4011 + Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.4012 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
102.4013 +</div></dd></dl></dd></dl>
102.4014 +
102.4015 +
102.4016 +<h3 id="InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</h3>
102.4017 +
102.4018 +
102.4019 +
102.4020 + The <a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a> interface corresponds to the
102.4021 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
102.4022 +<pre class="idl">interface <b>SVGFEDistantLightElement</b> : ::svg::SVGElement {
102.4023 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__azimuth">azimuth</a>;
102.4024 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__elevation">elevation</a>;
102.4025 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4026 +<dt id="__svg__SVGFEDistantLightElement__azimuth"><b>azimuth</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4027 + Corresponds to attribute <a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a> on the given
102.4028 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
102.4029 +</div></dd>
102.4030 +<dt id="__svg__SVGFEDistantLightElement__elevation"><b>elevation</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4031 + Corresponds to attribute <a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a> on the given
102.4032 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
102.4033 +</div></dd></dl></dd></dl>
102.4034 +
102.4035 +
102.4036 +<h3 id="InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</h3>
102.4037 +
102.4038 +
102.4039 +
102.4040 + The <a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a> interface corresponds to the
102.4041 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
102.4042 +<pre class="idl">interface <b>SVGFEPointLightElement</b> : ::svg::SVGElement {
102.4043 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__x">x</a>;
102.4044 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__y">y</a>;
102.4045 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__z">z</a>;
102.4046 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4047 +<dt id="__svg__SVGFEPointLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4048 + Corresponds to attribute <a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a> on the given
102.4049 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
102.4050 +</div></dd>
102.4051 +<dt id="__svg__SVGFEPointLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4052 + Corresponds to attribute <a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a> on the given
102.4053 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
102.4054 +</div></dd>
102.4055 +<dt id="__svg__SVGFEPointLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4056 + Corresponds to attribute <a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a> on the given
102.4057 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
102.4058 +</div></dd></dl></dd></dl>
102.4059 +
102.4060 +
102.4061 +<h3 id="InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</h3>
102.4062 +
102.4063 +
102.4064 +
102.4065 + The <a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a> interface corresponds to the
102.4066 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4067 +<pre class="idl">interface <b>SVGFESpotLightElement</b> : ::svg::SVGElement {
102.4068 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__x">x</a>;
102.4069 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__y">y</a>;
102.4070 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__z">z</a>;
102.4071 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtX">pointsAtX</a>;
102.4072 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtY">pointsAtY</a>;
102.4073 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtZ">pointsAtZ</a>;
102.4074 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__specularExponent">specularExponent</a>;
102.4075 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__limitingConeAngle">limitingConeAngle</a>;
102.4076 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4077 +<dt id="__svg__SVGFESpotLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4078 + Corresponds to attribute <a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a> on the given
102.4079 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4080 +</div></dd>
102.4081 +<dt id="__svg__SVGFESpotLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4082 + Corresponds to attribute <a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a> on the given
102.4083 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4084 +</div></dd>
102.4085 +<dt id="__svg__SVGFESpotLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4086 + Corresponds to attribute <a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a> on the given
102.4087 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4088 +</div></dd>
102.4089 +<dt id="__svg__SVGFESpotLightElement__pointsAtX"><b>pointsAtX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4090 + Corresponds to attribute <a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a> on the given
102.4091 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4092 +</div></dd>
102.4093 +<dt id="__svg__SVGFESpotLightElement__pointsAtY"><b>pointsAtY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4094 + Corresponds to attribute <a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a> on the given
102.4095 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4096 +</div></dd>
102.4097 +<dt id="__svg__SVGFESpotLightElement__pointsAtZ"><b>pointsAtZ</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4098 + Corresponds to attribute <a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a> on the given
102.4099 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4100 +</div></dd>
102.4101 +<dt id="__svg__SVGFESpotLightElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4102 + Corresponds to attribute <a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given
102.4103 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4104 +</div></dd>
102.4105 +<dt id="__svg__SVGFESpotLightElement__limitingConeAngle"><b>limitingConeAngle</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4106 + Corresponds to attribute <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> on the given
102.4107 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
102.4108 +</div></dd></dl></dd></dl>
102.4109 +
102.4110 +
102.4111 +<h3 id="InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</h3>
102.4112 +
102.4113 +
102.4114 +
102.4115 + The <a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a> interface corresponds to the
102.4116 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.
102.4117 +<pre class="idl">interface <b>SVGFEDisplacementMapElement</b> : ::svg::SVGElement,
102.4118 +                                        <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4119 +
102.4120 +  // Channel Selectors
102.4121 +  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN">SVG_CHANNEL_UNKNOWN</a> = 0;
102.4122 +  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R">SVG_CHANNEL_R</a> = 1;
102.4123 +  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G">SVG_CHANNEL_G</a> = 2;
102.4124 +  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B">SVG_CHANNEL_B</a> = 3;
102.4125 +  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A">SVG_CHANNEL_A</a> = 4;
102.4126 +
102.4127 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in1">in1</a>;
102.4128 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in2">in2</a>;
102.4129 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDisplacementMapElement__scale">scale</a>;
102.4130 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__xChannelSelector">xChannelSelector</a>;
102.4131 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__yChannelSelector">yChannelSelector</a>;
102.4132 +};</pre><dl class="interface"><dt>Constants in group “Channel Selectorsâ€:</dt><dd><dl class="constants">
102.4133 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN"><b>SVG_CHANNEL_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4134 + The type is not one of predefined types. It is invalid to attempt to
102.4135 + define a new value of this type or to attempt to switch an existing
102.4136 + value to this type.
102.4137 +
102.4138 +</div></dd>
102.4139 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R"><b>SVG_CHANNEL_R</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4140 + Corresponds to value <span class="attr-value">'R'</span>.
102.4141 +
102.4142 +</div></dd>
102.4143 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G"><b>SVG_CHANNEL_G</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4144 + Corresponds to value <span class="attr-value">'G'</span>.
102.4145 +
102.4146 +</div></dd>
102.4147 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B"><b>SVG_CHANNEL_B</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4148 + Corresponds to value <span class="attr-value">'B'</span>.
102.4149 +
102.4150 +</div></dd>
102.4151 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A"><b>SVG_CHANNEL_A</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4152 + Corresponds to value <span class="attr-value">'A'</span>.
102.4153 +
102.4154 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.4155 +<dt id="__svg__SVGFEDisplacementMapElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4156 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
102.4157 + element.
102.4158 +</div></dd>
102.4159 +<dt id="__svg__SVGFEDisplacementMapElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4160 + Corresponds to attribute <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
102.4161 + element.
102.4162 +</div></dd>
102.4163 +<dt id="__svg__SVGFEDisplacementMapElement__scale"><b>scale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4164 + Corresponds to attribute <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
102.4165 + element.
102.4166 +</div></dd>
102.4167 +<dt id="__svg__SVGFEDisplacementMapElement__xChannelSelector"><b>xChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.4168 + Corresponds to attribute <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> on the given
102.4169 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.  Takes one of the SVG_CHANNEL_*
102.4170 + constants defined on this interface.
102.4171 +</div></dd>
102.4172 +<dt id="__svg__SVGFEDisplacementMapElement__yChannelSelector"><b>yChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.4173 + Corresponds to attribute <a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> on the given
102.4174 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.  Takes one of the SVG_CHANNEL_*
102.4175 + constants defined on this interface.
102.4176 +</div></dd></dl></dd></dl>
102.4177 +
102.4178 +
102.4179 +<h3 id="InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</h3>
102.4180 +
102.4181 +
102.4182 +
102.4183 + The <a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a> interface corresponds to the
102.4184 + <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element.
102.4185 +<pre class="idl">interface <b>SVGFEFloodElement</b> : ::svg::SVGElement,
102.4186 +                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4187 +};</pre>
102.4188 +
102.4189 +
102.4190 +<h3 id="InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</h3>
102.4191 +
102.4192 +
102.4193 +
102.4194 + The <a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a> interface corresponds to the
102.4195 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.
102.4196 +<pre class="idl">interface <b>SVGFEGaussianBlurElement</b> : ::svg::SVGElement,
102.4197 +                                     <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4198 +
102.4199 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEGaussianBlurElement__in1">in1</a>;
102.4200 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationX">stdDeviationX</a>;
102.4201 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationY">stdDeviationY</a>;
102.4202 +
102.4203 +  void <a href="#__svg__SVGFEGaussianBlurElement__setStdDeviation">setStdDeviation</a>(in float stdDeviationX, in float stdDeviationY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>);
102.4204 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4205 +<dt id="__svg__SVGFEGaussianBlurElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4206 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given
102.4207 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.
102.4208 +</div></dd>
102.4209 +<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4210 + Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given
102.4211 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.  Contains the X component
102.4212 + of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
102.4213 +</div></dd>
102.4214 +<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4215 + Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given
102.4216 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.  Contains the Y component
102.4217 + (possibly computed automatically) of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
102.4218 +</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes">
102.4219 +<dt id="__svg__SVGFEGaussianBlurElement__setStdDeviation">void <b>setStdDeviation</b>(in float <var>stdDeviationX</var>, in float <var>stdDeviationY</var>)</dt><dd><div>
102.4220 + Sets the values for attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
102.4221 +
102.4222 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">float <var>stdDeviationX</var></div> <div> The X component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
102.4223 +</div></li><li><div class="parameter">float <var>stdDeviationY</var></div> <div> The Y component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
102.4224 +</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt
102.4225 +   to change the value of a readonly attribute.
102.4226 +</dd></dl></dd></dl></dd></dl></dd></dl>
102.4227 +
102.4228 +
102.4229 +<h3 id="InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</h3>
102.4230 +
102.4231 +
102.4232 +
102.4233 + The <a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a> interface corresponds to the
102.4234 + <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element.
102.4235 +<pre class="idl">interface <b>SVGFEImageElement</b> : ::svg::SVGElement,
102.4236 +                              ::svg::SVGURIReference,
102.4237 +                              ::svg::SVGLangSpace,
102.4238 +                              ::svg::SVGExternalResourcesRequired,
102.4239 +                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4240 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a> <a href="#__svg__SVGFEImageElement__preserveAspectRatio">preserveAspectRatio</a>;
102.4241 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4242 +<dt id="__svg__SVGFEImageElement__preserveAspectRatio"><b>preserveAspectRatio</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a>)</span></dt><dd><div>
102.4243 + Corresponds to attribute <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a> on the given
102.4244 + <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element.
102.4245 +</div></dd></dl></dd></dl>
102.4246 +
102.4247 +
102.4248 +<h3 id="InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</h3>
102.4249 +
102.4250 +
102.4251 +
102.4252 + The <a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a> interface corresponds to the
102.4253 + <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> element.
102.4254 +<pre class="idl">interface <b>SVGFEMergeElement</b> : ::svg::SVGElement,
102.4255 +                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4256 +};</pre>
102.4257 +
102.4258 +
102.4259 +<h3 id="InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</h3>
102.4260 +
102.4261 +
102.4262 +
102.4263 + The <a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a> interface corresponds to the
102.4264 + <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> element.
102.4265 +<pre class="idl">interface <b>SVGFEMergeNodeElement</b> : ::svg::SVGElement {
102.4266 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMergeNodeElement__in1">in1</a>;
102.4267 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4268 +<dt id="__svg__SVGFEMergeNodeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4269 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a>
102.4270 + element.
102.4271 +</div></dd></dl></dd></dl>
102.4272 +
102.4273 +
102.4274 +<h3 id="InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</h3>
102.4275 +
102.4276 +
102.4277 +
102.4278 + The <a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a> interface corresponds to the
102.4279 + <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> element.
102.4280 +<pre class="idl">interface <b>SVGFEMorphologyElement</b> : ::svg::SVGElement,
102.4281 +                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4282 +
102.4283 +  // Morphology Operators
102.4284 +  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN">SVG_MORPHOLOGY_OPERATOR_UNKNOWN</a> = 0;
102.4285 +  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE">SVG_MORPHOLOGY_OPERATOR_ERODE</a> = 1;
102.4286 +  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE">SVG_MORPHOLOGY_OPERATOR_DILATE</a> = 2;
102.4287 +
102.4288 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMorphologyElement__in1">in1</a>;
102.4289 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEMorphologyElement__operator">operator</a>;
102.4290 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusX">radiusX</a>;
102.4291 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusY">radiusY</a>;
102.4292 +};</pre><dl class="interface"><dt>Constants in group “Morphology Operatorsâ€:</dt><dd><dl class="constants">
102.4293 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN"><b>SVG_MORPHOLOGY_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4294 + The type is not one of predefined types. It is invalid to attempt to
102.4295 + define a new value of this type or to attempt to switch an existing
102.4296 + value to this type.
102.4297 +
102.4298 +</div></dd>
102.4299 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE"><b>SVG_MORPHOLOGY_OPERATOR_ERODE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4300 + Corresponds to value <span class="attr-value">'erode'</span>.
102.4301 +
102.4302 +</div></dd>
102.4303 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE"><b>SVG_MORPHOLOGY_OPERATOR_DILATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4304 + Corresponds to value <span class="attr-value">'dilate'</span>.
102.4305 +
102.4306 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.4307 +<dt id="__svg__SVGFEMorphologyElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4308 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
102.4309 + element.
102.4310 +</div></dd>
102.4311 +<dt id="__svg__SVGFEMorphologyElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.4312 + Corresponds to attribute <a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
102.4313 + element.  Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants
102.4314 + defined on this interface.
102.4315 +</div></dd>
102.4316 +<dt id="__svg__SVGFEMorphologyElement__radiusX"><b>radiusX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4317 + Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
102.4318 + element.
102.4319 +</div></dd>
102.4320 +<dt id="__svg__SVGFEMorphologyElement__radiusY"><b>radiusY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4321 + Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
102.4322 + element.
102.4323 +</div></dd></dl></dd></dl>
102.4324 +
102.4325 +
102.4326 +<h3 id="InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</h3>
102.4327 +
102.4328 +
102.4329 +
102.4330 + The <a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a> interface corresponds to the
102.4331 + <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.
102.4332 +<pre class="idl">interface <b>SVGFEOffsetElement</b> : ::svg::SVGElement,
102.4333 +                               <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4334 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEOffsetElement__in1">in1</a>;
102.4335 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dx">dx</a>;
102.4336 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dy">dy</a>;
102.4337 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4338 +<dt id="__svg__SVGFEOffsetElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4339 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
102.4340 + element.
102.4341 +</div></dd>
102.4342 +<dt id="__svg__SVGFEOffsetElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4343 + Corresponds to attribute <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
102.4344 + element.
102.4345 +</div></dd>
102.4346 +<dt id="__svg__SVGFEOffsetElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4347 + Corresponds to attribute <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
102.4348 + element.
102.4349 +</div></dd></dl></dd></dl>
102.4350 +
102.4351 +
102.4352 +<h3 id="InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</h3>
102.4353 +
102.4354 +
102.4355 +
102.4356 + The <a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a> interface corresponds to the
102.4357 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4358 +<pre class="idl">interface <b>SVGFESpecularLightingElement</b> : ::svg::SVGElement,
102.4359 +                                         <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4360 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFESpecularLightingElement__in1">in1</a>;
102.4361 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__surfaceScale">surfaceScale</a>;
102.4362 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularConstant">specularConstant</a>;
102.4363 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularExponent">specularExponent</a>;
102.4364 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>;
102.4365 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>;
102.4366 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4367 +<dt id="__svg__SVGFESpecularLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4368 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>
102.4369 + element.
102.4370 +</div></dd>
102.4371 +<dt id="__svg__SVGFESpecularLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4372 + Corresponds to attribute <a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given
102.4373 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4374 +</div></dd>
102.4375 +<dt id="__svg__SVGFESpecularLightingElement__specularConstant"><b>specularConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4376 + Corresponds to attribute <a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a> on the given
102.4377 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4378 +</div></dd>
102.4379 +<dt id="__svg__SVGFESpecularLightingElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4380 + Corresponds to attribute <a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given
102.4381 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4382 +</div></dd>
102.4383 +<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4384 + Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.4385 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4386 +</div></dd>
102.4387 +<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4388 + Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
102.4389 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
102.4390 +</div></dd></dl></dd></dl>
102.4391 +
102.4392 +
102.4393 +<h3 id="InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</h3>
102.4394 +
102.4395 +
102.4396 +
102.4397 + The <a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a> interface corresponds to the
102.4398 + <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> element.
102.4399 +<pre class="idl">interface <b>SVGFETileElement</b> : ::svg::SVGElement,
102.4400 +                             <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4401 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFETileElement__in1">in1</a>;
102.4402 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4403 +<dt id="__svg__SVGFETileElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
102.4404 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>
102.4405 + element.
102.4406 +</div></dd></dl></dd></dl>
102.4407 +
102.4408 +
102.4409 +<h3 id="InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</h3>
102.4410 +
102.4411 +
102.4412 +
102.4413 + The <a class="idlinterface" href="#InterfaceSVGFETurbulenceElement">SVGFETurbulenceElement</a> interface corresponds to the
102.4414 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
102.4415 +<pre class="idl">interface <b>SVGFETurbulenceElement</b> : ::svg::SVGElement,
102.4416 +                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4417 +
102.4418 +  // Turbulence Types
102.4419 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN">SVG_TURBULENCE_TYPE_UNKNOWN</a> = 0;
102.4420 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE">SVG_TURBULENCE_TYPE_FRACTALNOISE</a> = 1;
102.4421 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE">SVG_TURBULENCE_TYPE_TURBULENCE</a> = 2;
102.4422 +
102.4423 +  // Stitch Options
102.4424 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN">SVG_STITCHTYPE_UNKNOWN</a> = 0;
102.4425 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH">SVG_STITCHTYPE_STITCH</a> = 1;
102.4426 +  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH">SVG_STITCHTYPE_NOSTITCH</a> = 2;
102.4427 +
102.4428 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyX">baseFrequencyX</a>;
102.4429 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyY">baseFrequencyY</a>;
102.4430 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFETurbulenceElement__numOctaves">numOctaves</a>;
102.4431 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__seed">seed</a>;
102.4432 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__stitchTiles">stitchTiles</a>;
102.4433 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__type">type</a>;
102.4434 +};</pre><dl class="interface"><dt>Constants in group “Turbulence Typesâ€:</dt><dd><dl class="constants">
102.4435 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN"><b>SVG_TURBULENCE_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4436 + The type is not one of predefined types. It is invalid to attempt to
102.4437 + define a new value of this type or to attempt to switch an existing
102.4438 + value to this type.
102.4439 +
102.4440 +</div></dd>
102.4441 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE"><b>SVG_TURBULENCE_TYPE_FRACTALNOISE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4442 + Corresponds to value <span class="attr-value">'fractalNoise'</span>.
102.4443 +
102.4444 +</div></dd>
102.4445 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE"><b>SVG_TURBULENCE_TYPE_TURBULENCE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4446 + Corresponds to value <span class="attr-value">'turbulence'</span>.
102.4447 +
102.4448 +</div></dd></dl></dd><dt>Constants in group “Stitch Optionsâ€:</dt><dd><dl class="constants">
102.4449 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN"><b>SVG_STITCHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4450 + The type is not one of predefined types. It is invalid to attempt to
102.4451 + define a new value of this type or to attempt to switch an existing
102.4452 + value to this type.
102.4453 +
102.4454 +</div></dd>
102.4455 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH"><b>SVG_STITCHTYPE_STITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4456 + Corresponds to value <span class="attr-value">'stitch'</span>.
102.4457 +
102.4458 +</div></dd>
102.4459 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH"><b>SVG_STITCHTYPE_NOSTITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
102.4460 + Corresponds to value <span class="attr-value">'noStitch'</span>.
102.4461 +
102.4462 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
102.4463 +<dt id="__svg__SVGFETurbulenceElement__baseFrequencyX"><b>baseFrequencyX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4464 + Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given
102.4465 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Contains the X component of the
102.4466 + <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute.
102.4467 +</div></dd>
102.4468 +<dt id="__svg__SVGFETurbulenceElement__baseFrequencyY"><b>baseFrequencyY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4469 + Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given
102.4470 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Contains the Y component of the
102.4471 + (possibly computed automatically) <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute.
102.4472 +</div></dd>
102.4473 +<dt id="__svg__SVGFETurbulenceElement__numOctaves"><b>numOctaves</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
102.4474 + Corresponds to attribute <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> on the given
102.4475 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
102.4476 +</div></dd>
102.4477 +<dt id="__svg__SVGFETurbulenceElement__seed"><b>seed</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
102.4478 + Corresponds to attribute <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> on the given
102.4479 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
102.4480 +</div></dd>
102.4481 +<dt id="__svg__SVGFETurbulenceElement__stitchTiles"><b>stitchTiles</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.4482 + Corresponds to attribute <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> on the given
102.4483 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Takes one of the SVG_STITCHTYPE_*
102.4484 + constants defined on this interface.
102.4485 +</div></dd>
102.4486 +<dt id="__svg__SVGFETurbulenceElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
102.4487 + Corresponds to attribute <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> on the given
102.4488 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Takes one of the SVG_TURBULENCE_TYPE_*
102.4489 + constants defined on this interface.
102.4490 +</div></dd></dl></dd></dl>
102.4491 +
102.4492 +
102.4493 +<h3 id="InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</h3>
102.4494 +
102.4495 +
102.4496 +
102.4497 + The <a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> interface corresponds to the
102.4498 + <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> element.
102.4499 +<pre class="idl">interface <b>SVGFEDropShadowElement</b> : ::svg::SVGElement,
102.4500 +                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
102.4501 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDropShadowElement__in1">in1</a>;
102.4502 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dx">dx</a>;
102.4503 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dy">dy</a>;
102.4504 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationX">stdDeviationX</a>;
102.4505 +  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationY">stdDeviationY</a>;
102.4506 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
102.4507 +<dt id="__svg__SVGFEDropShadowElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd> </dd>
102.4508 +<dt id="__svg__SVGFEDropShadowElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
102.4509 +<dt id="__svg__SVGFEDropShadowElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
102.4510 +<dt id="__svg__SVGFEDropShadowElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
102.4511 +<dt id="__svg__SVGFEDropShadowElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd></dl></dd></dl>
102.4512 +
102.4513 +
102.4514 +<h2 id="references1">32 References</h2>
102.4515 +<h3 id="normref">32.1 Normative References</h3>
102.4516 +<dl><dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt><dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 
102.4517 +		Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie, eds.,
102.4518 +		W3C, 23 April 2009, (Candidate Recommendation) </dd><dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 4:
102.4519 +      Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD
102.4520 +      19757-4</strong>, See <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a>
102.4521 +    </dd><dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt><dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff,
102.4522 +      SIGGRAPH '84 Conference Proceedings, Association for Computing
102.4523 +      Machinery, Volume 18, Number 3, July 1984. </dd><dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 2:
102.4524 +      Regular grammar- based validation — RELAX NG. ISO/IEC FDIS
102.4525 +      19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span lang="ja" class="rb">æ‘ç”° 真</span> <span class="rp">(</span><span class="rt"><span class="familyname">Murata</span> M.</span><span class="rp">)</span></span>, eds., 12 December 2002. See <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a>
102.4526 +    </dd><dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt><dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P.
102.4527 +      Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest
102.4528 +      version available at <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.
102.4529 +      See also <a href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing
102.4530 +      XML 1.1 documents with XML Schema 1.0 processors</a>. </dd><dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>,
102.4531 +      Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>
102.4532 +    </dd><dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>,
102.4533 +      Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a>
102.4534 +    </dd></dl>
102.4535 +
102.4536 +<h3 id="informref">32.2 Informative References</h3>
102.4537 +<dl><dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt><dd><strong>HTML5</strong>, Ian Hickson editor, Google,
102.4538 +      10 June 2008 (Working Draft). See <a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a>
102.4539 +    </dd></dl>
102.4540 +
102.4541 +  <h2 id="changes">33 Changes</h2>
102.4542 +  <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p>
102.4543 +<script src="style/expanders.js" type="text/javascript"> </script></body></html>
102.4544 \ No newline at end of file
   103.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   103.2 +++ b/filters/publish/SVGFilterPrimer.html	Mon Apr 11 10:08:48 2011 +1000
   103.3 @@ -0,0 +1,323 @@
   103.4 +<!--
   103.5 +  SVG Filters 1.2, Part 1: Primer
   103.6 +
   103.7 +  $Id$
   103.8 +
   103.9 +  Note: This document is generated from ../master/SVGFilterPrimer.html.
  103.10 +  Run "make" from ../master/ to regenerate it.
  103.11 +  -->
  103.12 +
  103.13 +<!DOCTYPE html
  103.14 +  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  103.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filters 1.2, Part 1: Primer</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  103.16 +
  103.17 +<div class="head">
  103.18 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  103.19 +  <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1>
  103.20 +  <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2>
  103.21 +  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterPrimer12/">http://www.w3.org/TR/SVGFilterPrimer12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl>
  103.22 +  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  103.23 +</div>
  103.24 +
  103.25 +<hr/>
  103.26 +
  103.27 +<h2 id="abstract">Abstract </h2>
  103.28 +
  103.29 +<p>
  103.30 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  103.31 +</p>
  103.32 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  103.33 +</p>
  103.34 +<p>
  103.35 +This document introduces the features used by SVG filters.
  103.36 +</p>
  103.37 +
  103.38 +<h2 id="status">Status of This Document </h2>
  103.39 +
  103.40 +<p><em>This section describes the status of this document at the time of its
  103.41 +publication. Other documents may supersede this document. The latest status
  103.42 +of this document series is maintained at the W3C. </em> </p>
  103.43 +
  103.44 +<p>This document is the first public working draft of this specification. </p>
  103.45 +
  103.46 +<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  103.47 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  103.48 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  103.49 +</p>
  103.50 +
  103.51 +<p>We explicitly invite comments on this specification. Please send them to
  103.52 +<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>).
  103.53 +For comments on the core SVG language, use <a href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for
  103.54 +issues related to vector graphics on the Web (<a href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance
  103.55 +of the archiving policy is requested automatically upon first post to either
  103.56 +list. To subscribe to these lists send an email to <a href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a>
  103.57 +or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with
  103.58 +the word subscribe in the subject line. </p>
  103.59 +
  103.60 +<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  103.61 +related to this document is available on the Web. As of this publication, the
  103.62 +SVG Working Group are not aware of any royalty-bearing patents they believe
  103.63 +to be essential to SVG. </p>
  103.64 +<p>Publication of this document does not imply endorsement by the W3C
  103.65 +membership. A list of current W3C Recommendations and other technical
  103.66 +documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  103.67 +be updated, replaced, or obsoleted by other documents at any time. It is
  103.68 +inappropriate to cite a W3C Working Draft as anything other than a <em>work
  103.69 +in progress</em>." </p>
  103.70 +
  103.71 +<h2 id="howto">How to read this document and give feedback </h2>
  103.72 +
  103.73 +<p>This is a primer for the SVG Filter specification. It gives guidelines on
  103.74 +how to use the SVG Filter specification with SVG 1.2. In many cases the
  103.75 +reader will have to be familiar with the <a href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p>
  103.76 +
  103.77 +<p>
  103.78 +This document is informative.
  103.79 +</p>
  103.80 +
  103.81 +<h2 id="toc">Table of Contents</h2>
  103.82 +
  103.83 +<ul class="toc">
  103.84 +<li><a href="#Introduction">1 Filters in SVG</a></li>
  103.85 +<li><a href="#Example">2 An example</a></li>
  103.86 +<li><a href="#feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li>
  103.87 +<li><a href="#references">4 References </a></li></ul>
  103.88 +
  103.89 +<h2 id="Introduction">1 Filters in SVG</h2>
  103.90 +
  103.91 +<p>Filter effects are defined by <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> elements. To apply a filter effect
  103.92 +to a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics element</span></a> or a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>, you set the
  103.93 +value of the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> property on the given element such that
  103.94 +it references the filter effect.</p>
  103.95 +
  103.96 +<p>Each <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element contains a set of
  103.97 +<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter
  103.98 +primitive performs a single fundamental graphical operation (e.g., a blur or
  103.99 +a lighting effect) on one or more inputs, producing a graphical result.
 103.100 +Because most of the filter primitives represent some form of image
 103.101 +processing, in most cases the output from a filter primitive is a single RGBA
 103.102 +image.</p>
 103.103 +
 103.104 +<p>The original source graphic or the result from a filter primitive can be
 103.105 +used as input into one or more other filter primitives. A common application
 103.106 +is to use the source graphic multiple times. For example, a simple filter
 103.107 +could replace one graphic by two by adding a black copy of original source
 103.108 +graphic offset to create a drop shadow. In effect, there are now two layers
 103.109 +of graphics, both with the same original source graphics.</p>
 103.110 +
 103.111 +<p>When applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> such as <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a>, the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a>
 103.112 +property applies to the contents of the
 103.113 +group as a whole. The group's children do not render to the screen directly;
 103.114 +instead, the graphics commands necessary to render the children are stored
 103.115 +temporarily. Typically, the graphics commands are executed as part of the
 103.116 +processing of the referenced <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element via use of the keywords
 103.117 +<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>.
 103.118 +Filter effects can be applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> with no
 103.119 +content (e.g., an empty <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a> element), in which case the
 103.120 +<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> consist of a transparent black
 103.121 +rectangle that is the size of the
 103.122 +<a href="SVGFilter.html#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</p>
 103.123 +
 103.124 +<p>Sometimes filter primitives result in undefined pixels. For example,
 103.125 +filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the
 103.126 +right, leaving undefined pixels at the top and left. In these cases, the
 103.127 +undefined pixels are set to transparent black.</p>
 103.128 +
 103.129 +<h2 id="Example">2 An example</h2>
 103.130 +
 103.131 +<p>The following shows an example of a filter effect.</p>
 103.132 +
 103.133 +<p><span class="example-ref">Example filters01</span> - introducing filter
 103.134 +effects.</p>
 103.135 +
 103.136 +<pre class="xml">&lt;?xml version="1.0"?&gt;
 103.137 +&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
 103.138 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
 103.139 +&lt;svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
 103.140 +     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
 103.141 +  &lt;title&gt;Example filters01.svg - introducing filter effects&lt;/title&gt;
 103.142 +  &lt;desc&gt;An example which combines multiple filter primitives
 103.143 +        to produce a 3D lighting effect on a graphic consisting
 103.144 +        of the string "SVG" sitting on top of oval filled in red
 103.145 +        and surrounded by an oval outlined in red.&lt;/desc&gt;
 103.146 +  &lt;defs&gt;
 103.147 +    &lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
 103.148 +      &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
 103.149 +      &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
 103.150 +      &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
 103.151 +                          specularExponent="20" lighting-color="#bbbbbb"  
 103.152 +                          result="specOut"&gt;
 103.153 +        &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
 103.154 +      &lt;/feSpecularLighting&gt;
 103.155 +      &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
 103.156 +      &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
 103.157 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
 103.158 +      &lt;feMerge&gt;
 103.159 +        &lt;feMergeNode in="offsetBlur"/&gt;
 103.160 +        &lt;feMergeNode in="litPaint"/&gt;
 103.161 +      &lt;/feMerge&gt;
 103.162 +    &lt;/filter&gt;
 103.163 +  &lt;/defs&gt;
 103.164 +  &lt;rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /&gt;
 103.165 +  &lt;g filter="url(#MyFilter)" &gt;
 103.166 +	  &lt;g&gt;
 103.167 +      &lt;path fill="none" stroke="#D90000" stroke-width="10" 
 103.168 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /&gt;
 103.169 +      &lt;path fill="#D90000" 
 103.170 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /&gt;
 103.171 +      &lt;g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" &gt;
 103.172 +        &lt;text x="52" y="76"&gt;SVG&lt;/text&gt;
 103.173 +      &lt;/g&gt;
 103.174 +    &lt;/g&gt;
 103.175 +  &lt;/g&gt;
 103.176 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filters01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filters01.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 103.177 +
 103.178 +<p>The filter effect used in the example above is repeated here with
 103.179 +reference numbers in the left column before each of the six filter
 103.180 +primitives:</p>
 103.181 +
 103.182 +<table summary="filter example with reference numbers"><tbody><tr><td valign="top"><pre style="color:black"> 
 103.183 + 
 103.184 +1
 103.185 +2
 103.186 +3
 103.187 + 
 103.188 + 
 103.189 + 
 103.190 + 
 103.191 +4
 103.192 +5
 103.193 + 
 103.194 +6
 103.195 + 
 103.196 + 
 103.197 + </pre>
 103.198 +      </td><td valign="top"><pre>&lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
 103.199 +  &lt;desc&gt;Produces a 3D lighting effect.&lt;/desc&gt;
 103.200 +  &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
 103.201 +  &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
 103.202 +  &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
 103.203 +                      specularExponent="20" lighting-color="#bbbbbb" 
 103.204 +                      result="specOut"&gt;
 103.205 +    &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
 103.206 +  &lt;/feSpecularLighting&gt;
 103.207 +  &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
 103.208 +  &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
 103.209 +               k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
 103.210 +  &lt;feMerge&gt;
 103.211 +    &lt;feMergeNode in="offsetBlur"/&gt;
 103.212 +    &lt;feMergeNode in="litPaint"/&gt;
 103.213 +  &lt;/feMerge&gt;
 103.214 +&lt;/filter&gt;</pre>
 103.215 +      </td></tr></tbody></table>
 103.216 +
 103.217 +<p>The following pictures show the intermediate image results from each of
 103.218 +the six filter elements:</p>
 103.219 +
 103.220 +<table summary="filter example intermediate results"><tbody><tr><td><p><img width="115" height="70" alt="filters01 - original source graphic" src="examples/filters01-0.png"/><br/>
 103.221 +        Source graphic</p>
 103.222 +      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 1" src="examples/filters01-1.png"/><br/>
 103.223 +        After filter primitive 1</p>
 103.224 +      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 2" src="examples/filters01-2.png"/><br/>
 103.225 +        After filter primitive 2</p>
 103.226 +      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 3" src="examples/filters01-3.png"/><br/>
 103.227 +        After filter primitive 3</p>
 103.228 +      </td></tr><tr><td> </td><td> </td><td/><td/><td/><td/><td/></tr><tr><td> </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 4" src="examples/filters01-4.png"/><br/>
 103.229 +        After filter primitive 4</p>
 103.230 +      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 5" src="examples/filters01-5.png"/><br/>
 103.231 +        After filter primitive 5</p>
 103.232 +      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 6" src="examples/filters01-6.png"/><br/>
 103.233 +        After filter primitive 6</p>
 103.234 +      </td></tr></tbody></table>
 103.235 +<ol><li>Filter primitive <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> takes input <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>,
 103.236 +    which is the alpha channel of
 103.237 +    the source graphic. The result is stored in a temporary buffer named
 103.238 +    "blur". Note that "blur" is used as input to both filter primitives 2 and
 103.239 +    3.</li><li>Filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> takes buffer "blur", shifts
 103.240 +    the result in a positive direction in both x and y, and creates a new
 103.241 +    buffer named "offsetBlur". The effect is that of a drop shadow.</li><li>Filter primitive <a href="SVGFilter.html#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, uses buffer "blur"
 103.242 +    as a model of a surface elevation and generates a lighting effect from a
 103.243 +    single point source. The result is stored in buffer "specOut".</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> masks out the result of
 103.244 +    filter primitive 3 by the original source graphics alpha channel so that
 103.245 +    the intermediate result is no bigger than the original source
 103.246 +  graphic.</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> composites the result of
 103.247 +    the specular lighting with the original source graphic.</li><li>Filter primitive <a href="SVGFilter.html#feMergeElement"><span class="element-name">‘feMerge’</span></a> composites two layers together.
 103.248 +    The lower layer consists of the drop shadow result from filter primitive
 103.249 +    2. The upper layer consists of the specular lighting result from filter
 103.250 +    primitive 5.</li></ol>
 103.251 +
 103.252 +<h2 id="feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2>
 103.253 +
 103.254 +<p>
 103.255 +  The <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive can be used to create blur effects.
 103.256 +  Below is an example where the blur is applied only in one direction, which can
 103.257 +  give better performance in some <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">user agents</span></a>. 
 103.258 +  <pre class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 103.259 +&lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"&gt;
 103.260 +  &lt;defs&gt;
 103.261 +    &lt;font-face font-family="FORQUE"&gt;
 103.262 +      &lt;font-face-src&gt;
 103.263 +        &lt;font-face-uri xlink:href="Forque.svg#FORQUE"/&gt;
 103.264 +      &lt;/font-face-src&gt;
 103.265 +    &lt;/font-face&gt;
 103.266 +    &lt;style&gt;
 103.267 +      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
 103.268 +      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
 103.269 +      #bx { filter: url(#blurX) }
 103.270 +      #by { filter: url(#blurY) }
 103.271 +      #header { filter: url(#ds); fill: white; text-decoration: underline }
 103.272 +      #attribution { font-size: 6px }
 103.273 +      :root { background: green; fill: white }
 103.274 +    &lt;/style&gt;
 103.275 +    &lt;filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"&gt;
 103.276 +      &lt;feGaussianBlur stdDeviation="4 0"&gt;
 103.277 +        &lt;animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/&gt;
 103.278 +      &lt;/feGaussianBlur&gt;
 103.279 +    &lt;/filter&gt;
 103.280 +    &lt;filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"&gt;
 103.281 +      &lt;feGaussianBlur stdDeviation="0 4"/&gt;
 103.282 +    &lt;/filter&gt;
 103.283 +    &lt;filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"&gt;
 103.284 +      &lt;feGaussianBlur stdDeviation="3"/&gt;
 103.285 +      &lt;feOffset dx="2" dy="2"/&gt;
 103.286 +      &lt;feComposite in2="SourceGraphic" operator="in"/&gt;
 103.287 +    &lt;/filter&gt;
 103.288 +  &lt;/defs&gt;
 103.289 +
 103.290 +  &lt;text id="bx" x="40%" y="50%"&gt;BlurX&lt;/text&gt;
 103.291 +  &lt;text id="by" x="60%" y="70%"&gt;BlurY&lt;/text&gt;
 103.292 +  
 103.293 +  &lt;text id="header" y="1em" x="50%"&gt;Unidirectional blur&lt;/text&gt;
 103.294 +  &lt;text id="attribution" x="100%" y="355"&gt;Forque font by Tup Wanders&lt;/text&gt;
 103.295 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-stdDeviation-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-stdDeviation-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 103.296 +</p>
 103.297 +
 103.298 +<p>The blur filter can also be used for creating the impression of something being in motion, as in this example.
 103.299 +  <pre class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 103.300 +&lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"&gt;
 103.301 +  &lt;defs&gt;
 103.302 +    &lt;filter id="motionblur" filterUnits="userSpaceOnUse"&gt;
 103.303 +      &lt;feGaussianBlur stdDeviation="5 0"/&gt;
 103.304 +    &lt;/filter&gt;
 103.305 +    &lt;symbol id="crow" viewBox="0 0 197 190"&gt;
 103.306 +      &lt;path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/&gt;
 103.307 +    &lt;/symbol&gt;
 103.308 +  &lt;/defs&gt;
 103.309 +  
 103.310 +  &lt;image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/&gt;
 103.311 +  &lt;use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/&gt;
 103.312 +   
 103.313 +&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-motion-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-motion-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 103.314 +</p>
 103.315 +
 103.316 +<h2 id="references">4 References </h2>
 103.317 +<dl><dt id="SVG12Full">SVG12</dt><dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>,
 103.318 +      Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a>
 103.319 +    </dd><dt id="SVG12Requirements">SVG12Reqs</dt><dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor,
 103.320 +      W3C, 22 April 2002 (Working Draft). See <a href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a>
 103.321 +    </dd><dt id="SVGFilterRequirements">SVGFilterReqs</dt><dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007
 103.322 +      (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a>
 103.323 +    </dd><dt id="SVG12Filter">SVG12Filters</dt><dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a>
 103.324 +    </dd></dl>
 103.325 +
 103.326 +<script src="style/expanders.js" type="text/javascript"> </script></body></html>
 103.327 \ No newline at end of file
   104.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   104.2 +++ b/filters/publish/SVGFilterReqs.html	Mon Apr 11 10:08:48 2011 +1000
   104.3 @@ -0,0 +1,211 @@
   104.4 +<!--
   104.5 +  SVG Filter Requirements
   104.6 +
   104.7 +  $Id$
   104.8 +
   104.9 +  Note: This document is generated from ../master/SVGFilterReqs.html.
  104.10 +  Run "make" from ../master/ to regenerate it.
  104.11 +  -->
  104.12 +
  104.13 +<!DOCTYPE html
  104.14 +  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  104.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filter Requirements</title><style type="text/css">
  104.16 +
  104.17 +      .designgoals {
  104.18 +       list-style-type: decimal;
  104.19 +      }
  104.20 +
  104.21 +      .req-level1 {
  104.22 +       list-style-type: decimal;
  104.23 +       font-weight: bold;
  104.24 +      }
  104.25 +
  104.26 +      .req-level2 {
  104.27 +       list-style-type: decimal;
  104.28 +       font-weight: normal;
  104.29 +      }
  104.30 +
  104.31 +      .req-level1 li {
  104.32 +       margin-top: 1em;
  104.33 +      }
  104.34 +
  104.35 +      .req-level2 li {
  104.36 +       margin-top: 0em;
  104.37 +      }
  104.38 +
  104.39 +      .label {
  104.40 +       margin-top: 1em;
  104.41 +      }
  104.42 +
  104.43 +      .comment {
  104.44 +       background: #ffffaa;
  104.45 +      }
  104.46 +
  104.47 +      .svgversion {
  104.48 +       color: #336633;
  104.49 +       font-weight: bold;
  104.50 +      }
  104.51 +
  104.52 +      .term {
  104.53 +       font-weight: bold;
  104.54 +       color: #aa3333;
  104.55 +      }
  104.56 +
  104.57 +      .issue {
  104.58 +       color: #ff0000;
  104.59 +      }
  104.60 +
  104.61 +    </style><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  104.62 +
  104.63 +<div class="head">
  104.64 +  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  104.65 +  <h1 id="pagetitle">SVG Filter Requirements</h1>
  104.66 +  <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2>
  104.67 +  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterReqs12/">http://www.w3.org/TR/SVGFilterReqs12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl>
  104.68 +  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  104.69 +</div>
  104.70 +
  104.71 +<hr/>
  104.72 +
  104.73 +<h2 id="sec-abstract">Abstract</h2>
  104.74 +
  104.75 +<p>This document lists the design principles and requirements for the
  104.76 +creation of a SVG specification related to filters. </p>
  104.77 +
  104.78 +<h2 id="sec-status">Status of this Document</h2>
  104.79 +
  104.80 +<p>This is a W3C Working Draft for review by W3C Members and other interested
  104.81 +parties. It is a draft document and may be updated, replaced or made obsolete
  104.82 +by other documents at any time. It is inappropriate to use W3C Working Drafts
  104.83 +as reference material or to cite them as other than "work in progress". A
  104.84 +list of current W3C Recommendations and other technical documents, including
  104.85 +Working Drafts and Notes, can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p>
  104.86 +
  104.87 +<p>This is the first release of the SVG Filter Requirements. It is expected
  104.88 +that this document will progress through a number of working drafts,
  104.89 +including "Last Call", before being published in final form. </p>
  104.90 +
  104.91 +<p>This document was developed by the <a href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG)
  104.92 +working group as part of the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors
  104.93 +of this document are the SVG Working Group members. </p>
  104.94 +
  104.95 +<p>Feedback on this document should be sent to the email list <a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This
  104.96 +is an archived public list specific to the issues of SVG Filters. Public
  104.97 +discussion of issues related to vector graphics on the Web and SVG in
  104.98 +particular takes place on the <a href="mailto:www-svg@w3.org">the public
  104.99 +mailing list of the SVG Working Group</a> (<a href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To
 104.100 +subscribe send an email to <code>www-svg-request@w3.org</code> with the word
 104.101 +<code>subscribe</code> in the subject line. </p>
 104.102 +
 104.103 +<p>The latest information regarding <a rel="disclosures" href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
 104.104 +related to this document is available on the Web. As of this publication, the
 104.105 +SVG Working Group are not aware of any royalty-bearing patents they believe
 104.106 +to be essential to SVG. </p>
 104.107 +
 104.108 +<p><em>This section represents the status of this document at the time this
 104.109 +version was published. It will become outdated if and when a new version is
 104.110 +published. The latest status is maintained at the W3C. </em> </p>
 104.111 +
 104.112 +<h2 id="toc">Table of Contents</h2>
 104.113 +
 104.114 +<ul class="toc">
 104.115 +<li><a href="#sec-introduction">1 Introduction </a></li>
 104.116 +<li><a href="#sec-terminology">2 Terminology </a></li>
 104.117 +<li><a href="#sec-usage">3 Usage Scenarios </a></li>
 104.118 +<li><a href="#sec-features">4 Special Filter Considerations</a></li>
 104.119 +<li><a href="#sec-requirements">5 Requirements</a></li>
 104.120 +<li><a href="#sec-references">6 References</a></li>
 104.121 +<li><a href="#sec-authorlist">7 Author List</a></li></ul>
 104.122 +
 104.123 +<div class="div1">
 104.124 +<h2 id="sec-introduction">1 Introduction </h2>
 104.125 +
 104.126 +<p>The 
 104.127 +<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C
 104.128 +recommendation that describes two-dimensional graphics in XML. </p>
 104.129 +</div>
 104.130 +
 104.131 +<div class="div1">
 104.132 +<h2 id="sec-terminology">2 Terminology </h2>
 104.133 +
 104.134 +<p>The following key words and phrases used throughout this document are
 104.135 +defined here for clarity. The terms Must, Should, and May are used to specify
 104.136 +the extent to which an item is a requirement for the SVG working group in
 104.137 +defining SVGP. These recommendations should not be mistaken as a guide to
 104.138 +implementors. </p>
 104.139 +<ol><li><b>'Must'</b> means that the item is an absolute requirement. </li><li><b>'Should'</b> means that there may exist valid reasons in particular
 104.140 +    circumstances to ignore the item, but the full implications must be
 104.141 +    understood and carefully weighed before choosing a different course. </li><li><b>'May' </b> means that item will be considered, but further
 104.142 +    examination is needed to determine if the item should be treated as a
 104.143 +    requirement. </li><li><b>'SVG' </b> refers to SVG in general without reference to any version
 104.144 +    or profile. </li><li><b>'SVG 1.0' </b> refers to the original SVG specification. </li><li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li><li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to
 104.145 +    reference this specification. </li><li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for
 104.146 +    filtering. </li></ol>
 104.147 +</div>
 104.148 +
 104.149 +<div class="div1">
 104.150 +<h2 id="sec-usage">3 Usage Scenarios </h2>
 104.151 +
 104.152 +<p>The following usage scenarios illustrate some of the ways in which SVG
 104.153 +Filters might be used for various applications. </p>
 104.154 +
 104.155 +<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to
 104.156 +produce drop shadows. </p>
 104.157 +<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p>
 104.158 +</div>
 104.159 +
 104.160 +<div class="div1">
 104.161 +<h2 id="sec-features">4 Special Filter Considerations</h2>
 104.162 +
 104.163 +<p><b>Memory and processor requirements</b> A filter effect may require
 104.164 +significant memory or processing resources. </p>
 104.165 +</div>
 104.166 +
 104.167 +<div class="div1">
 104.168 +<h2 id="sec-requirements">5 Requirements</h2>
 104.169 +<ol class="req-level1"><li>General Requirements 
 104.170 +    <ol class="req-level2"><li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid
 104.171 +        SVGF filter. </li><li>Conformance criteria for SVGF <span class="term">must</span> be
 104.172 +        produced. The criteria <span class="term">should</span> be separated
 104.173 +        into sections relevant to particular application types (eg. SVG
 104.174 +        files/document fragments, SVG generators, SVG viewers, SVG printers,
 104.175 +        etc.) </li><li>Software or documents <span class="term">must</span> pass the
 104.176 +        relevant criteria to be able to claim conformance to the particular
 104.177 +        application type. </li><li>A conformance test suite <span class="term">must</span> be
 104.178 +        developed for SVGF. The test suite must be made publicly available.
 104.179 +        Conformance test suites for other uses of SVGF (e.g. prepress
 104.180 +        guidelines) <span class="term">may</span> be developed. </li><li>A specification referencing SVGF <span class="term">may</span>
 104.181 +        declare that 'enableBackground' is not supported when used in
 104.182 +        conjunction with that specification. If so, then support for
 104.183 +        'backgroundAlpha' and 'backgroundImage' <span class="term">must</span> be excluded as well. </li><li>A specification referencing SVGF <span class="term">must</span>
 104.184 +        declare if animations applies when a 'filter' chain is in its scope.
 104.185 +      </li></ol>
 104.186 +  </li><li>Scripting 
 104.187 +    <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support the
 104.188 +        SVGF scripting feature set. </li></ol>
 104.189 +  </li><li>Animation 
 104.190 +    <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support animation of all
 104.191 +        properties listed as animatable. </li></ol>
 104.192 +  </li></ol>
 104.193 +</div>
 104.194 +
 104.195 +<div class="div1">
 104.196 +<h2 id="sec-references">6 References</h2>
 104.197 +<dl class="references"><dt class="label" id="ref-svg">SVG 1.1</dt><dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon
 104.198 +      Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003
 104.199 +      (Recommendation). See <a href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd><dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0
 104.200 +  Requirements</dt><dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor,
 104.201 +      W3C, 22 April 2002. See <a href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a>
 104.202 +    </dd><dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt><dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin,
 104.203 +      editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a>
 104.204 +    </dd></dl>
 104.205 +</div>
 104.206 +<hr class="xhtml"/>
 104.207 +
 104.208 +<h2 id="sec-authorlist">7 Author List</h2>
 104.209 +
 104.210 +<p>The authors of this specification are the participants of the W3C SVG
 104.211 +Working Group.</p>
 104.212 +<dl><dt>Authors:</dt><dd><ul><li>Ola Andersson, ZOOMON AB</li><li>Henric Axelsson, Ericsson AB</li><li>Phil Armstrong, Corel Corporation</li><li>Robin Berjon, Expway</li><li>Benoît Bézaire, Corel Corporation</li><li>Craig Brown, Canon Information Systems Research Australia</li><li>Mike Bultrowicz, Savage Software</li><li>Tolga Capin, Nokia Inc.</li><li>Mathias Larsson Carlander, Ericsson AB</li><li>Jakob Cederquist, ZOOMON AB</li><li>Charilaos Christopoulos, Ericsson AB</li><li>Lee Cole, Quark</li><li>Don Cone, America Online Inc.</li><li>Alex Danilo, Canon Information Systems Research Australia</li><li>Thomas DeWeese, Eastman Kodak</li><li>Jon Ferraiolo, Adobe Systems Inc.</li><li>Darryl Fuller, Schema Software</li><li>藤沢 æ·³ (FUJISAWA Jun), Canon</li><li>Rick Graham, BitFlash</li><li>Vincent Hardy, Sun Microsystems Inc.</li><li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li><li>Lofton Henderson, OASIS</li><li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li><li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li><li>Christophe Jolif, ILOG S.A.</li><li>Lee Klosterman, Hewlett-Packard</li><li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li><li>Thierry Kormann, ILOG S.A.</li><li>Yuri Khramov, Schema Software</li><li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li><li>Philip Mansfield, Schema Software</li><li>Peter Mierau, Adobe Systems Inc.</li><li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li><li>Luc Minnebo, Agfa-Gevaert N.V.</li><li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li><li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li><li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li><li>Brad Sipes, ZOOMON AB</li><li>Peter Sorotokin, Adobe Systems Inc.</li><li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li><li>Rick Yardumian, Canon Development Americas</li><li>Charles Ying, Openwave Systems, Inc.</li></ul>
 104.213 +    </dd></dl>
 104.214 +<script src="style/expanders.js" type="text/javascript"> </script></body></html>
 104.215 \ No newline at end of file
   105.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.2 +++ b/filters/publish/examples/Forque.svg	Mon Apr 11 10:08:48 2011 +1000
   105.3 @@ -0,0 +1,109 @@
   105.4 +<?xml version="1.0" standalone="no"?>
   105.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
   105.6 +<svg xmlns="http://www.w3.org/2000/svg">
   105.7 +<defs>
   105.8 +<desc>
   105.9 +Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license.
  105.10 +</desc>
  105.11 +<font id="FORQUE" horiz-adv-x="815" >
  105.12 +<font-face  font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/>
  105.13 +<missing-glyph horiz-adv-x="389" />
  105.14 +<glyph glyph-name=".notdef" horiz-adv-x="389" />
  105.15 +<glyph glyph-name=".null" horiz-adv-x="0" />
  105.16 +<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" />
  105.17 +<glyph glyph-name="space" unicode=" "  horiz-adv-x="389" />
  105.18 +<glyph glyph-bame="tab" unicode="&#x09;" horiz-adv-x="389" />
  105.19 +<glyph glyph-bame="uni00A0" unicode="&#xa0;" horiz-adv-x="389" />
  105.20 +<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" />
  105.21 +<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  105.22 +<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" />
  105.23 +<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" />
  105.24 +<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" />
  105.25 +<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" />
  105.26 +<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" />
  105.27 +<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" />
  105.28 +<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  105.29 +<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  105.30 +<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  105.31 +<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  105.32 +<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" />
  105.33 +<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" />
  105.34 +<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" />
  105.35 +<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" />
  105.36 +<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" />
  105.37 +<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" />
  105.38 +<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" />
  105.39 +<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" />
  105.40 +<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" />
  105.41 +<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" />
  105.42 +<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" />
  105.43 +<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  105.44 +<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" />
  105.45 +<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" />
  105.46 +<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" />
  105.47 +<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  105.48 +<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" />
  105.49 +<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  105.50 +<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" />
  105.51 +<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" />
  105.52 +<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" />
  105.53 +<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  105.54 +<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" />
  105.55 +<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" />
  105.56 +<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" />
  105.57 +<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  105.58 +<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" />
  105.59 +<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" />
  105.60 +<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" />
  105.61 +<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" />
  105.62 +<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" />
  105.63 +<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" />
  105.64 +<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  105.65 +<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  105.66 +<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" />
  105.67 +<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" />
  105.68 +<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" />
  105.69 +<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" />
  105.70 +<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  105.71 +<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" />
  105.72 +<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" />
  105.73 +<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  105.74 +<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" />
  105.75 +<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  105.76 +<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" />
  105.77 +<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" />
  105.78 +<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" />
  105.79 +<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  105.80 +<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" />
  105.81 +<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" />
  105.82 +<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" />
  105.83 +<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  105.84 +<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" />
  105.85 +<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" />
  105.86 +<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" />
  105.87 +<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" />
  105.88 +<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" />
  105.89 +<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" />
  105.90 +<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  105.91 +<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  105.92 +<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" />
  105.93 +<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" />
  105.94 +<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" />
  105.95 +<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" />
  105.96 +<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  105.97 +<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" />
  105.98 +<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" />
  105.99 +<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" />
 105.100 +<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" />
 105.101 +<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" />
 105.102 +<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 105.103 +<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 105.104 +<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 105.105 +<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 105.106 +<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 105.107 +<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 105.108 +<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" />
 105.109 +<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
 105.110 +<glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" />
 105.111 +</font>
 105.112 +</defs></svg> 
   106.1 Binary file filters/publish/examples/enable-background-01.png has changed
   107.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   107.2 +++ b/filters/publish/examples/enable-background-01.svg	Mon Apr 11 10:08:48 2011 +1000
   107.3 @@ -0,0 +1,89 @@
   107.4 +<?xml version="1.0" standalone="no"?>
   107.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   107.6 +  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   107.7 +<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
   107.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   107.9 +  <title>Example enable-background01</title>
  107.10 +  <desc>This test case shows five pictures which illustrate the rules
  107.11 +        for background image processing.</desc>
  107.12 +
  107.13 +  <defs>
  107.14 +    <filter id="ShiftBGAndBlur" 
  107.15 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  107.16 +      <desc>
  107.17 +        This filter discards the SourceGraphic, if any, and just produces
  107.18 +        a result consisting of the BackgroundImage shifted down 125 units
  107.19 +        and then blurred.
  107.20 +      </desc>
  107.21 +      <feOffset in="BackgroundImage" dx="0" dy="125" />
  107.22 +      <feGaussianBlur stdDeviation="8" />
  107.23 +    </filter>
  107.24 +    <filter id="ShiftBGAndBlur_WithSourceGraphic" 
  107.25 +            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  107.26 +      <desc>
  107.27 +        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
  107.28 +        and then renders the SourceGraphic on top of the shifted/blurred background.
  107.29 +      </desc>
  107.30 +      <feOffset in="BackgroundImage" dx="0" dy="125" />
  107.31 +      <feGaussianBlur stdDeviation="8" result="blur" />
  107.32 +      <feMerge>
  107.33 +        <feMergeNode in="blur"/>
  107.34 +        <feMergeNode in="SourceGraphic"/>
  107.35 +      </feMerge>
  107.36 +    </filter>
  107.37 +  </defs>
  107.38 +
  107.39 +  <g transform="translate(0,0)">
  107.40 +    <desc>The first picture is our reference graphic without filters.</desc>
  107.41 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
  107.42 +    <g opacity=".5">
  107.43 +      <circle cx="125" cy="75" r="45" fill="green"/>
  107.44 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
  107.45 +    </g>
  107.46 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  107.47 +  </g>
  107.48 +
  107.49 +  <g enable-background="new" transform="translate(270,0)">
  107.50 +    <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
  107.51 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
  107.52 +    <g opacity=".5">
  107.53 +      <circle cx="125" cy="75" r="45" fill="green"/>
  107.54 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
  107.55 +    </g>
  107.56 +    <g filter="url(#ShiftBGAndBlur)"/>
  107.57 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  107.58 +  </g>
  107.59 +
  107.60 +  <g enable-background="new" transform="translate(540,0)">
  107.61 +    <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
  107.62 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
  107.63 +    <g filter="url(#ShiftBGAndBlur)" opacity=".5">
  107.64 +      <circle cx="125" cy="75" r="45" fill="green"/>
  107.65 +      <polygon points="160,25 160,125 240,75" fill="blue"/>
  107.66 +    </g>
  107.67 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  107.68 +  </g>
  107.69 +
  107.70 +  <g enable-background="new" transform="translate(810,0)">
  107.71 +    <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
  107.72 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
  107.73 +    <g opacity=".5">
  107.74 +      <circle cx="125" cy="75" r="45" fill="green"/>
  107.75 +      <polygon points="160,25 160,125 240,75" fill="blue"
  107.76 +               filter="url(#ShiftBGAndBlur)"/>
  107.77 +    </g>
  107.78 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  107.79 +  </g>
  107.80 +
  107.81 +  <g enable-background="new" transform="translate(1080,0)">
  107.82 +    <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
  107.83 +    <rect x="25" y="25" width="100" height="100" fill="red"/>
  107.84 +    <g opacity=".5">
  107.85 +      <circle cx="125" cy="75" r="45" fill="green"/>
  107.86 +      <polygon points="160,25 160,125 240,75" fill="blue"
  107.87 +               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
  107.88 +    </g>
  107.89 +    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  107.90 +  </g>
  107.91 +</svg>
  107.92 +
   108.1 Binary file filters/publish/examples/feBlend.png has changed
   109.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   109.2 +++ b/filters/publish/examples/feBlend.svg	Mon Apr 11 10:08:48 2011 +1000
   109.3 @@ -0,0 +1,46 @@
   109.4 +<?xml version="1.0"?>
   109.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   109.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   109.7 +<svg width="5cm" height="5cm" viewBox="0 0 500 500"
   109.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   109.9 +  <title>Example feBlend - Examples of feBlend modes</title>
  109.10 +  <desc>Five text strings blended into a gradient,
  109.11 +        with one text string for each of the five feBlend modes.</desc>
  109.12 +  <defs>
  109.13 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  109.14 +            x1="100" y1="0" x2="300" y2="0">
  109.15 +      <stop offset="0" stop-color="#000000" />
  109.16 +      <stop offset=".33" stop-color="#ffffff" />
  109.17 +      <stop offset=".67" stop-color="#ff0000" />
  109.18 +      <stop offset="1" stop-color="#808080" />
  109.19 +    </linearGradient>
  109.20 +    <filter id="Normal">
  109.21 +      <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
  109.22 +    </filter>
  109.23 +    <filter id="Multiply">
  109.24 +      <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
  109.25 +    </filter>
  109.26 +    <filter id="Screen">
  109.27 +      <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
  109.28 +    </filter>
  109.29 +    <filter id="Darken">
  109.30 +      <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/>
  109.31 +    </filter>
  109.32 +    <filter id="Lighten">
  109.33 +      <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
  109.34 +    </filter>
  109.35 +  </defs>
  109.36 +  <rect fill="none" stroke="blue"  
  109.37 +        x="1" y="1" width="498" height="498"/>
  109.38 +  <g enable-background="new" >
  109.39 +    <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" />
  109.40 +    <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" >
  109.41 +      <text x="50" y="90" filter="url(#Normal)" >Normal</text>
  109.42 +      <text x="50" y="180" filter="url(#Multiply)" >Multiply</text>
  109.43 +      <text x="50" y="270" filter="url(#Screen)" >Screen</text>
  109.44 +      <text x="50" y="360" filter="url(#Darken)" >Darken</text>
  109.45 +      <text x="50" y="450" filter="url(#Lighten)" >Lighten</text>
  109.46 +    </g>
  109.47 +  </g>
  109.48 +</svg>
  109.49 +
   110.1 Binary file filters/publish/examples/feColorMatrix.png has changed
   111.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.2 +++ b/filters/publish/examples/feColorMatrix.svg	Mon Apr 11 10:08:48 2011 +1000
   111.3 @@ -0,0 +1,55 @@
   111.4 +<?xml version="1.0"?>
   111.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   111.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   111.7 +<svg width="8cm" height="5cm" viewBox="0 0 800 500"
   111.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   111.9 +  <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
  111.10 +  <desc>Five text strings showing the effects of feColorMatrix: 
  111.11 +        an unfiltered text string acting as a reference, 
  111.12 +        use of the feColorMatrix matrix option to convert to grayscale,
  111.13 +        use of the feColorMatrix saturate option,
  111.14 +        use of the feColorMatrix hueRotate option,
  111.15 +        and use of the feColorMatrix luminanceToAlpha option.</desc>
  111.16 +  <defs>
  111.17 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  111.18 +            x1="100" y1="0" x2="500" y2="0">
  111.19 +      <stop offset="0" stop-color="#ff00ff" />
  111.20 +      <stop offset=".33" stop-color="#88ff88" />
  111.21 +      <stop offset=".67" stop-color="#2020ff" />
  111.22 +      <stop offset="1" stop-color="#d00000" />
  111.23 +    </linearGradient>
  111.24 +    <filter id="Matrix" filterUnits="objectBoundingBox" 
  111.25 +            x="0%" y="0%" width="100%" height="100%">
  111.26 +      <feColorMatrix type="matrix" in="SourceGraphic"
  111.27 +           values=".33 .33 .33 0 0 
  111.28 +                   .33 .33 .33 0 0 
  111.29 +                   .33 .33 .33 0 0 
  111.30 +                   .33 .33 .33 0 0"/>
  111.31 +    </filter>
  111.32 +    <filter id="Saturate40" filterUnits="objectBoundingBox" 
  111.33 +            x="0%" y="0%" width="100%" height="100%">
  111.34 +      <feColorMatrix type="saturate" in="SourceGraphic" values="40%"/>
  111.35 +    </filter>
  111.36 +    <filter id="HueRotate90" filterUnits="objectBoundingBox" 
  111.37 +            x="0%" y="0%" width="100%" height="100%">
  111.38 +      <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
  111.39 +    </filter>
  111.40 +    <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
  111.41 +            x="0%" y="0%" width="100%" height="100%">
  111.42 +      <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
  111.43 +      <feComposite in="SourceGraphic" in2="a" operator="in" />
  111.44 +    </filter>
  111.45 +  </defs>
  111.46 +  <rect fill="none" stroke="blue"  
  111.47 +        x="1" y="1" width="798" height="498"/>
  111.48 +  <g font-family="Verdana" font-size="75" 
  111.49 +            font-weight="bold" fill="url(#MyGradient)" >
  111.50 +    <rect x="100" y="0" width="500" height="20" />
  111.51 +    <text x="100" y="90">Unfiltered</text>
  111.52 +    <text x="100" y="190" filter="url(#Matrix)" >Matrix</text>
  111.53 +    <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text>
  111.54 +    <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text>
  111.55 +    <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text>
  111.56 +  </g>
  111.57 +</svg>
  111.58 +
   112.1 Binary file filters/publish/examples/feComponentTransfer.png has changed
   113.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.2 +++ b/filters/publish/examples/feComponentTransfer.svg	Mon Apr 11 10:08:48 2011 +1000
   113.3 @@ -0,0 +1,65 @@
   113.4 +<?xml version="1.0"?>
   113.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   113.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   113.7 +<svg width="8cm" height="4cm" viewBox="0 0 800 400"
   113.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   113.9 +  <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
  113.10 +  <desc>Four text strings showing the effects of feComponentTransfer: 
  113.11 +        an identity function acting as a reference, 
  113.12 +        use of the feComponentTransfer table option,
  113.13 +        use of the feComponentTransfer linear option,
  113.14 +        and use of the feComponentTransfer gamma option.</desc>
  113.15 +  <defs>
  113.16 +    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  113.17 +            x1="100" y1="0" x2="600" y2="0">
  113.18 +      <stop offset="0" stop-color="#ff0000" />
  113.19 +      <stop offset=".33" stop-color="#00ff00" />
  113.20 +      <stop offset=".67" stop-color="#0000ff" />
  113.21 +      <stop offset="1" stop-color="#000000" />
  113.22 +    </linearGradient>
  113.23 +    <filter id="Identity" filterUnits="objectBoundingBox" 
  113.24 +            x="0%" y="0%" width="100%" height="100%">
  113.25 +      <feComponentTransfer>
  113.26 +        <feFuncR type="identity"/>
  113.27 +        <feFuncG type="identity"/>
  113.28 +        <feFuncB type="identity"/>
  113.29 +        <feFuncA type="identity"/>
  113.30 +      </feComponentTransfer>
  113.31 +    </filter>
  113.32 +    <filter id="Table" filterUnits="objectBoundingBox" 
  113.33 +            x="0%" y="0%" width="100%" height="100%">
  113.34 +      <feComponentTransfer>
  113.35 +        <feFuncR type="table" tableValues="0 0 1 1"/>
  113.36 +        <feFuncG type="table" tableValues="1 1 0 0"/>
  113.37 +        <feFuncB type="table" tableValues="0 1 1 0"/>
  113.38 +      </feComponentTransfer>
  113.39 +    </filter>
  113.40 +    <filter id="Linear" filterUnits="objectBoundingBox" 
  113.41 +            x="0%" y="0%" width="100%" height="100%">
  113.42 +      <feComponentTransfer>
  113.43 +        <feFuncR type="linear" slope=".5" intercept=".25"/>
  113.44 +        <feFuncG type="linear" slope=".5" intercept="0"/>
  113.45 +        <feFuncB type="linear" slope=".5" intercept=".5"/>
  113.46 +      </feComponentTransfer>
  113.47 +    </filter>
  113.48 +    <filter id="Gamma" filterUnits="objectBoundingBox" 
  113.49 +            x="0%" y="0%" width="100%" height="100%">
  113.50 +      <feComponentTransfer>
  113.51 +        <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
  113.52 +        <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
  113.53 +        <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
  113.54 +      </feComponentTransfer>
  113.55 +    </filter>
  113.56 +  </defs>
  113.57 +  <rect fill="none" stroke="blue"  
  113.58 +        x="1" y="1" width="798" height="398"/>
  113.59 +  <g font-family="Verdana" font-size="75" 
  113.60 +            font-weight="bold" fill="url(#MyGradient)" >
  113.61 +    <rect x="100" y="0" width="600" height="20" />
  113.62 +    <text x="100" y="90">Identity</text>
  113.63 +    <text x="100" y="190" filter="url(#Table)" >TableLookup</text>
  113.64 +    <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text>
  113.65 +    <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text>
  113.66 +  </g>
  113.67 +</svg>
  113.68 +
   114.1 Binary file filters/publish/examples/feComposite.png has changed
   115.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   115.2 +++ b/filters/publish/examples/feComposite.svg	Mon Apr 11 10:08:48 2011 +1000
   115.3 @@ -0,0 +1,170 @@
   115.4 +<?xml version="1.0"?>
   115.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   115.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   115.7 +<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
   115.8 +     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   115.9 +  <title>Example feComposite - Examples of feComposite operations</title>
  115.10 +  <desc>Four rows of six pairs of overlapping triangles depicting
  115.11 +        the six different feComposite operators under different
  115.12 +        opacity values and different clearing of the background.</desc>
  115.13 +	<defs>
  115.14 +    <desc>Define two sets of six filters for each of the six compositing operators.
  115.15 +          The first set wipes out the background image by flooding with opaque white.
  115.16 +          The second set does not wipe out the background, with the result
  115.17 +          that the background sometimes shines through and is other cases
  115.18 +          is blended into itself (i.e., "double-counting").</desc>
  115.19 +    <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.20 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.21 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  115.22 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.23 +    </filter>
  115.24 +    <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.25 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.26 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  115.27 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.28 +    </filter>
  115.29 +    <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.30 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.31 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  115.32 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.33 +    </filter>
  115.34 +    <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.35 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.36 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  115.37 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.38 +    </filter>
  115.39 +    <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.40 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.41 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  115.42 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.43 +    </filter>
  115.44 +    <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
  115.45 +            x="-5%" y="-5%" width="110%" height="110%">
  115.46 +      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  115.47 +      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  115.48 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  115.49 +      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  115.50 +    </filter>
  115.51 +    <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.52 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  115.53 +    </filter>
  115.54 +    <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.55 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  115.56 +    </filter>
  115.57 +    <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.58 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  115.59 +    </filter>
  115.60 +    <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.61 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  115.62 +    </filter>
  115.63 +    <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  115.64 +      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  115.65 +    </filter>
  115.66 +    <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
  115.67 +            x="-5%" y="-5%" width="110%" height="110%">
  115.68 +      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  115.69 +                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  115.70 +    </filter>
  115.71 +    <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" />
  115.72 +    <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" />
  115.73 +    <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" />
  115.74 +    <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" />
  115.75 +    <g id="TwoBlueTriangles">
  115.76 +      <use xlink:href="#Blue100"/>
  115.77 +      <use xlink:href="#Blue50"/>
  115.78 +    </g>
  115.79 +    <g id="BlueTriangles">
  115.80 +      <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/>
  115.81 +      <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/>
  115.82 +      <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/>
  115.83 +      <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/>
  115.84 +      <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/>
  115.85 +      <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/>
  115.86 +    </g>
  115.87 +  </defs>
  115.88 +
  115.89 +  <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/>
  115.90 +  <g font-family="Verdana" font-size="40" shape-rendering="crispEdges">
  115.91 +    <desc>Render the examples using the filters that draw on top of
  115.92 +          an opaque white surface, thus obliterating the background.</desc>
  115.93 +    <g enable-background="new">
  115.94 +      <text x="15" y="75">opacity 1.0</text>
  115.95 +      <text x="15" y="115" font-size="27">(with feFlood)</text>
  115.96 +      <text x="15" y="200">opacity 0.5</text>
  115.97 +      <text x="15" y="240" font-size="27">(with feFlood)</text>
  115.98 +      <use xlink:href="#BlueTriangles"/>
  115.99 +      <g transform="translate(275,25)">
 115.100 +        <use xlink:href="#Red100" filter="url(#overFlood)" />
 115.101 +        <use xlink:href="#Red50" filter="url(#overFlood)" />
 115.102 +        <text x="5" y="275">over</text>
 115.103 +      </g>
 115.104 +      <g transform="translate(400,25)">
 115.105 +        <use xlink:href="#Red100" filter="url(#inFlood)" />
 115.106 +        <use xlink:href="#Red50" filter="url(#inFlood)" />
 115.107 +        <text x="35" y="275">in</text>
 115.108 +      </g>
 115.109 +      <g transform="translate(525,25)">
 115.110 +        <use xlink:href="#Red100" filter="url(#outFlood)" />
 115.111 +        <use xlink:href="#Red50" filter="url(#outFlood)" />
 115.112 +        <text x="15" y="275">out</text>
 115.113 +      </g>
 115.114 +      <g transform="translate(650,25)">
 115.115 +        <use xlink:href="#Red100" filter="url(#atopFlood)" />
 115.116 +        <use xlink:href="#Red50" filter="url(#atopFlood)" />
 115.117 +        <text x="10" y="275">atop</text>
 115.118 +      </g>
 115.119 +      <g transform="translate(775,25)">
 115.120 +        <use xlink:href="#Red100" filter="url(#xorFlood)" />
 115.121 +        <use xlink:href="#Red50" filter="url(#xorFlood)" />
 115.122 +        <text x="15" y="275">xor</text>
 115.123 +      </g>
 115.124 +      <g transform="translate(900,25)">
 115.125 +        <use xlink:href="#Red100" filter="url(#arithmeticFlood)" />
 115.126 +        <use xlink:href="#Red50" filter="url(#arithmeticFlood)" />
 115.127 +        <text x="-25" y="275">arithmetic</text>
 115.128 +      </g>
 115.129 +    </g>
 115.130 +    <g transform="translate(0,325)" enable-background="new">
 115.131 +    <desc>Render the examples using the filters that do not obliterate
 115.132 +          the background, thus sometimes causing the background to continue
 115.133 +          to appear in some cases, and in other cases the background
 115.134 +          image blends into itself ("double-counting").</desc>
 115.135 +      <text x="15" y="75">opacity 1.0</text>
 115.136 +      <text x="15" y="115" font-size="27">(without feFlood)</text>
 115.137 +      <text x="15" y="200">opacity 0.5</text>
 115.138 +      <text x="15" y="240" font-size="27">(without feFlood)</text>
 115.139 +      <use xlink:href="#BlueTriangles"/>
 115.140 +      <g transform="translate(275,25)">
 115.141 +        <use xlink:href="#Red100" filter="url(#overNoFlood)" />
 115.142 +        <use xlink:href="#Red50" filter="url(#overNoFlood)" />
 115.143 +        <text x="5" y="275">over</text>
 115.144 +      </g>
 115.145 +      <g transform="translate(400,25)">
 115.146 +        <use xlink:href="#Red100" filter="url(#inNoFlood)" />
 115.147 +        <use xlink:href="#Red50" filter="url(#inNoFlood)" />
 115.148 +        <text x="35" y="275">in</text>
 115.149 +      </g>
 115.150 +      <g transform="translate(525,25)">
 115.151 +        <use xlink:href="#Red100" filter="url(#outNoFlood)" />
 115.152 +        <use xlink:href="#Red50" filter="url(#outNoFlood)" />
 115.153 +        <text x="15" y="275">out</text>
 115.154 +      </g>
 115.155 +      <g transform="translate(650,25)">
 115.156 +        <use xlink:href="#Red100" filter="url(#atopNoFlood)" />
 115.157 +        <use xlink:href="#Red50" filter="url(#atopNoFlood)" />
 115.158 +        <text x="10" y="275">atop</text>
 115.159 +      </g>
 115.160 +      <g transform="translate(775,25)">
 115.161 +        <use xlink:href="#Red100" filter="url(#xorNoFlood)" />
 115.162 +        <use xlink:href="#Red50" filter="url(#xorNoFlood)" />
 115.163 +        <text x="15" y="275">xor</text>
 115.164 +      </g>
 115.165 +      <g transform="translate(900,25)">
 115.166 +        <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" />
 115.167 +        <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" />
 115.168 +        <text x="-25" y="275">arithmetic</text>
 115.169 +      </g>
 115.170 +    </g>
 115.171 +  </g>
 115.172 +</svg>
 115.173 +
   116.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.2 +++ b/filters/publish/examples/feDropShadow.svg	Mon Apr 11 10:08:48 2011 +1000
   116.3 @@ -0,0 +1,47 @@
   116.4 +<?xml version="1.0"?>
   116.5 +<svg viewBox="0 0 800 400"
   116.6 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   116.7 +  <title>Example feDropShadow - Examples of feDropShadow operations</title>
   116.8 +  <desc>Four text strings showing the effects of feComponentTransfer: 
   116.9 +        an identity function acting as a reference, 
  116.10 +        use of the feComponentTransfer table option,
  116.11 +        use of the feComponentTransfer linear option,
  116.12 +        and use of the feComponentTransfer gamma option.</desc>
  116.13 +  <defs>
  116.14 +    <filter id="feDropShadowEquiv1">
  116.15 +		<feGaussianBlur stdDeviation="3"/>
  116.16 +		<feOffset dx="3" dy="3" result="offsetblur"/>
  116.17 +		<feFlood flood-color="#720"/>
  116.18 +		<feComposite in2="offsetblur" operator="in"/>
  116.19 +		<feMerge>
  116.20 +			<feMergeNode/>
  116.21 +			<feMergeNode in="SourceGraphic"/>
  116.22 +		</feMerge>
  116.23 +    </filter>
  116.24 +    <filter id="feDropShadowEquiv2">
  116.25 +		<feGaussianBlur stdDeviation="2"/>
  116.26 +		<feOffset dx="2" dy="2" result="offsetblur"/>
  116.27 +		<feFlood/>
  116.28 +		<feComposite in2="offsetblur" operator="in"/>
  116.29 +		<feMerge>
  116.30 +			<feMergeNode/>
  116.31 +			<feMergeNode in="SourceGraphic"/>
  116.32 +		</feMerge>
  116.33 +    </filter>
  116.34 +	<filter id="feDropShadow1">
  116.35 +		<feDropShadow stdDeviation="3" flood-color="#720"/>
  116.36 +	</filter>
  116.37 +	<filter id="feDropShadow2">
  116.38 +		<feDropShadow/>
  116.39 +	</filter>
  116.40 +  </defs>
  116.41 +  <rect fill="none" stroke="blue"  
  116.42 +        x="1" y="1" width="798" height="398"/>
  116.43 +  <g font-family="Verdana" font-size="30">
  116.44 +    <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text>
  116.45 +    <text x="100" y="140" filter="url(#feDropShadowEquiv1)" >feDropShadow</text>
  116.46 +    <text x="100" y="190" filter="url(#feDropShadow2)">feDropShadow</text>
  116.47 +    <text x="100" y="240" filter="url(#feDropShadowEquiv2)" >feDropShadow</text>
  116.48 +  </g>
  116.49 +</svg>
  116.50 +
   117.1 Binary file filters/publish/examples/feGaussianBlur-stdDeviation-00.png has changed
   118.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   118.2 +++ b/filters/publish/examples/feGaussianBlur-stdDeviation-00.svg	Mon Apr 11 10:08:48 2011 +1000
   118.3 @@ -0,0 +1,38 @@
   118.4 +<?xml version="1.0" encoding="UTF-8"?>
   118.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
   118.6 +  <defs>
   118.7 +    <font-face font-family="FORQUE">
   118.8 +      <font-face-src>
   118.9 +        <font-face-uri xlink:href="Forque.svg#FORQUE"/>
  118.10 +      </font-face-src>
  118.11 +    </font-face>
  118.12 +    <style>
  118.13 +      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
  118.14 +      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
  118.15 +      #bx { filter: url(#blurX) }
  118.16 +      #by { filter: url(#blurY) }
  118.17 +      #header { filter: url(#ds); fill: white; text-decoration: underline }
  118.18 +      #attribution { font-size: 6px }
  118.19 +      :root { background: green; fill: white }
  118.20 +    </style>
  118.21 +    <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse">
  118.22 +      <feGaussianBlur stdDeviation="4 0">
  118.23 +        <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/>
  118.24 +      </feGaussianBlur>
  118.25 +    </filter>
  118.26 +    <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse">
  118.27 +      <feGaussianBlur stdDeviation="0 4"/>
  118.28 +    </filter>
  118.29 +    <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2">
  118.30 +      <feGaussianBlur stdDeviation="3"/>
  118.31 +      <feOffset dx="2" dy="2"/>
  118.32 +      <feComposite in2="SourceGraphic" operator="in"/>
  118.33 +    </filter>
  118.34 +  </defs>
  118.35 +
  118.36 +  <text id="bx" x="40%" y="50%">BlurX</text>
  118.37 +  <text id="by" x="60%" y="70%">BlurY</text>
  118.38 +  
  118.39 +  <text id="header" y="1em" x="50%">Unidirectional blur</text>
  118.40 +  <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text>
  118.41 +</svg>
   119.1 Binary file filters/publish/examples/feMorphology.png has changed
   120.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.2 +++ b/filters/publish/examples/feMorphology.svg	Mon Apr 11 10:08:48 2011 +1000
   120.3 @@ -0,0 +1,37 @@
   120.4 +<?xml version="1.0"?>
   120.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   120.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   120.7 +<svg width="5cm" height="7cm" viewBox="0 0 700 500"
   120.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   120.9 +  <title>Example feMorphology - Examples of erode and dilate</title>
  120.10 +  <desc>Five text strings drawn as outlines.
  120.11 +        The first is unfiltered. The second and third use 'erode'.
  120.12 +        The fourth and fifth use 'dilate'.</desc>
  120.13 +  <defs>
  120.14 +    <filter id="Erode3">
  120.15 +      <feMorphology operator="erode" in="SourceGraphic" radius="3" />
  120.16 +    </filter>
  120.17 +    <filter id="Erode6">
  120.18 +      <feMorphology operator="erode" in="SourceGraphic" radius="6" />
  120.19 +    </filter>
  120.20 +    <filter id="Dilate3">
  120.21 +      <feMorphology operator="dilate" in="SourceGraphic" radius="3" />
  120.22 +    </filter>
  120.23 +    <filter id="Dilate6">
  120.24 +      <feMorphology operator="dilate" in="SourceGraphic" radius="6" />
  120.25 +    </filter>
  120.26 +  </defs>
  120.27 +  <rect fill="none" stroke="blue" stroke-width="2"  
  120.28 +        x="1" y="1" width="698" height="498"/>
  120.29 +  <g enable-background="new" >
  120.30 +    <g font-family="Verdana" font-size="75" 
  120.31 +              fill="none" stroke="black" stroke-width="6" >
  120.32 +      <text x="50" y="90">Unfiltered</text>
  120.33 +      <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text>
  120.34 +      <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text>
  120.35 +      <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text>
  120.36 +      <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text>
  120.37 +    </g>
  120.38 +  </g>
  120.39 +</svg>
  120.40 +
   121.1 Binary file filters/publish/examples/feTurbulence.png has changed
   122.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   122.2 +++ b/filters/publish/examples/feTurbulence.svg	Mon Apr 11 10:08:48 2011 +1000
   122.3 @@ -0,0 +1,71 @@
   122.4 +<?xml version="1.0"?>
   122.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   122.6 +          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   122.7 +<svg width="450px" height="325px" viewBox="0 0 450 325"
   122.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   122.9 +  <title>Example feTurbulence - Examples of feTurbulence operations</title>
  122.10 +  <desc>Six rectangular areas showing the effects of 
  122.11 +        various parameter settings for feTurbulence.</desc>
  122.12 +  <g  font-family="Verdana" text-anchor="middle" font-size="10" >
  122.13 +    <defs>
  122.14 +      <filter id="Turb1" filterUnits="objectBoundingBox" 
  122.15 +              x="0%" y="0%" width="100%" height="100%">
  122.16 +        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
  122.17 +      </filter>
  122.18 +      <filter id="Turb2" filterUnits="objectBoundingBox" 
  122.19 +              x="0%" y="0%" width="100%" height="100%">
  122.20 +        <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
  122.21 +      </filter>
  122.22 +      <filter id="Turb3" filterUnits="objectBoundingBox" 
  122.23 +              x="0%" y="0%" width="100%" height="100%">
  122.24 +        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/>
  122.25 +      </filter>
  122.26 +      <filter id="Turb4" filterUnits="objectBoundingBox" 
  122.27 +              x="0%" y="0%" width="100%" height="100%">
  122.28 +        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/>
  122.29 +      </filter>
  122.30 +      <filter id="Turb5" filterUnits="objectBoundingBox" 
  122.31 +              x="0%" y="0%" width="100%" height="100%">
  122.32 +        <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/>
  122.33 +      </filter>
  122.34 +      <filter id="Turb6" filterUnits="objectBoundingBox" 
  122.35 +              x="0%" y="0%" width="100%" height="100%">
  122.36 +        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/>
  122.37 +      </filter>
  122.38 +    </defs>
  122.39 +
  122.40 +    <rect x="1" y="1" width="448" height="323"
  122.41 +          fill="none" stroke="blue" stroke-width="1"  />
  122.42 +
  122.43 +    <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  />
  122.44 +    <text x="75" y="117">type=turbulence</text>
  122.45 +    <text x="75" y="129">baseFrequency=0.05</text>
  122.46 +    <text x="75" y="141">numOctaves=2</text>
  122.47 +
  122.48 +    <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  />
  122.49 +    <text x="225" y="117">type=turbulence</text>
  122.50 +    <text x="225" y="129">baseFrequency=0.1</text>
  122.51 +    <text x="225" y="141">numOctaves=2</text>
  122.52 +
  122.53 +    <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  />
  122.54 +    <text x="375" y="117">type=turbulence</text>
  122.55 +    <text x="375" y="129">baseFrequency=0.05</text>
  122.56 +    <text x="375" y="141">numOctaves=8</text>
  122.57 +
  122.58 +    <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  />
  122.59 +    <text x="75" y="272">type=fractalNoise</text>
  122.60 +    <text x="75" y="284">baseFrequency=0.1</text>
  122.61 +    <text x="75" y="296">numOctaves=4</text>
  122.62 +
  122.63 +    <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  />
  122.64 +    <text x="225" y="272">type=fractalNoise</text>
  122.65 +    <text x="225" y="284">baseFrequency=0.4</text>
  122.66 +    <text x="225" y="296">numOctaves=4</text>
  122.67 +
  122.68 +    <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  />
  122.69 +    <text x="375" y="272">type=fractalNoise</text>
  122.70 +    <text x="375" y="284">baseFrequency=0.1</text>
  122.71 +    <text x="375" y="296">numOctaves=1</text>
  122.72 +  </g>
  122.73 +</svg>
  122.74 +
   123.1 Binary file filters/publish/examples/filters00.png has changed
   124.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   124.2 +++ b/filters/publish/examples/filters00.svg	Mon Apr 11 10:08:48 2011 +1000
   124.3 @@ -0,0 +1,53 @@
   124.4 +<?xml version="1.0"?>
   124.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   124.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   124.7 +<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1"
   124.8 +     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   124.9 +  <title>Example filters00.svg - filter effects before and after</title>
  124.10 +  <desc>Picture of the before and after affects of filtering.</desc>
  124.11 +	<defs>
  124.12 +    <filter id="MyFilter">
  124.13 +			<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  124.14 +			<feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  124.15 +			<feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 
  124.16 +                          specularExponent="10" lighting-color="white"  
  124.17 +                          result="specOut">
  124.18 +				<fePointLight x="-5000" y="-10000" z="20000"/>
  124.19 +			</feSpecularLighting>
  124.20 +			<feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  124.21 +			<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  124.22 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  124.23 +			<feMerge>
  124.24 +				<feMergeNode in="offsetBlur"/>
  124.25 +				<feMergeNode in="litPaint"/>
  124.26 +			</feMerge>
  124.27 +		</filter>
  124.28 +    <g id="CircleRectTriangle">
  124.29 +      <g>
  124.30 +        <circle cx="85" cy="80" r="40" fill="yellow"  />
  124.31 +<g>
  124.32 +        <rect x="145" y="45" width="90" height="70" fill="red"  />
  124.33 +</g>
  124.34 +        <path d="M260,40 L335,80 L260,120 z" fill="#4444ff"  />
  124.35 +      </g>
  124.36 +    </g>
  124.37 +    <path id="LineWithArrow" 
  124.38 +          d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" />
  124.39 +	</defs>
  124.40 +  <g font-family="Verdana" font-size="30" >
  124.41 +    <rect x="1" y="1" width="1128" height="218" 
  124.42 +          fill="#cccccc" stroke="blue" />
  124.43 +    <use x="0" y="0" xlink:href="#CircleRectTriangle"/>
  124.44 +    <text x="20" y="180">Original source graphic</text>
  124.45 +    <use x="380" y="80" xlink:href="#LineWithArrow"/>
  124.46 +    <text x="520" y="70">Filter</text>
  124.47 +    <text x="520" y="120">Effect</text>
  124.48 +    <use x="630" y="80" xlink:href="#LineWithArrow"/>
  124.49 +    <text x="790" y="180">Result of filter effect</text>
  124.50 +  </g>
  124.51 +  <g filter="url(#MyFilter)" >
  124.52 +    <use x="750" y="0" xlink:href="#CircleRectTriangle"/>
  124.53 +  </g>
  124.54 +</svg>
  124.55 +
  124.56 +
   125.1 Binary file filters/publish/examples/filters01-0.png has changed
   126.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.2 +++ b/filters/publish/examples/filters01-0.svg	Mon Apr 11 10:08:48 2011 +1000
   126.3 @@ -0,0 +1,23 @@
   126.4 +<?xml version="1.0"?>
   126.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   126.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   126.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1"
   126.8 +     xmlns="http://www.w3.org/2000/svg">
   126.9 +  <title>Example filters01-0.svg - source graphic with no filters</title>
  126.10 +  <desc>Shows what filters01.svg looks like without any
  126.11 +        filters.</desc>
  126.12 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  126.13 +  <g>
  126.14 +	  <g>
  126.15 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  126.16 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  126.17 +      <path fill="#D90000" 
  126.18 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  126.19 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  126.20 +  			<text x="52" y="76">SVG</text>
  126.21 +      </g>
  126.22 +	  </g>
  126.23 +  </g>
  126.24 +</svg>
  126.25 +
  126.26 +
   127.1 Binary file filters/publish/examples/filters01-1.png has changed
   128.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.2 +++ b/filters/publish/examples/filters01-1.svg	Mon Apr 11 10:08:48 2011 +1000
   128.3 @@ -0,0 +1,28 @@
   128.4 +<?xml version="1.0"?>
   128.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   128.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   128.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   128.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   128.9 +  <title>Example filters01-1.svg - after first step</title>
  128.10 +  <desc>Shows intermediate result for filters01.svg after applying
  128.11 +        the first filter element, feGaussianBlur.</desc>
  128.12 +	<defs>
  128.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  128.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  128.15 +		</filter>
  128.16 +	</defs>
  128.17 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  128.18 +  <g filter="url(#MyFilter)" >
  128.19 +	  <g>
  128.20 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  128.21 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  128.22 +      <path fill="#D90000" 
  128.23 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  128.24 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  128.25 +  			<text x="52" y="76">SVG</text>
  128.26 +      </g>
  128.27 +	  </g>
  128.28 +  </g>
  128.29 +</svg>
  128.30 +
  128.31 +
   129.1 Binary file filters/publish/examples/filters01-2.png has changed
   130.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.2 +++ b/filters/publish/examples/filters01-2.svg	Mon Apr 11 10:08:48 2011 +1000
   130.3 @@ -0,0 +1,29 @@
   130.4 +<?xml version="1.0"?>
   130.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   130.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   130.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   130.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   130.9 +  <title>Example filters01-2.svg - after second step</title>
  130.10 +  <desc>Shows intermediate result for filters01.svg after applying
  130.11 +        the second filter element, feOffset.</desc>
  130.12 +	<defs>
  130.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  130.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  130.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  130.16 +		</filter>
  130.17 +	</defs>
  130.18 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  130.19 +  <g filter="url(#MyFilter)" >
  130.20 +	  <g>
  130.21 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  130.22 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  130.23 +      <path fill="#D90000" 
  130.24 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  130.25 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  130.26 +  			<text x="52" y="76">SVG</text>
  130.27 +      </g>
  130.28 +	  </g>
  130.29 +  </g>
  130.30 +</svg>
  130.31 +
  130.32 +
   131.1 Binary file filters/publish/examples/filters01-3.png has changed
   132.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.2 +++ b/filters/publish/examples/filters01-3.svg	Mon Apr 11 10:08:48 2011 +1000
   132.3 @@ -0,0 +1,34 @@
   132.4 +<?xml version="1.0"?>
   132.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   132.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   132.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   132.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   132.9 +  <title>Example filters01-3.svg - after third step</title>
  132.10 +  <desc>Shows intermediate result for filters01.svg after applying
  132.11 +        the third filter element, feSpecularLighting.</desc>
  132.12 +	<defs>
  132.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  132.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  132.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  132.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  132.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
  132.18 +                          result="specOut">
  132.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
  132.20 +      </feSpecularLighting>
  132.21 +		</filter>
  132.22 +	</defs>
  132.23 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  132.24 +  <g filter="url(#MyFilter)" >
  132.25 +	  <g>
  132.26 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  132.27 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  132.28 +      <path fill="#D90000" 
  132.29 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  132.30 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  132.31 +  			<text x="52" y="76">SVG</text>
  132.32 +      </g>
  132.33 +	  </g>
  132.34 +  </g>
  132.35 +</svg>
  132.36 +
  132.37 +
   133.1 Binary file filters/publish/examples/filters01-4.png has changed
   134.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.2 +++ b/filters/publish/examples/filters01-4.svg	Mon Apr 11 10:08:48 2011 +1000
   134.3 @@ -0,0 +1,35 @@
   134.4 +<?xml version="1.0"?>
   134.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   134.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   134.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   134.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   134.9 +  <title>Example filters01-4.svg - after fourth step</title>
  134.10 +  <desc>Shows intermediate result for filters01.svg after applying
  134.11 +        the fourth filter element, feComposite.</desc>
  134.12 +	<defs>
  134.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  134.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  134.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  134.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  134.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
  134.18 +                          result="specOut">
  134.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
  134.20 +      </feSpecularLighting>
  134.21 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  134.22 +		</filter>
  134.23 +	</defs>
  134.24 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  134.25 +  <g filter="url(#MyFilter)" >
  134.26 +	  <g>
  134.27 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  134.28 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  134.29 +      <path fill="#D90000" 
  134.30 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  134.31 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  134.32 +  			<text x="52" y="76">SVG</text>
  134.33 +      </g>
  134.34 +	  </g>
  134.35 +  </g>
  134.36 +</svg>
  134.37 +
  134.38 +
   135.1 Binary file filters/publish/examples/filters01-5.png has changed
   136.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   136.2 +++ b/filters/publish/examples/filters01-5.svg	Mon Apr 11 10:08:48 2011 +1000
   136.3 @@ -0,0 +1,37 @@
   136.4 +<?xml version="1.0"?>
   136.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   136.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   136.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   136.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   136.9 +  <title>Example filters01-5.svg - after fifth step</title>
  136.10 +  <desc>Shows intermediate result for filters01.svg after applying
  136.11 +        the fifth filter element, feComposite.</desc>
  136.12 +	<defs>
  136.13 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  136.14 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  136.15 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  136.16 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  136.17 +                          specularExponent="20" lighting-color="#bbbbbb"  
  136.18 +                          result="specOut">
  136.19 +        <fePointLight x="-5000" y="-10000" z="20000"/>
  136.20 +      </feSpecularLighting>
  136.21 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  136.22 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  136.23 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  136.24 +    </filter>
  136.25 +	</defs>
  136.26 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  136.27 +  <g filter="url(#MyFilter)" >
  136.28 +	  <g>
  136.29 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  136.30 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  136.31 +      <path fill="#D90000" 
  136.32 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  136.33 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  136.34 +  			<text x="52" y="76">SVG</text>
  136.35 +      </g>
  136.36 +	  </g>
  136.37 +  </g>
  136.38 +</svg>
  136.39 +
  136.40 +
   137.1 Binary file filters/publish/examples/filters01-6.png has changed
   138.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.2 +++ b/filters/publish/examples/filters01-6.svg	Mon Apr 11 10:08:48 2011 +1000
   138.3 @@ -0,0 +1,43 @@
   138.4 +<?xml version="1.0"?>
   138.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   138.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   138.7 +<svg width="115px" height="70px" viewBox="0 0 200 120"
   138.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   138.9 +  <title>Example filters01.svg - introducing filter effects</title>
  138.10 +  <desc>An example which combines multiple filter primitives
  138.11 +        to produce a 3D lighting effect on a graphic consisting
  138.12 +        of the string "SVG" sitting on top of oval filled in red
  138.13 +        and surrounded by an oval outlined in red.</desc>
  138.14 +  <defs>
  138.15 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  138.16 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  138.17 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  138.18 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  138.19 +                          specularExponent="20" lighting-color="#bbbbbb"  
  138.20 +                          result="specOut">
  138.21 +        <fePointLight x="-5000" y="-10000" z="20000"/>
  138.22 +      </feSpecularLighting>
  138.23 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  138.24 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  138.25 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  138.26 +      <feMerge>
  138.27 +        <feMergeNode in="offsetBlur"/>
  138.28 +        <feMergeNode in="litPaint"/>
  138.29 +      </feMerge>
  138.30 +    </filter>
  138.31 +  </defs>
  138.32 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  138.33 +  <g filter="url(#MyFilter)" >
  138.34 +	  <g>
  138.35 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  138.36 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  138.37 +      <path fill="#D90000" 
  138.38 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  138.39 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  138.40 +        <text x="52" y="76">SVG</text>
  138.41 +      </g>
  138.42 +    </g>
  138.43 +  </g>
  138.44 +</svg>
  138.45 +
  138.46 +
   139.1 Binary file filters/publish/examples/filters01.png has changed
   140.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.2 +++ b/filters/publish/examples/filters01.svg	Mon Apr 11 10:08:48 2011 +1000
   140.3 @@ -0,0 +1,43 @@
   140.4 +<?xml version="1.0"?>
   140.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   140.6 +              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   140.7 +<svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
   140.8 +     xmlns="http://www.w3.org/2000/svg" version="1.1">
   140.9 +  <title>Example filters01.svg - introducing filter effects</title>
  140.10 +  <desc>An example which combines multiple filter primitives
  140.11 +        to produce a 3D lighting effect on a graphic consisting
  140.12 +        of the string "SVG" sitting on top of oval filled in red
  140.13 +        and surrounded by an oval outlined in red.</desc>
  140.14 +  <defs>
  140.15 +    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  140.16 +      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  140.17 +      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  140.18 +      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  140.19 +                          specularExponent="20" lighting-color="#bbbbbb"  
  140.20 +                          result="specOut">
  140.21 +        <fePointLight x="-5000" y="-10000" z="20000"/>
  140.22 +      </feSpecularLighting>
  140.23 +      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  140.24 +      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  140.25 +                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  140.26 +      <feMerge>
  140.27 +        <feMergeNode in="offsetBlur"/>
  140.28 +        <feMergeNode in="litPaint"/>
  140.29 +      </feMerge>
  140.30 +    </filter>
  140.31 +  </defs>
  140.32 +  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  140.33 +  <g filter="url(#MyFilter)" >
  140.34 +	  <g>
  140.35 +      <path fill="none" stroke="#D90000" stroke-width="10" 
  140.36 +            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  140.37 +      <path fill="#D90000" 
  140.38 +            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  140.39 +      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  140.40 +        <text x="52" y="76">SVG</text>
  140.41 +      </g>
  140.42 +    </g>
  140.43 +  </g>
  140.44 +</svg>
  140.45 +
  140.46 +
   141.1 Binary file filters/publish/examples/filtersubregion00.png has changed
   142.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.2 +++ b/filters/publish/examples/filtersubregion00.svg	Mon Apr 11 10:08:48 2011 +1000
   142.3 @@ -0,0 +1,43 @@
   142.4 +<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 
   142.5 +	<defs>
   142.6 +		<filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox">
   142.7 +		   <feFlood x="25%" y="25%" width="50%" height="50%"
   142.8 +					flood-color="green" flood-opacity="0.75"/>
   142.9 +		</filter>
  142.10 +		<filter id="blend" primitiveUnits="objectBoundingBox">
  142.11 +		   <feBlend x="25%" y="25%" width="50%" height="50%"
  142.12 +					in2="SourceGraphic" mode="multiply"/>
  142.13 +		</filter>
  142.14 +		<filter id="merge" primitiveUnits="objectBoundingBox">
  142.15 +		   <feMerge x="25%" y="25%" width="50%" height="50%">
  142.16 +				<feMergeNode in="SourceGraphic"/>
  142.17 +				<feMergeNode in="FillPaint"/>
  142.18 +		   </feMerge>
  142.19 +		</filter>
  142.20 +	</defs>
  142.21 +	
  142.22 +	<g fill="none" stroke="blue" stroke-width="4">
  142.23 +	   <rect width="200" height="200"/>
  142.24 +	   <line x2="200" y2="200"/>
  142.25 +	   <line x1="200" y2="200"/>
  142.26 +	</g>
  142.27 +	<circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/>
  142.28 +
  142.29 +	<g transform="translate(200 0)">
  142.30 +		<g fill="none" stroke="blue" stroke-width="4">
  142.31 +		   <rect width="200" height="200"/>
  142.32 +		   <line x2="200" y2="200"/>
  142.33 +		   <line x1="200" y2="200"/>
  142.34 +		</g>
  142.35 +		<circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/>
  142.36 +	</g>
  142.37 +	
  142.38 +	<g transform="translate(0 200)">
  142.39 +		<g fill="none" stroke="blue" stroke-width="4">
  142.40 +		   <rect width="200" height="200"/>
  142.41 +		   <line x2="200" y2="200"/>
  142.42 +		   <line x1="200" y2="200"/>
  142.43 +		</g>
  142.44 +		<circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/>
  142.45 +	</g>
  142.46 +</svg>
  142.47 \ No newline at end of file
   143.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.2 +++ b/filters/publish/rng/feBlend	Mon Apr 11 10:08:48 2011 +1000
   143.3 @@ -0,0 +1,33 @@
   143.4 +  <define name='svg.feBlend.content'>
   143.5 +    <zeroOrMore>
   143.6 +      <choice>
   143.7 +        <ref name='animate'/>
   143.8 +        <ref name='set'/>
   143.9 +      </choice>
  143.10 +    </zeroOrMore>
  143.11 +  </define>
  143.12 +
  143.13 +  <define name='feBlend'>
  143.14 +    <element name='feBlend'>
  143.15 +      <ref name='feBlend.attr'/>
  143.16 +      <ref name='svg.feBlend.content'/>
  143.17 +    </element>
  143.18 +  </define>
  143.19 +
  143.20 +  <define name='feBlend.attr' combine='interleave'>
  143.21 +    <ref name='svg.Core.attr'/>
  143.22 +    <ref name='svg.FilterColor.attr'/>
  143.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  143.24 +    <attribute name='in2'/>
  143.25 +    <optional>
  143.26 +      <attribute name='mode' a:defaultValue='normal'>
  143.27 +        <choice>
  143.28 +          <value>normal</value>
  143.29 +          <value>multiply</value>
  143.30 +          <value>screen</value>
  143.31 +          <value>darken</value>
  143.32 +          <value>lighten</value>
  143.33 +        </choice>
  143.34 +      </attribute>
  143.35 +    </optional>
  143.36 +  </define>
   144.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.2 +++ b/filters/publish/rng/feColorMatrix	Mon Apr 11 10:08:48 2011 +1000
   144.3 @@ -0,0 +1,34 @@
   144.4 +  <define name='svg.feColorMatrix.content'>
   144.5 +    <zeroOrMore>
   144.6 +      <choice>
   144.7 +        <ref name='animate'/>
   144.8 +        <ref name='set'/>
   144.9 +      </choice>
  144.10 +    </zeroOrMore>
  144.11 +  </define>
  144.12 +
  144.13 +  <define name='feColorMatrix'>
  144.14 +    <element name='feColorMatrix'>
  144.15 +      <ref name='feColorMatrix.attr'/>
  144.16 +      <ref name='svg.feColorMatrix.content'/>
  144.17 +    </element>
  144.18 +  </define>
  144.19 +
  144.20 +  <define name='feColorMatrix.attr' combine='interleave'>
  144.21 +    <ref name='svg.Core.attr'/>
  144.22 +    <ref name='svg.FilterColor.attr'/>
  144.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  144.24 +    <optional>
  144.25 +      <attribute name='type' a:defaultValue='matrix'>
  144.26 +        <choice>
  144.27 +          <value>matrix</value>
  144.28 +          <value>saturate</value>
  144.29 +          <value>hueRotate</value>
  144.30 +          <value>luminanceToAlpha</value>
  144.31 +        </choice>
  144.32 +      </attribute>
  144.33 +    </optional>
  144.34 +    <optional>
  144.35 +      <attribute name='values'/>
  144.36 +    </optional>
  144.37 +  </define>
   145.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.2 +++ b/filters/publish/rng/feComponentTransfer	Mon Apr 11 10:08:48 2011 +1000
   145.3 @@ -0,0 +1,98 @@
   145.4 +  <define name='svg.feComponentTransfer.content'>
   145.5 +    <optional><ref name='feFuncR'/></optional>
   145.6 +    <optional><ref name='feFuncG'/></optional>
   145.7 +    <optional><ref name='feFuncB'/></optional>
   145.8 +    <optional><ref name='feFuncA'/></optional>
   145.9 +  </define>
  145.10 +
  145.11 +  <define name='feComponentTransfer'>
  145.12 +    <element name='feComponentTransfer'>
  145.13 +      <ref name='feComponentTransfer.attr'/>
  145.14 +      <ref name='svg.feComponentTransfer.content'/>
  145.15 +    </element>
  145.16 +  </define>
  145.17 +
  145.18 +  <define name='feComponentTransfer.attr' combine='interleave'>
  145.19 +    <ref name='svg.Core.attr'/>
  145.20 +    <ref name='svg.FilterColor.attr'/>
  145.21 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  145.22 +  </define>
  145.23 +
  145.24 +
  145.25 +  <define name='SVG.feFunc.content'>
  145.26 +    <zeroOrMore>
  145.27 +      <choice>
  145.28 +        <ref name='animate'/>
  145.29 +        <ref name='set'/>
  145.30 +      </choice>
  145.31 +    </zeroOrMore>
  145.32 +  </define>
  145.33 +
  145.34 +  <define name='feFuncR'>
  145.35 +    <element name='feFuncR'>
  145.36 +      <ref name='feFunc.attr'/>
  145.37 +      <ref name='svg.feFunc.content'/>
  145.38 +    </element>
  145.39 +  </define>
  145.40 +  
  145.41 +  <define name='feFuncG'>
  145.42 +    <element name='feFuncG'>
  145.43 +      <ref name='feFunc.attr'/>
  145.44 +      <ref name='svg.feFunc.content'/>
  145.45 +    </element>
  145.46 +  </define>
  145.47 +  
  145.48 +  <define name='feFuncB'>
  145.49 +    <element name='feFuncB'>
  145.50 +      <ref name='feFunc.attr'/>
  145.51 +      <ref name='svg.feFunc.content'/>
  145.52 +    </element>
  145.53 +  </define>
  145.54 +  
  145.55 +  <define name='feFuncA'>
  145.56 +    <element name='feFuncA'>
  145.57 +      <ref name='feFunc.attr'/>
  145.58 +      <ref name='svg.feFunc.content'/>
  145.59 +    </element>
  145.60 +  </define>
  145.61 +
  145.62 +  <define name='feFunc.attr' combine='interleave'>
  145.63 +    <ref name='svg.Core.attr'/>
  145.64 +    <attribute name='type'>
  145.65 +      <choice>
  145.66 +        <value>identity</value>
  145.67 +        <value>table</value>
  145.68 +        <value>discrete</value>
  145.69 +        <value>linear</value>
  145.70 +        <value>gamma</value>
  145.71 +      </choice>
  145.72 +    </attribute>
  145.73 +    <optional>
  145.74 +      <attribute name='tableValues'/>
  145.75 +    </optional>
  145.76 +    <optional>
  145.77 +      <attribute name='slope'>
  145.78 +        <ref name='Number.datatype'/>
  145.79 +      </attribute>
  145.80 +    </optional>
  145.81 +    <optional>
  145.82 +      <attribute name='intercept'>
  145.83 +        <ref name='Number.datatype'/>
  145.84 +      </attribute>
  145.85 +    </optional>
  145.86 +    <optional>
  145.87 +      <attribute name='amplitude'>
  145.88 +        <ref name='Number.datatype'/>
  145.89 +      </attribute>
  145.90 +    </optional>
  145.91 +    <optional>
  145.92 +      <attribute name='exponent'>
  145.93 +        <ref name='Number.datatype'/>
  145.94 +      </attribute>
  145.95 +    </optional>
  145.96 +    <optional>
  145.97 +      <attribute name='offset'>
  145.98 +        <ref name='Number.datatype'/>
  145.99 +      </attribute>
 145.100 +    </optional>
 145.101 +  </define>
 145.102 \ No newline at end of file
   146.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.2 +++ b/filters/publish/rng/feComposite	Mon Apr 11 10:08:48 2011 +1000
   146.3 @@ -0,0 +1,54 @@
   146.4 +  <define name='svg.feComposite.content'>
   146.5 +    <zeroOrMore>
   146.6 +      <choice>
   146.7 +        <ref name='animate'/>
   146.8 +        <ref name='set'/>
   146.9 +      </choice>
  146.10 +    </zeroOrMore>
  146.11 +  </define>
  146.12 +
  146.13 +  <define name='feComposite'>
  146.14 +    <element name='feComposite'>
  146.15 +      <ref name='feComposite.attr'/>
  146.16 +      <ref name='svg.feComposite.content'/>
  146.17 +    </element>
  146.18 +  </define>
  146.19 +
  146.20 +  <define name='feComposite.attr' combine='interleave'>
  146.21 +    <ref name='svg.Core.attr'/>
  146.22 +    <ref name='svg.FilterColor.attr'/>
  146.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  146.24 +    <attribute name='in2'/>
  146.25 +    <optional>
  146.26 +      <attribute name='operator' a:defaultValue='over'>
  146.27 +        <choice>
  146.28 +          <value>over</value>
  146.29 +          <value>in</value>
  146.30 +          <value>out</value>
  146.31 +          <value>atop</value>
  146.32 +          <value>xor</value>
  146.33 +          <value>arithmetic</value>
  146.34 +        </choice>
  146.35 +      </attribute>
  146.36 +    </optional>
  146.37 +    <optional>
  146.38 +      <attribute name='k1'>
  146.39 +        <ref name='Number.datatype'/>
  146.40 +      </attribute>
  146.41 +    </optional>
  146.42 +    <optional>
  146.43 +      <attribute name='k2'>
  146.44 +        <ref name='Number.datatype'/>
  146.45 +      </attribute>
  146.46 +    </optional>
  146.47 +    <optional>
  146.48 +      <attribute name='k3'>
  146.49 +        <ref name='Number.datatype'/>
  146.50 +      </attribute>
  146.51 +    </optional>
  146.52 +    <optional>
  146.53 +      <attribute name='k4'>
  146.54 +        <ref name='Number.datatype'/>
  146.55 +      </attribute>
  146.56 +    </optional>
  146.57 +  </define>
   147.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   147.2 +++ b/filters/publish/rng/feConvolveMatrix	Mon Apr 11 10:08:48 2011 +1000
   147.3 @@ -0,0 +1,64 @@
   147.4 +  <define name='svg.feConvolveMatrix.content'>
   147.5 +    <zeroOrMore>
   147.6 +      <choice>
   147.7 +        <ref name='animate'/>
   147.8 +        <ref name='set'/>
   147.9 +      </choice>
  147.10 +    </zeroOrMore>
  147.11 +  </define>
  147.12 +
  147.13 +  <define name='feConvolveMatrix'>
  147.14 +    <element name='feConvolveMatrix'>
  147.15 +      <ref name='feConvolveMatrix.attr'/>
  147.16 +      <ref name='svg.feConvolveMatrix.content'/>
  147.17 +    </element>
  147.18 +  </define>
  147.19 +
  147.20 +  <define name='feConvolveMatrix.attr' combine='interleave'>
  147.21 +    <ref name='svg.Core.attr'/>
  147.22 +    <ref name='svg.FilterColor.attr'/>
  147.23 +    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  147.24 +    <attribute name='order'>
  147.25 +      <ref name='NumberOptionalNumber.datatype'/>
  147.26 +    </attribute>
  147.27 +    <attribute name='kernelMatrix'/>
  147.28 +    <optional>
  147.29 +      <attribute name='divisor'>
  147.30 +        <ref name='Number.datatype'/>
  147.31 +      </attribute>
  147.32 +    </optional>
  147.33 +    <optional>
  147.34 +      <attribute name='bias'>
  147.35 +        <ref name='Number.datatype'/>
  147.36 +      </attribute>
  147.37 +    </optional>
  147.38 +    <optional>
  147.39 +      <attribute name='targetX'>
  147.40 +        <ref name='Integer.datatype'/>
  147.41 +      </attribute>
  147.42 +    </optional>
  147.43 +    <optional>
  147.44 +      <attribute name='targetY'>
  147.45 +        <ref name='Integer.datatype'/>
  147.46 +      </attribute>
  147.47 +    </optional>
  147.48 +    <optional>
  147.49 +      <attribute name='edgeMode' a:defaultValue='duplicate'>
  147.50 +        <choice>
  147.51 +          <value>duplicate</value>
  147.52 +          <value>wrap</value>
  147.53 +          <value>none</value>
  147.54 +        </choice>
  147.55 +      </attribute>
  147.56 +    </optional>
  147.57 +    <optional>
  147.58 +      <attribute name='kernelUnitLength'>
  147.59 +        <ref name='NumberOptionalNumber.datatype'/>
  147.60 +      </attribute>
  147.61 +    </optional>
  147.62 +    <optional>
  147.63 +      <attribute name='preserveAlpha'>
  147.64 +        <ref name='Boolean.datatype'/>
  147.65 +      </attribute>
  147.66 +    </optional>
  147.67 +  </define>
   148.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.2 +++ b/filters/publish/rng/feDiffuseLighting	Mon Apr 11 10:08:48 2011 +1000
   148.3 @@ -0,0 +1,49 @@
   148.4 +  <define name='svg.feDiffuseLighting.content'>
   148.5 +    <choice>
   148.6 +      <ref name='feDistantLight'/>
   148.7 +      <ref name='fePointLight'/>
   148.8 +      <ref name='feSpotLight'/>
   148.9 +    </choice>
  148.10 +    <zeroOrMore>
  148.11 +      <choice>
  148.12 +        <ref name='animate'/>
  148.13 +        <ref name='set'/>
  148.14 +        <ref name='animateColor'/>
  148.15 +      </choice>
  148.16 +    </zeroOrMore>
  148.17 +  </define>
  148.18 +
  148.19 +  <define name='feDiffuseLighting'>
  148.20 +    <element name='feDiffuseLighting'>
  148.21 +      <ref name='attlist.feDiffuseLighting'/>
  148.22 +      <ref name='svg.feDiffuseLighting.content'/>
  148.23 +    </element>
  148.24 +  </define>
  148.25 +
  148.26 +  <define name='attlist.feDiffuseLighting' combine='interleave'>
  148.27 +    <ref name='svg.Core.attrib'/>
  148.28 +    <ref name='svg.Style.attrib'/>
  148.29 +    <ref name='svg.Color.attrib'/>
  148.30 +    <ref name='svg.FilterColor.attrib'/>
  148.31 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  148.32 +    <optional>
  148.33 +      <attribute name='lighting-color'>
  148.34 +        <ref name='SVGColor.datatype'/>
  148.35 +      </attribute>
  148.36 +    </optional>
  148.37 +    <optional>
  148.38 +      <attribute name='surfaceScale'>
  148.39 +        <ref name='Number.datatype'/>
  148.40 +      </attribute>
  148.41 +    </optional>
  148.42 +    <optional>
  148.43 +      <attribute name='diffuseConstant'>
  148.44 +        <ref name='Number.datatype'/>
  148.45 +      </attribute>
  148.46 +    </optional>
  148.47 +    <optional>
  148.48 +      <attribute name='kernelUnitLength'>
  148.49 +        <ref name='NumberOptionalNumber.datatype'/>
  148.50 +      </attribute>
  148.51 +    </optional>
  148.52 +  </define>
   149.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.2 +++ b/filters/publish/rng/feDisplacementMap	Mon Apr 11 10:08:48 2011 +1000
   149.3 @@ -0,0 +1,47 @@
   149.4 +  <define name='svg.feDisplacementMap.content'>
   149.5 +    <zeroOrMore>
   149.6 +      <choice>
   149.7 +        <ref name='animate'/>
   149.8 +        <ref name='set'/>
   149.9 +      </choice>
  149.10 +    </zeroOrMore>
  149.11 +  </define>
  149.12 +
  149.13 +  <define name='feDisplacementMap'>
  149.14 +    <element name='feDisplacementMap'>
  149.15 +      <ref name='attlist.feDisplacementMap'/>
  149.16 +      <ref name='svg.feDisplacementMap.content'/>
  149.17 +    </element>
  149.18 +  </define>
  149.19 +
  149.20 +  <define name='attlist.feDisplacementMap' combine='interleave'>
  149.21 +    <ref name='svg.Core.attrib'/>
  149.22 +    <ref name='svg.FilterColor.attrib'/>
  149.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  149.24 +    <attribute name='in2'/>
  149.25 +    <optional>
  149.26 +      <attribute name='scale'>
  149.27 +        <ref name='Number.datatype'/>
  149.28 +      </attribute>
  149.29 +    </optional>
  149.30 +    <optional>
  149.31 +      <attribute name='xChannelSelector' a:defaultValue='A'>
  149.32 +        <choice>
  149.33 +          <value>R</value>
  149.34 +          <value>G</value>
  149.35 +          <value>B</value>
  149.36 +          <value>A</value>
  149.37 +        </choice>
  149.38 +      </attribute>
  149.39 +    </optional>
  149.40 +    <optional>
  149.41 +      <attribute name='yChannelSelector' a:defaultValue='A'>
  149.42 +        <choice>
  149.43 +          <value>R</value>
  149.44 +          <value>G</value>
  149.45 +          <value>B</value>
  149.46 +          <value>A</value>
  149.47 +        </choice>
  149.48 +      </attribute>
  149.49 +    </optional>
  149.50 +  </define>
   150.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.2 +++ b/filters/publish/rng/feDistantLight	Mon Apr 11 10:08:48 2011 +1000
   150.3 @@ -0,0 +1,29 @@
   150.4 +  <define name='svg.feDistantLight.content'>
   150.5 +    <zeroOrMore>
   150.6 +      <choice>
   150.7 +        <ref name='animate'/>
   150.8 +        <ref name='set'/>
   150.9 +      </choice>
  150.10 +    </zeroOrMore>
  150.11 +  </define>
  150.12 +
  150.13 +  <define name='feDistantLight'>
  150.14 +    <element name='feDistantLight'>
  150.15 +      <ref name='feDistantLight.attr'/>
  150.16 +      <ref name='svg.feDistantLight.content'/>
  150.17 +    </element>
  150.18 +  </define>
  150.19 +
  150.20 +  <define name='feDistantLight.attr' combine='interleave'>
  150.21 +    <ref name='svg.Core.attr'/>
  150.22 +    <optional>
  150.23 +      <attribute name='azimuth'>
  150.24 +        <ref name='Number.datatype'/>
  150.25 +      </attribute>
  150.26 +    </optional>
  150.27 +    <optional>
  150.28 +      <attribute name='elevation'>
  150.29 +        <ref name='Number.datatype'/>
  150.30 +      </attribute>
  150.31 +    </optional>
  150.32 +  </define>
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/filters/publish/rng/feDropShadow	Mon Apr 11 10:08:48 2011 +1000
   151.3 @@ -0,0 +1,37 @@
   151.4 +  <define name='svg.feDropShadow.content'>
   151.5 +    <zeroOrMore>
   151.6 +      <choice>
   151.7 +        <ref name='animate'/>
   151.8 +        <ref name='set'/>
   151.9 +      </choice>
  151.10 +    </zeroOrMore>
  151.11 +  </define>
  151.12 +
  151.13 +  <define name='feDropShadow'>
  151.14 +    <element name='feDropShadow'>
  151.15 +      <ref name='attlist.feDropShadow'/>
  151.16 +      <ref name='svg.feDropShadow.content'/>
  151.17 +    </element>
  151.18 +  </define>
  151.19 +
  151.20 +  <define name='attlist.feDropShadow' combine='interleave'>
  151.21 +    <ref name='svg.Core.attrib'/>
  151.22 +    <ref name='svg.FilterColor.attrib'/>
  151.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  151.24 +	
  151.25 +	<optional>
  151.26 +      <attribute name='dx'>
  151.27 +        <ref name='Coordinate.datatype'/>
  151.28 +      </attribute>
  151.29 +    </optional>
  151.30 +    <optional>
  151.31 +      <attribute name='dy'>
  151.32 +        <ref name='Coordinate.datatype'/>
  151.33 +      </attribute>
  151.34 +    </optional>
  151.35 +    <optional>
  151.36 +      <attribute name='stdDeviation'>
  151.37 +        <ref name='NumberOptionalNumber.datatype'/>
  151.38 +      </attribute>
  151.39 +    </optional>
  151.40 +  </define>
   152.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.2 +++ b/filters/publish/rng/feFlood	Mon Apr 11 10:08:48 2011 +1000
   152.3 @@ -0,0 +1,34 @@
   152.4 +  <define name='svg.feFlood.content'>
   152.5 +    <zeroOrMore>
   152.6 +      <choice>
   152.7 +        <ref name='animate'/>
   152.8 +        <ref name='set'/>
   152.9 +        <ref name='animateColor'/>
  152.10 +      </choice>
  152.11 +    </zeroOrMore>
  152.12 +  </define>
  152.13 +
  152.14 +  <define name='feFlood'>
  152.15 +    <element name='feFlood'>
  152.16 +      <ref name='attlist.feFlood'/>
  152.17 +      <ref name='svg.feFlood.content'/>
  152.18 +    </element>
  152.19 +  </define>
  152.20 +
  152.21 +  <define name='attlist.feFlood' combine='interleave'>
  152.22 +    <ref name='svg.Core.attrib'/>
  152.23 +    <ref name='svg.Style.attrib'/>
  152.24 +    <ref name='svg.Color.attrib'/>
  152.25 +    <ref name='svg.FilterColor.attrib'/>
  152.26 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  152.27 +    <optional>
  152.28 +      <attribute name='flood-color'>
  152.29 +        <ref name='SVGColor.datatype'/>
  152.30 +      </attribute>
  152.31 +    </optional>
  152.32 +    <optional>
  152.33 +      <attribute name='flood-opacity'>
  152.34 +        <ref name='OpacityValue.datatype'/>
  152.35 +      </attribute>
  152.36 +    </optional>
  152.37 +  </define>
   153.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.2 +++ b/filters/publish/rng/feGaussianBlur	Mon Apr 11 10:08:48 2011 +1000
   153.3 @@ -0,0 +1,27 @@
   153.4 +  <define name='svg.feGaussianBlur.content'>
   153.5 +    <zeroOrMore>
   153.6 +      <choice>
   153.7 +        <ref name='animate'/>
   153.8 +        <ref name='set'/>
   153.9 +      </choice>
  153.10 +    </zeroOrMore>
  153.11 +  </define>
  153.12 +
  153.13 +  <define name='feGaussianBlur'>
  153.14 +    <element name='feGaussianBlur'>
  153.15 +      <ref name='attlist.feGaussianBlur'/>
  153.16 +      <ref name='svg.feGaussianBlur.content'/>
  153.17 +    </element>
  153.18 +  </define>
  153.19 +
  153.20 +  <define name='attlist.feGaussianBlur' combine='interleave'>
  153.21 +    <ref name='svg.Core.attrib'/>
  153.22 +    <ref name='svg.FilterColor.attrib'/>
  153.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  153.24 +    <optional>
  153.25 +      <attribute name='stdDeviation'>
  153.26 +        <ref name='NumberOptionalNumber.datatype'/>
  153.27 +      </attribute>
  153.28 +    </optional>
  153.29 +  </define>
  153.30 +  
  153.31 \ No newline at end of file
   154.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.2 +++ b/filters/publish/rng/feImage	Mon Apr 11 10:08:48 2011 +1000
   154.3 @@ -0,0 +1,32 @@
   154.4 +  <define name='SVG.feImage.content'>
   154.5 +    <zeroOrMore>
   154.6 +      <choice>
   154.7 +        <ref name='animate'/>
   154.8 +        <ref name='set'/>
   154.9 +        <ref name='animateTransform'/>
  154.10 +      </choice>
  154.11 +    </zeroOrMore>
  154.12 +  </define>
  154.13 +
  154.14 +  <define name='feImage'>
  154.15 +    <element name='feImage'>
  154.16 +      <ref name='attlist.feImage'/>
  154.17 +      <ref name='svg.feImage.content'/>
  154.18 +    </element>
  154.19 +  </define>
  154.20 +
  154.21 +  <define name='attlist.feImage' combine='interleave'>
  154.22 +    <ref name='svg.Core.attrib'/>
  154.23 +    <ref name='svg.Style.attrib'/>
  154.24 +    <ref name='svg.Presentation.attrib'/>
  154.25 +    <ref name='svg.FilterPrimitive.attrib'/>
  154.26 +    <ref name='svg.XLinkEmbed.attrib'/>
  154.27 +    <ref name='svg.External.attrib'/>
  154.28 +    <ref name='svg.Transition.attrib'/>
  154.29 +    <ref name='svg.ShadowInherit.attrib'/>
  154.30 +    <optional>
  154.31 +      <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'>
  154.32 +        <ref name='PreserveAspectRatioSpec.datatype'/>
  154.33 +      </attribute>
  154.34 +    </optional>
  154.35 +  </define>
   155.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.2 +++ b/filters/publish/rng/feMerge	Mon Apr 11 10:08:48 2011 +1000
   155.3 @@ -0,0 +1,41 @@
   155.4 +  <define name='svg.feMerge.content'>
   155.5 +    <zeroOrMore>
   155.6 +      <ref name='feMergeNode'/>
   155.7 +    </zeroOrMore>
   155.8 +  </define>
   155.9 +
  155.10 +  <define name='feMerge'>
  155.11 +    <element name='feMerge'>
  155.12 +      <ref name='attlist.feMerge'/>
  155.13 +      <ref name='svg.feMerge.content'/>
  155.14 +    </element>
  155.15 +  </define>
  155.16 +
  155.17 +  <define name='attlist.feMerge' combine='interleave'>
  155.18 +    <ref name='svg.Core.attrib'/>
  155.19 +    <ref name='svg.FilterColor.attrib'/>
  155.20 +    <ref name='svg.FilterPrimitive.attrib'/>
  155.21 +  </define>
  155.22 +
  155.23 +  <define name='svg.feMergeNode.content'>
  155.24 +    <zeroOrMore>
  155.25 +      <choice>
  155.26 +        <ref name='animate'/>
  155.27 +        <ref name='set'/>
  155.28 +      </choice>
  155.29 +    </zeroOrMore>
  155.30 +  </define>
  155.31 +
  155.32 +  <define name='feMergeNode'>
  155.33 +    <element name='feMergeNode'>
  155.34 +      <ref name='attlist.feMergeNode'/>
  155.35 +      <ref name='svg.feMergeNode.content'/>
  155.36 +    </element>
  155.37 +  </define>
  155.38 +
  155.39 +  <define name='attlist.feMergeNode' combine='interleave'>
  155.40 +    <ref name='svg.Core.attrib'/>
  155.41 +    <optional>
  155.42 +      <attribute name='in'/>
  155.43 +    </optional>
  155.44 +  </define>
   156.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   156.2 +++ b/filters/publish/rng/feMorphology	Mon Apr 11 10:08:48 2011 +1000
   156.3 @@ -0,0 +1,34 @@
   156.4 +  <define name='svg.feMorphology.content'>
   156.5 +    <zeroOrMore>
   156.6 +      <choice>
   156.7 +        <ref name='animate'/>
   156.8 +        <ref name='set'/>
   156.9 +      </choice>
  156.10 +    </zeroOrMore>
  156.11 +  </define>
  156.12 +
  156.13 +  <define name='feMorphology'>
  156.14 +    <element name='feMorphology'>
  156.15 +      <ref name='attlist.feMorphology'/>
  156.16 +      <ref name='svg.feMorphology.content'/>
  156.17 +    </element>
  156.18 +  </define>
  156.19 +
  156.20 +  <define name='attlist.feMorphology' combine='interleave'>
  156.21 +    <ref name='svg.Core.attrib'/>
  156.22 +    <ref name='svg.FilterColor.attrib'/>
  156.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  156.24 +    <optional>
  156.25 +      <attribute name='operator' a:defaultValue='erode'>
  156.26 +        <choice>
  156.27 +          <value>erode</value>
  156.28 +          <value>dilate</value>
  156.29 +        </choice>
  156.30 +      </attribute>
  156.31 +    </optional>
  156.32 +    <optional>
  156.33 +      <attribute name='radius'>
  156.34 +        <ref name='NumberOptionalNumber.datatype'/>
  156.35 +      </attribute>
  156.36 +    </optional>
  156.37 +  </define>
   157.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   157.2 +++ b/filters/publish/rng/feOffset	Mon Apr 11 10:08:48 2011 +1000
   157.3 @@ -0,0 +1,21 @@
   157.4 +  <define name='svg.feOffset.content'>
   157.5 +    <zeroOrMore>
   157.6 +      <choice>
   157.7 +        <ref name='animate'/>
   157.8 +        <ref name='set'/>
   157.9 +      </choice>
  157.10 +    </zeroOrMore>
  157.11 +  </define>
  157.12 +
  157.13 +  <define name='feOffset'>
  157.14 +    <element name='feOffset'>
  157.15 +      <ref name='attlist.feOffset'/>
  157.16 +      <ref name='svg.feOffset.content'/>
  157.17 +    </element>
  157.18 +  </define>
  157.19 +
  157.20 +  <define name='attlist.feOffset' combine='interleave'>
  157.21 +    <ref name='svg.Core.attrib'/>
  157.22 +    <ref name='svg.FilterColor.attrib'/>
  157.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  157.24 +  </define>
   158.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   158.2 +++ b/filters/publish/rng/fePointLight	Mon Apr 11 10:08:48 2011 +1000
   158.3 @@ -0,0 +1,34 @@
   158.4 +  <define name='svg.fePointLight.content'>
   158.5 +    <zeroOrMore>
   158.6 +      <choice>
   158.7 +        <ref name='animate'/>
   158.8 +        <ref name='set'/>
   158.9 +      </choice>
  158.10 +    </zeroOrMore>
  158.11 +  </define>
  158.12 +
  158.13 +  <define name='fePointLight'>
  158.14 +    <element name='fePointLight'>
  158.15 +      <ref name='fePointLight.attr'/>
  158.16 +      <ref name='svg.fePointLight.content'/>
  158.17 +    </element>
  158.18 +  </define>
  158.19 +
  158.20 +  <define name='fePointLight.attr' combine='interleave'>
  158.21 +    <ref name='svg.Core.attr'/>
  158.22 +    <optional>
  158.23 +      <attribute name='x'>
  158.24 +        <ref name='Number.datatype'/>
  158.25 +      </attribute>
  158.26 +    </optional>
  158.27 +    <optional>
  158.28 +      <attribute name='y'>
  158.29 +        <ref name='Number.datatype'/>
  158.30 +      </attribute>
  158.31 +    </optional>
  158.32 +    <optional>
  158.33 +      <attribute name='z'>
  158.34 +        <ref name='Number.datatype'/>
  158.35 +      </attribute>
  158.36 +    </optional>
  158.37 +  </define>
   159.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.2 +++ b/filters/publish/rng/feSpecularLighting	Mon Apr 11 10:08:48 2011 +1000
   159.3 @@ -0,0 +1,54 @@
   159.4 +  <define name='svg.feSpecularLighting.content'>
   159.5 +    <choice>
   159.6 +      <ref name='feDistantLight'/>
   159.7 +      <ref name='fePointLight'/>
   159.8 +      <ref name='feSpotLight'/>
   159.9 +    </choice>
  159.10 +    <zeroOrMore>
  159.11 +      <choice>
  159.12 +        <ref name='animate'/>
  159.13 +        <ref name='set'/>
  159.14 +        <ref name='animateColor'/>
  159.15 +      </choice>
  159.16 +    </zeroOrMore>
  159.17 +  </define>
  159.18 +
  159.19 +  <define name='feSpecularLighting'>
  159.20 +    <element name='feSpecularLighting'>
  159.21 +      <ref name='attlist.feSpecularLighting'/>
  159.22 +      <ref name='svg.feSpecularLighting.content'/>
  159.23 +    </element>
  159.24 +  </define>
  159.25 +
  159.26 +  <define name='attlist.feSpecularLighting' combine='interleave'>
  159.27 +    <ref name='svg.Core.attrib'/>
  159.28 +    <ref name='svg.Style.attrib'/>
  159.29 +    <ref name='svg.Color.attrib'/>
  159.30 +    <ref name='svg.FilterColor.attrib'/>
  159.31 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  159.32 +    <optional>
  159.33 +      <attribute name='lighting-color'>
  159.34 +        <ref name='SVGColor.datatype'/>
  159.35 +      </attribute>
  159.36 +    </optional>
  159.37 +    <optional>
  159.38 +      <attribute name='surfaceScale'>
  159.39 +        <ref name='Number.datatype'/>
  159.40 +      </attribute>
  159.41 +    </optional>
  159.42 +    <optional>
  159.43 +      <attribute name='specularConstant'>
  159.44 +        <ref name='Number.datatype'/>
  159.45 +      </attribute>
  159.46 +    </optional>
  159.47 +    <optional>
  159.48 +      <attribute name='specularExponent'>
  159.49 +        <ref name='Number.datatype'/>
  159.50 +      </attribute>
  159.51 +    </optional>
  159.52 +    <optional>
  159.53 +      <attribute name='kernelUnitLength'>
  159.54 +        <ref name='NumberOptionalNumber.datatype'/>
  159.55 +      </attribute>
  159.56 +    </optional>
  159.57 +  </define>
   160.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.2 +++ b/filters/publish/rng/feSpotLight	Mon Apr 11 10:08:48 2011 +1000
   160.3 @@ -0,0 +1,59 @@
   160.4 +<define name='svg.feSpotLight.content'>
   160.5 +    <zeroOrMore>
   160.6 +      <choice>
   160.7 +        <ref name='animate'/>
   160.8 +        <ref name='set'/>
   160.9 +      </choice>
  160.10 +    </zeroOrMore>
  160.11 +  </define>
  160.12 +
  160.13 +  <define name='feSpotLight'>
  160.14 +    <element name='feSpotLight'>
  160.15 +      <ref name='feSpotLight.attr'/>
  160.16 +      <ref name='svg.feSpotLight.content'/>
  160.17 +    </element>
  160.18 +  </define>
  160.19 +  
  160.20 +  <define name='feSpotLight.attr' combine='interleave'>
  160.21 +    <ref name='svg.Core.attr'/>
  160.22 +    <optional>
  160.23 +      <attribute name='x'>
  160.24 +        <ref name='Number.datatype'/>
  160.25 +      </attribute>
  160.26 +    </optional>
  160.27 +    <optional>
  160.28 +      <attribute name='y'>
  160.29 +        <ref name='Number.datatype'/>
  160.30 +      </attribute>
  160.31 +    </optional>
  160.32 +    <optional>
  160.33 +      <attribute name='z'>
  160.34 +        <ref name='Number.datatype'/>
  160.35 +      </attribute>
  160.36 +    </optional>
  160.37 +    <optional>
  160.38 +      <attribute name='pointsAtX'>
  160.39 +        <ref name='Number.datatype'/>
  160.40 +      </attribute>
  160.41 +    </optional>
  160.42 +    <optional>
  160.43 +      <attribute name='pointsAtY'>
  160.44 +        <ref name='Number.datatype'/>
  160.45 +      </attribute>
  160.46 +    </optional>
  160.47 +    <optional>
  160.48 +      <attribute name='pointsAtZ'>
  160.49 +        <ref name='Number.datatype'/>
  160.50 +      </attribute>
  160.51 +    </optional>
  160.52 +    <optional>
  160.53 +      <attribute name='specularExponent'>
  160.54 +        <ref name='Number.datatype'/>
  160.55 +      </attribute>
  160.56 +    </optional>
  160.57 +    <optional>
  160.58 +      <attribute name='limitingConeAngle'>
  160.59 +        <ref name='Number.datatype'/>
  160.60 +      </attribute>
  160.61 +    </optional>
  160.62 +  </define>
   161.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.2 +++ b/filters/publish/rng/feTile	Mon Apr 11 10:08:48 2011 +1000
   161.3 @@ -0,0 +1,21 @@
   161.4 +  <define name='svg.feTile.content'>
   161.5 +    <zeroOrMore>
   161.6 +      <choice>
   161.7 +        <ref name='animate'/>
   161.8 +        <ref name='set'/>
   161.9 +      </choice>
  161.10 +    </zeroOrMore>
  161.11 +  </define>
  161.12 +
  161.13 +  <define name='feTile'>
  161.14 +    <element name='feTile'>
  161.15 +      <ref name='attlist.feTile'/>
  161.16 +      <ref name='svg.feTile.content'/>
  161.17 +    </element>
  161.18 +  </define>
  161.19 +
  161.20 +  <define name='attlist.feTile' combine='interleave'>
  161.21 +    <ref name='svg.Core.attrib'/>
  161.22 +    <ref name='svg.FilterColor.attrib'/>
  161.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  161.24 +  </define>
   162.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.2 +++ b/filters/publish/rng/feTurbulence	Mon Apr 11 10:08:48 2011 +1000
   162.3 @@ -0,0 +1,52 @@
   162.4 +  <define name='svg.feTurbulence.content'>
   162.5 +    <zeroOrMore>
   162.6 +      <choice>
   162.7 +        <ref name='animate'/>
   162.8 +        <ref name='set'/>
   162.9 +      </choice>
  162.10 +    </zeroOrMore>
  162.11 +  </define>
  162.12 +
  162.13 +  <define name='feTurbulence'>
  162.14 +    <element name='feTurbulence'>
  162.15 +      <ref name='attlist.feTurbulence'/>
  162.16 +      <ref name='svg.feTurbulence.content'/>
  162.17 +    </element>
  162.18 +  </define>
  162.19 +
  162.20 +  <define name='attlist.feTurbulence' combine='interleave'>
  162.21 +    <ref name='svg.Core.attrib'/>
  162.22 +    <ref name='svg.FilterColor.attrib'/>
  162.23 +    <ref name='svg.FilterPrimitive.attrib'/>
  162.24 +    <optional>
  162.25 +      <attribute name='baseFrequency'>
  162.26 +        <ref name='NumberOptionalNumber.datatype'/>
  162.27 +      </attribute>
  162.28 +    </optional>
  162.29 +    <optional>
  162.30 +      <attribute name='numOctaves'>
  162.31 +        <ref name='Integer.datatype'/>
  162.32 +      </attribute>
  162.33 +    </optional>
  162.34 +    <optional>
  162.35 +      <attribute name='seed'>
  162.36 +        <ref name='Number.datatype'/>
  162.37 +      </attribute>
  162.38 +    </optional>
  162.39 +    <optional>
  162.40 +      <attribute name='stitchTiles' a:defaultValue='noStitch'>
  162.41 +        <choice>
  162.42 +          <value>stitch</value>
  162.43 +          <value>noStitch</value>
  162.44 +        </choice>
  162.45 +      </attribute>
  162.46 +    </optional>
  162.47 +    <optional>
  162.48 +      <attribute name='type' a:defaultValue='turbulence'>
  162.49 +        <choice>
  162.50 +          <value>fractalNoise</value>
  162.51 +          <value>turbulence</value>
  162.52 +        </choice>
  162.53 +      </attribute>
  162.54 +    </optional>
  162.55 +  </define>
   163.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   163.2 +++ b/filters/publish/rng/feUnsharpMask	Mon Apr 11 10:08:48 2011 +1000
   163.3 @@ -0,0 +1,33 @@
   163.4 +  <define name='svg.feUnsharpMask.content'>
   163.5 +    <zeroOrMore>
   163.6 +      <choice>
   163.7 +        <ref name='animate'/>
   163.8 +        <ref name='set'/>
   163.9 +      </choice>
  163.10 +    </zeroOrMore>
  163.11 +  </define>
  163.12 +
  163.13 +  <define name='feUnsharpMask'>
  163.14 +    <element name='feUnsharpMask'>
  163.15 +      <ref name='attlist.feUnsharpMask'/>
  163.16 +      <ref name='svg.feUnsharpMask.content'/>
  163.17 +    </element>
  163.18 +  </define>
  163.19 +
  163.20 +  <define name='attlist.feUnsharpMask' combine='interleave'>
  163.21 +    <ref name='svg.Core.attrib'/>
  163.22 +    <ref name='svg.FilterColor.attrib'/>
  163.23 +    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  163.24 +    <optional>
  163.25 +      <attribute name='amount'>
  163.26 +        <ref name='Number.datatype'/>
  163.27 +      </attribute>
  163.28 +      <attribute name='radius'>
  163.29 +        <ref name='NumberOptionalNumber.datatype'/>
  163.30 +      </attribute>
  163.31 +      <attribute name='threshold'>
  163.32 +        <ref name='Number.datatype'/>
  163.33 +      </attribute>
  163.34 +    </optional>
  163.35 +  </define>
  163.36 +  
   164.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.2 +++ b/filters/publish/rng/filter	Mon Apr 11 10:08:48 2011 +1000
   164.3 @@ -0,0 +1,91 @@
   164.4 +  <define name='filter'>
   164.5 +    <element name='filter'>
   164.6 +      <ref name='filter.AT'/>
   164.7 +      <ref name='svg.filter.content'/>
   164.8 +    </element>
   164.9 +  </define>
  164.10 +
  164.11 +  <define name='filter.AT' combine='interleave'>
  164.12 +    <ref name='svg.Core.attr'/>
  164.13 +    <ref name='svg.Style.attr'/>
  164.14 +    <ref name='svg.Presentation.attrib'/>
  164.15 +    <ref name='svg.XLink.attrib'/>
  164.16 +    <ref name='svg.External.attrib'/>
  164.17 +    <optional>
  164.18 +      <attribute name='x'>
  164.19 +        <ref name='Coordinate.datatype'/>
  164.20 +      </attribute>
  164.21 +    </optional>
  164.22 +    <optional>
  164.23 +      <attribute name='y'>
  164.24 +        <ref name='Coordinate.datatype'/>
  164.25 +      </attribute>
  164.26 +    </optional>
  164.27 +    <optional>
  164.28 +      <attribute name='width'>
  164.29 +        <ref name='Length.datatype'/>
  164.30 +      </attribute>
  164.31 +    </optional>
  164.32 +    <optional>
  164.33 +      <attribute name='height'>
  164.34 +        <ref name='Length.datatype'/>
  164.35 +      </attribute>
  164.36 +    </optional>
  164.37 +    <optional>
  164.38 +      <attribute name='mx'>
  164.39 +        <ref name='Coordinate.datatype'/>
  164.40 +      </attribute>
  164.41 +    </optional>
  164.42 +    <optional>
  164.43 +      <attribute name='my'>
  164.44 +        <ref name='Coordinate.datatype'/>
  164.45 +      </attribute>
  164.46 +    </optional>
  164.47 +    <optional>
  164.48 +      <attribute name='mw'>
  164.49 +        <ref name='Length.datatype'/>
  164.50 +      </attribute>
  164.51 +    </optional>
  164.52 +    <optional>
  164.53 +      <attribute name='mh'>
  164.54 +        <ref name='Length.datatype'/>
  164.55 +      </attribute>
  164.56 +    </optional>
  164.57 +    <optional>
  164.58 +      <attribute name='filterRes'>
  164.59 +        <ref name='NumberOptionalNumber.datatype'/>
  164.60 +      </attribute>
  164.61 +    </optional>
  164.62 +    <optional>
  164.63 +      <attribute name='filterUnits'>
  164.64 +        <choice>
  164.65 +          <value>userSpaceOnUse</value>
  164.66 +          <value>objectBoundingBox</value>
  164.67 +        </choice>
  164.68 +      </attribute>
  164.69 +    </optional>
  164.70 +    <optional>
  164.71 +      <attribute name='primitiveUnits'>
  164.72 +        <choice>
  164.73 +          <value>userSpaceOnUse</value>
  164.74 +          <value>objectBoundingBox</value>
  164.75 +        </choice>
  164.76 +      </attribute>
  164.77 +    </optional>
  164.78 +    <optional>
  164.79 +      <attribute name='filterMarginsUnits'>
  164.80 +        <choice>
  164.81 +          <value>userSpaceOnUse</value>
  164.82 +          <value>objectBoundingBox</value>
  164.83 +        </choice>
  164.84 +      </attribute>
  164.85 +    </optional>	
  164.86 +    <optional>
  164.87 +      <attribute name='primitiveMarginsUnits'>
  164.88 +        <choice>
  164.89 +          <value>userSpaceOnUse</value>
  164.90 +          <value>objectBoundingBox</value>
  164.91 +        </choice>
  164.92 +      </attribute>
  164.93 +    </optional>	
  164.94 +  </define>
   165.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.2 +++ b/filters/publish/rng/filter-primitive-attr	Mon Apr 11 10:08:48 2011 +1000
   165.3 @@ -0,0 +1,52 @@
   165.4 +  <define name='svg.FilterPrimitive.attrib'>
   165.5 +    <optional>
   165.6 +      <attribute name='x'>
   165.7 +        <ref name='Coordinate.datatype'/>
   165.8 +      </attribute>
   165.9 +    </optional>
  165.10 +    <optional>
  165.11 +      <attribute name='y'>
  165.12 +        <ref name='Coordinate.datatype'/>
  165.13 +      </attribute>
  165.14 +    </optional>
  165.15 +    <optional>
  165.16 +      <attribute name='width'>
  165.17 +        <ref name='Length.datatype'/>
  165.18 +      </attribute>
  165.19 +    </optional>
  165.20 +    <optional>
  165.21 +      <attribute name='height'>
  165.22 +        <ref name='Length.datatype'/>
  165.23 +      </attribute>
  165.24 +    </optional>
  165.25 +    <optional>
  165.26 +      <attribute name='mx'>
  165.27 +        <ref name='Coordinate.datatype'/>
  165.28 +      </attribute>
  165.29 +    </optional>
  165.30 +    <optional>
  165.31 +      <attribute name='my'>
  165.32 +        <ref name='Coordinate.datatype'/>
  165.33 +      </attribute>
  165.34 +    </optional>
  165.35 +    <optional>
  165.36 +      <attribute name='mw'>
  165.37 +        <ref name='Length.datatype'/>
  165.38 +      </attribute>
  165.39 +    </optional>
  165.40 +    <optional>
  165.41 +      <attribute name='mh'>
  165.42 +        <ref name='Length.datatype'/>
  165.43 +      </attribute>
  165.44 +    </optional>
  165.45 +    <optional>
  165.46 +      <attribute name='result'/>
  165.47 +    </optional>
  165.48 +  </define>
  165.49 +  
  165.50 +  <define name='svg.FilterPrimitiveWithIn.attrib'>
  165.51 +    <ref name='svg.FilterPrimitive.attrib'/>
  165.52 +    <optional>
  165.53 +      <attribute name='in'/>
  165.54 +    </optional>
  165.55 +  </define>
   166.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.2 +++ b/filters/publish/style/W3C-WD.css	Mon Apr 11 10:08:48 2011 +1000
   166.3 @@ -0,0 +1,89 @@
   166.4 +
   166.5 +/* Style for a public "Working Draft" */
   166.6 +
   166.7 +/*
   166.8 +   Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
   166.9 +   The following software licensing rules apply:
  166.10 +   http://www.w3.org/Consortium/Legal/copyright-software */
  166.11 +
  166.12 +/* $Id$ */
  166.13 +
  166.14 +
  166.15 +body {
  166.16 +  padding: 2em 1em 2em 70px;
  166.17 +  margin: 0;
  166.18 +  font-family: sans-serif;
  166.19 +  color: black;
  166.20 +  background: white;
  166.21 +  background-position: top left;
  166.22 +  background-attachment: fixed;
  166.23 +  background-repeat: no-repeat;
  166.24 +}
  166.25 +:link { color: #00C; background: transparent }
  166.26 +:visited { color: #609; background: transparent }
  166.27 +a:active { color: #C00; background: transparent }
  166.28 +
  166.29 +a:link img, a:visited img { border-style: none } /* no border on img links */
  166.30 +
  166.31 +a img { color: white; }        /* trick to hide the border in Netscape 4 */
  166.32 +@media all {                   /* hide the next rule from Netscape 4 */
  166.33 +  a img { color: inherit; }    /* undo the color change above */
  166.34 +}
  166.35 +
  166.36 +th, td { /* ns 4 */
  166.37 +  font-family: sans-serif;
  166.38 +}
  166.39 +
  166.40 +h1, h2, h3, h4, h5, h6 { text-align: left }
  166.41 +/* background should be transparent, but WebTV has a bug */
  166.42 +h1, h2, h3 { color: #005A9C; background: white }
  166.43 +h1 { font: 170% sans-serif }
  166.44 +h2 { font: 140% sans-serif }
  166.45 +h3 { font: 120% sans-serif }
  166.46 +h4 { font: bold 100% sans-serif }
  166.47 +h5 { font: italic 100% sans-serif }
  166.48 +h6 { font: small-caps 100% sans-serif }
  166.49 +
  166.50 +.hide { display: none }
  166.51 +
  166.52 +div.head { margin-bottom: 1em }
  166.53 +div.head h1 { margin-top: 2em; clear: both }
  166.54 +div.head table { margin-left: 2em; margin-top: 2em }
  166.55 +
  166.56 +p.copyright { font-size: small }
  166.57 +p.copyright small { font-size: small }
  166.58 +
  166.59 +@media screen {  /* hide from IE3 */
  166.60 +a[href]:hover { background: #ffa }
  166.61 +}
  166.62 +
  166.63 +pre { margin-left: 2em }
  166.64 +/*
  166.65 +p {
  166.66 +  margin-top: 0.6em;
  166.67 +  margin-bottom: 0.6em;
  166.68 +}
  166.69 +*/
  166.70 +dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  166.71 +dt { font-weight: bold }
  166.72 +
  166.73 +pre, code { font-family: monospace } /* navigator 4 requires this */
  166.74 +
  166.75 +ul.toc {
  166.76 +  list-style: disc;		/* Mac NS has problem with 'none' */
  166.77 +  list-style: none;
  166.78 +}
  166.79 +
  166.80 +@media aural {  
  166.81 +  h1, h2, h3 { stress: 20; richness: 90 }
  166.82 +  .hide { speak: none }
  166.83 +  p.copyright { volume: x-soft; speech-rate: x-fast }
  166.84 +  dt { pause-before: 20% }
  166.85 +  pre { speak-punctuation: code } 
  166.86 +}
  166.87 +
  166.88 +
  166.89 +
  166.90 +body {
  166.91 +  background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD);
  166.92 +}
   167.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   167.2 +++ b/filters/publish/style/expanders.js	Mon Apr 11 10:08:48 2011 +1000
   167.3 @@ -0,0 +1,32 @@
   167.4 +function expand(e) {
   167.5 +  e = e.parentNode;
   167.6 +  e.parentNode.removeAttribute('class');
   167.7 +  e.style.display = "none";
   167.8 +  e.nextSibling.style.display = "inline";
   167.9 +}
  167.10 +
  167.11 +(function() {
  167.12 +  var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span');
  167.13 +  for (i = 0; i != l.length; i++) {
  167.14 +    e0 = l[i];
  167.15 +    if (e0.getAttribute('class') == 'expanding') {
  167.16 +      a.push(e0);
  167.17 +    }
  167.18 +  }
  167.19 +  for (i = 0; i != a.length; i++) {
  167.20 +    e0 = a[i];
  167.21 +    e1 = document.createElement('span');
  167.22 +    e1.setAttribute('class', 'expander');
  167.23 +    e1.setAttribute('onclick', 'expand(event.target)');
  167.24 +    e1p = document.createElement('span');
  167.25 +    e1p.textContent = ' ';
  167.26 +    e1p.appendChild(e1);
  167.27 +    e2 = document.createElement('span');
  167.28 +    e2.style.display = 'none';
  167.29 +    while (e0.firstChild) {
  167.30 +      e2.appendChild(e0.firstChild);
  167.31 +    }
  167.32 +    e0.appendChild(e1p);
  167.33 +    e0.appendChild(e2);
  167.34 +  }
  167.35 +})();
   168.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.2 +++ b/filters/publish/style/svg-style-extra.css	Mon Apr 11 10:08:48 2011 +1000
   168.3 @@ -0,0 +1,179 @@
   168.4 +body { line-height: 1.3; }
   168.5 +
   168.6 +.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em }
   168.7 +.element-summary-name { float: right; font-size: 110% }
   168.8 +.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; }
   168.9 +.element-summary * + dt { margin-top: 0.5em; }
  168.10 +.element-summary dd { margin-top: 0; }
  168.11 +.element-summary ul.no-bullets { list-style: none; padding-left: 0em }
  168.12 +.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; }
  168.13 +.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% }
  168.14 +.expander { }
  168.15 +.expander:active { color: #C00 }
  168.16 +.expander:hover { background: #ffa }
  168.17 +.expander:after { content: 'show »' }
  168.18 +
  168.19 +.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% }
  168.20 +
  168.21 +pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ }
  168.22 +pre.idl a:link, pre.idl a:visited { color: black; }
  168.23 +
  168.24 +dl.interface dt {
  168.25 +  margin-top: 1em;
  168.26 +}
  168.27 +
  168.28 +dl.interface dl.attributes > dt,
  168.29 +dl.interface dl.constants > dt,
  168.30 +dl.interface dl.operations > dt {
  168.31 +  margin-top: 2em;
  168.32 +}
  168.33 +
  168.34 +dl.interface dl.attributes > dt,
  168.35 +dl.interface dl.constants > dt,
  168.36 +dl.interface dl.operations > dt,
  168.37 +dl.interface ol.parameters > li,
  168.38 +dl.interface dl.exceptions > dt {
  168.39 +  font-weight: normal;
  168.40 +  display: list-item;
  168.41 +}
  168.42 +
  168.43 +dl.interface dl.attributes > dt:first-child,
  168.44 +dl.interface dl.constants > dt:first-child,
  168.45 +dl.interface dl.operations > dt:first-child,
  168.46 +dl.interface ol.parameters > li:first-child,
  168.47 +dl.interface dl.exceptions > dt:first-child {
  168.48 +  margin-top: 0;
  168.49 +}
  168.50 +
  168.51 +dl.interface dl.attributes > dd,
  168.52 +dl.interface dl.constants > dd,
  168.53 +dl.interface dl.operations > dd,
  168.54 +dl.interface ol.parameters > li,
  168.55 +dl.interface dl.exceptions > dd {
  168.56 +  margin-top: 0.5em;
  168.57 +  margin-left: 0;
  168.58 +}
  168.59 +
  168.60 +dl.interface dl.attribute {
  168.61 +  /*margin-left: 2em;*/
  168.62 +}
  168.63 +
  168.64 +dl.interface dd > *:first-child,
  168.65 +dl.interface ol.parameters > li,
  168.66 +dl.interface ol.parameters > li > *:first-child + * {
  168.67 +  margin-top: 0;
  168.68 +}
  168.69 +
  168.70 +ol.parameters > li > .parameter {
  168.71 +  float: left;
  168.72 +}
  168.73 +
  168.74 +ol.parameters > li > .parameter::after {
  168.75 +  content: " — ";
  168.76 +}
  168.77 +
  168.78 +.idl .keyword {
  168.79 +  /*font-weight: bold;*/
  168.80 +}
  168.81 +
  168.82 +.idlattr, .idlattr:link, .idlattr:visited {
  168.83 +  background: #d9e8ff;
  168.84 +  color: black;
  168.85 +}
  168.86 +
  168.87 +ol.parameters {
  168.88 +  list-style-type: disc;
  168.89 +  padding-left: 0;
  168.90 +}
  168.91 +
  168.92 +var {
  168.93 +  font-style: italic;
  168.94 +}
  168.95 +
  168.96 +dl.definitions > dt,
  168.97 +.adef-list dl > dt { margin-top: 1em; }
  168.98 +
  168.99 +dl.definitions > dt + dt,
 168.100 +.adef-list dl > dt + dt { margin-top: 0; }
 168.101 +
 168.102 +dl.definitions > dd > :first-child,
 168.103 +.adef-list dl > dd > :first-child { margin-top: 0; }
 168.104 +
 168.105 +table.vert {
 168.106 +  border-collapse: collapse;
 168.107 +  border-top: 2px solid #005a9c;
 168.108 +  border-bottom: 2px solid #005a9c;
 168.109 +  margin-top: 1em;
 168.110 +  margin-bottom: 1em;
 168.111 +  margin-left: auto;
 168.112 +  margin-right: auto;
 168.113 +}
 168.114 +table.vert td {
 168.115 +  background: #f0f6ff;
 168.116 +}
 168.117 +table.vert th {
 168.118 +  text-align: left;
 168.119 +  vertical-align: bottom;
 168.120 +  border-bottom: 2px solid #005a9c;
 168.121 +  white-space: nowrap;
 168.122 +  color: #d9e8ff;
 168.123 +  background: #005a9c;
 168.124 +}
 168.125 +table.vert th a:link,
 168.126 +table.vert th a:visited { color: #d9e8ff; }
 168.127 +table.vert th a:hover { color: black; }
 168.128 +table.vert th, table.vert td { padding: 0.5em 0.75em; }
 168.129 +table.vert th .attr-name { color: white }
 168.130 +table.vert th a:hover .element-name { color: #2A2AA5 }
 168.131 +table.vert th .prop-name { color: white }
 168.132 +table.vert th a:hover .element-name { color: black }
 168.133 +table.vert th .element-name { color: white }
 168.134 +table.vert th a:hover .element-name { color: #A52A2A }
 168.135 +table.vert td { vertical-align: top; }
 168.136 +table.offset { margin-left: 2em; margin-right: 2em; }
 168.137 +.indented {
 168.138 +  margin-left: 2em;
 168.139 +}
 168.140 +.math var, .math sub, .math sup {
 168.141 +  font-family: serif;
 168.142 +}
 168.143 +.separated {
 168.144 +  word-spacing: 1em;
 168.145 +}
 168.146 +.familyname {
 168.147 +  text-transform: uppercase;
 168.148 +}
 168.149 +
 168.150 +dl.unemphasized-names > dt > a { font-weight: normal }
 168.151 +
 168.152 +.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right }
 168.153 +.header.top { border-top: 1px solid #ccc }
 168.154 +.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em }
 168.155 +.header .namedate { display: block; float: left }
 168.156 +.header ul { display: block; margin: 0 }
 168.157 +.header ul li { display: inline; margin: 0 }
 168.158 +.header ul li:first-child::before { content: none }
 168.159 +.header ul li::before { content: ' â‹… ' }
 168.160 +.header .after { display: block; clear: both; height: 1px }
 168.161 +.header .after::before { content: ' ' }
 168.162 +
 168.163 +table.property-table { font-size: 90%; border-collapse: collapse }
 168.164 +table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) }
 168.165 +.tocline1 { font-weight: bold }
 168.166 +/* .toc { margin-bottom: 0.5em } */
 168.167 +
 168.168 +.idl-type-parenthetical { font-size: 90% }
 168.169 +td > :first-child,
 168.170 +th > :first-child { margin-top: 0 }
 168.171 +td p {
 168.172 +  margin-top: 1em;
 168.173 +  margin-bottom: 0;
 168.174 +}
 168.175 +
 168.176 +table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em }
 168.177 +table.collection th { background: #eee }
 168.178 +table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline }
 168.179 +
 168.180 +ol.notes { list-style-type: none; padding-left: 0 }
 168.181 +
 168.182 +.colorpatch { width: 14px; height:14px; border: 1px solid black; }
   169.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.2 +++ b/filters/publish/style/svg-style.css	Mon Apr 11 10:08:48 2011 +1000
   169.3 @@ -0,0 +1,454 @@
   169.4 +/*
   169.5 + * style sheet for svg specification
   169.6 + */
   169.7 +
   169.8 +
   169.9 +body {
  169.10 +    color: black;
  169.11 +    /* text-align: justify; */
  169.12 +    font-family: helvetica, sans-serif;
  169.13 +    background: white;
  169.14 +    margin: 2em;
  169.15 +    /* for the rec: background: #def url(recbg.jpg); */
  169.16 +}
  169.17 +.navlinks {
  169.18 +    text-align: center;
  169.19 +}
  169.20 +h2, h3, h4, h5, h6 {
  169.21 +    text-align: left;
  169.22 +}
  169.23 +
  169.24 +.header {
  169.25 +  text-align: right;
  169.26 +  border-bottom: 1px solid #aaa;
  169.27 +  padding-bottom: 0.5em;
  169.28 +  font-size: 80%;
  169.29 +}
  169.30 +
  169.31 +.footer {
  169.32 +  text-align: right;
  169.33 +  margin-top: 1em;
  169.34 +  border-top: 1px solid #aaa;
  169.35 +  padding-top: 0.5em;
  169.36 +  font-size: 80%;
  169.37 +}
  169.38 +
  169.39 +.header ul, .footer ul {
  169.40 +  display: inline;
  169.41 +  padding: 0;
  169.42 +}
  169.43 +
  169.44 +.header li, .footer li {
  169.45 +  display: inline;
  169.46 +  border-left: 1px solid #aaa;
  169.47 +  padding-left: 0.2em;
  169.48 +}
  169.49 +
  169.50 +h1 {
  169.51 +    clear: left;
  169.52 +    margin-top: 1em;
  169.53 +    text-align: center;
  169.54 +}
  169.55 +
  169.56 +pre { margin-left: 2em }
  169.57 +pre {
  169.58 +    color: #a52a2a;
  169.59 +    font-family: monospace;
  169.60 +    font-size: 90%
  169.61 +}
  169.62 +pre.svgsamplecompressed {
  169.63 +    font-size: 75%;
  169.64 +    letter-spacing: -.05em;
  169.65 +    line-height: 95%
  169.66 +}
  169.67 +pre strong {
  169.68 +    color: #004400;
  169.69 +    font-weight: bold
  169.70 +}
  169.71 +.filterformula {
  169.72 +    color: #a52a2a;
  169.73 +    font-family: monospace;
  169.74 +    font-size: 90%;
  169.75 +    margin-left: 2em
  169.76 +}
  169.77 +
  169.78 +div.dtd-fragment { 
  169.79 +    background-color: #dddddd;
  169.80 +    margin-left: 0;
  169.81 +}
  169.82 +.dtd-fragment { 
  169.83 +    background-color: #dddddd;
  169.84 +    margin-left: 0;
  169.85 +}
  169.86 +.idl-code { 
  169.87 +  margin: 0;
  169.88 +  font-family: monospace;
  169.89 +	border: 1px solid black;
  169.90 +	white-space: pre;
  169.91 +	color: black; 
  169.92 +	background-color: #dfdfdf;
  169.93 +}
  169.94 +
  169.95 +.adef {
  169.96 +    font-family: monospace;
  169.97 +	font-weight: bold;
  169.98 +}
  169.99 +
 169.100 +
 169.101 +address {
 169.102 +    text-align: right;
 169.103 +    font-style: italic;
 169.104 +}
 169.105 +
 169.106 +var {
 169.107 +    font-style: normal;
 169.108 +}
 169.109 +img {
 169.110 +    border: 0;
 169.111 +}
 169.112 +.toc {
 169.113 +    text-indent: 0;
 169.114 +}
 169.115 +.toc2 {
 169.116 +    text-indent: 2em;
 169.117 +}
 169.118 +.toc3 {
 169.119 +    text-indent: 4em;
 169.120 +}
 169.121 +p.toc-line {
 169.122 +    margin-top: 1em;
 169.123 +    margin-bottom: 1em;
 169.124 +    text-indent: 0;
 169.125 +}
 169.126 +
 169.127 +/* it should be 'inherit', but netscape inserts a random color :-( */
 169.128 +a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/}
 169.129 +div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/}
 169.130 +div.deprecated-html-example a:link,
 169.131 +div.deprecated-html-example a:visited {color: red; /*color: inherit*/}
 169.132 +.note a:link, .note a:visited {color: green; /*color: inherit*/}
 169.133 +
 169.134 +a.propdef-title {
 169.135 +  background: yellow;
 169.136 +}
 169.137 +
 169.138 +a.descdef-title {
 169.139 +  color: yellow;
 169.140 +  background: green
 169.141 +}
 169.142 +
 169.143 +/* table {margin-left: 1em} */
 169.144 +div.propdef {margin: 1.2em 0}
 169.145 +
 169.146 +.example {
 169.147 +  padding: 0;
 169.148 +  background: white;
 169.149 +}
 169.150 +
 169.151 +.exampleheader {
 169.152 +  margin: 0;
 169.153 +  background: #dda;
 169.154 +  border-bottom: 1px solid #666;
 169.155 +  border-right: 1px solid #666;
 169.156 +  border-top: 1px solid #aaa;
 169.157 +  border-left: 1px solid #aaa;
 169.158 +  padding: 0.5em 1em;
 169.159 +}
 169.160 +
 169.161 +.examplesource {
 169.162 +  padding: 0;
 169.163 +  margin: 0;
 169.164 +  background: #ffc;
 169.165 +  border-bottom: 1px solid #996;
 169.166 +  border-right: 1px solid #996;
 169.167 +  border-top: 1px solid #bb8;
 169.168 +  border-left: 1px solid #bb8;
 169.169 +}
 169.170 +
 169.171 +.examplesource pre {
 169.172 +  background: none;
 169.173 +  color: #633;
 169.174 +  margin: 0 1em;
 169.175 +  padding: 0.5em 0 0 0;
 169.176 +}
 169.177 +
 169.178 +.exampleimage {
 169.179 +  text-align: center;
 169.180 +  padding: 1em;
 169.181 +  border-bottom: 1px solid #996;
 169.182 +  border-right: 1px solid #996;
 169.183 +  border-top: 1px solid #bb8;
 169.184 +  border-left: 1px solid #bb8;
 169.185 +}
 169.186 +
 169.187 +.schema {
 169.188 +  padding: 0;
 169.189 +  background: white;
 169.190 +  width: 100%;
 169.191 +}
 169.192 +
 169.193 +.schemaheader {
 169.194 +  margin: 0;
 169.195 +  background: #ccc;
 169.196 +  border-bottom: 1px solid #666;
 169.197 +  border-right: 1px solid #666;
 169.198 +  border-top: 1px solid #aaa;
 169.199 +  border-left: 1px solid #aaa;
 169.200 +  padding: 0.5em 1em;
 169.201 +}
 169.202 +
 169.203 +.schemasource {
 169.204 +  padding: 0;
 169.205 +  margin: 0;
 169.206 +  background: #ddd;
 169.207 +  border-bottom: 1px solid #666;
 169.208 +  border-right: 1px solid #666;
 169.209 +  border-top: 1px solid #aaa;
 169.210 +  border-left: 1px solid #aaa;
 169.211 +}
 169.212 +
 169.213 +.schemasource pre {
 169.214 +  background: none;
 169.215 +  color: #030;
 169.216 +  margin: 0 1em;
 169.217 +  padding: 0.5em 0 0 0;
 169.218 +}
 169.219 +
 169.220 +pre.example { color: maroon }
 169.221 +pre.illegal-example { color: red }
 169.222 +div.illegal-example { color: red }
 169.223 +div.illegal-example p { color: black }
 169.224 +
 169.225 +
 169.226 +div.html-example { color: maroon }
 169.227 +pre.html-example { color: maroon }
 169.228 +pre.illegal-html-example { color: red }
 169.229 +div.illegal-html-example { color: red }
 169.230 +div.illegal-html-example p { color: black }
 169.231 +pre.deprecated-html-example { color: red }
 169.232 +div.deprecated-html-example { color: red }
 169.233 +div.deprecated-html-example p { color: black }
 169.234 +
 169.235 +div.xml-example { color: maroon }
 169.236 +pre.xml-example { color: maroon }
 169.237 +pre.illegal-xml-example { color: red }
 169.238 +div.illegal-xml-example { color: red }
 169.239 +div.illegal-xml-example p { color: black }
 169.240 +
 169.241 +div.dtd-example { color: maroon }
 169.242 +pre.dtd-example { color: maroon }
 169.243 +pre.illegal-dtd-example { color: red }
 169.244 +div.illegal-dtd-example { color: red }
 169.245 +div.illegal-dtd-example p { color: black }
 169.246 +
 169.247 +.note {
 169.248 +    font-weight: bold;
 169.249 +    margin-top: 1em;
 169.250 +    margin-bottom: 1em;
 169.251 +    margin-left: 1em;
 169.252 +    margin-right: 1em;
 169.253 +	background: #6f9 none repeat scroll 0%; 
 169.254 +	color: black; 
 169.255 +}
 169.256 +
 169.257 +.requirement {
 169.258 +    margin-top: 1em;
 169.259 +    margin-bottom: 1em;
 169.260 +    margin-left: 1em;
 169.261 +    margin-right: 1em;
 169.262 +	background: #fad none repeat scroll 0%; 
 169.263 +	color: black; 
 169.264 +}
 169.265 +
 169.266 +.normref { 
 169.267 +    color: red;
 169.268 +}	
 169.269 +
 169.270 +.informref {
 169.271 +    color: green;
 169.272 +}	
 169.273 +
 169.274 +div.propdef th { 
 169.275 +    text-align: right; 
 169.276 +}
 169.277 +
 169.278 +div.descdef th { 
 169.279 +    text-align: right; 
 169.280 +}
 169.281 +
 169.282 +ul.toc, ol.toc {list-style: none}
 169.283 +div.toc ul ul, div.toc ol ol {margin-left: 0}
 169.284 +div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em}
 169.285 +div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0}
 169.286 +li.tocline1 {font-weight: bold}
 169.287 +li.tocline2 {font-weight: normal}
 169.288 +li.tocline4 {font-style: italic}
 169.289 +/* div.subtoc ul, div.subtoc ol {list-style: none} */
 169.290 +/* the border in the following rule crashes nn4 on fonts.html :-(
 169.291 +div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0;
 169.292 +    background: #ddd}
 169.293 +*/
 169.294 +ul.index {list-style: none}
 169.295 +
 169.296 +s, del {text-decoration: line-through; color: red}
 169.297 +u, ins {text-decoration: underline; background: #bfa}
 169.298 +
 169.299 +div.figure {
 169.300 +    text-align: center;
 169.301 +    /*border: solid thin;
 169.302 +    width: 100%;*/
 169.303 +    margin: 2.5em 0
 169.304 +}
 169.305 +p.caption, caption {
 169.306 +    text-align: center;
 169.307 +    font-style: italic;
 169.308 +    font-weight: bold;
 169.309 +    font-size: 90%;
 169.310 +    color: #088;
 169.311 +    margin: 1.5em 25% 0 25%;
 169.312 +}
 169.313 +div.toc, ul.index, dt {
 169.314 +    text-align: left
 169.315 +}
 169.316 +sup {
 169.317 +    vertical-align: super;
 169.318 +    font-size: 80%
 169.319 +}
 169.320 +.code-fragment {
 169.321 +	color: #a52a2a;
 169.322 +	font-weight: bold;
 169.323 +    font-size: 90%
 169.324 +}
 169.325 +.element-name {
 169.326 +	color: #a52a2a;
 169.327 +	font-weight: bold;
 169.328 +    font-size: 90%
 169.329 +}
 169.330 +.attr-name {
 169.331 +	color: #2a2aa5;
 169.332 +	font-weight: bold;
 169.333 +    font-size: 90%
 169.334 +}
 169.335 +.prop-name {
 169.336 +	color: black;
 169.337 +	font-weight: bold;
 169.338 +    font-size: 90%
 169.339 +}
 169.340 +.attr-value, .prop-value {
 169.341 +	font-weight: bold;
 169.342 +    font-size: 90%
 169.343 +}
 169.344 +/*
 169.345 +.svg-term {
 169.346 +    color: red;
 169.347 +	font-weight: bold
 169.348 +}
 169.349 +*/
 169.350 +.svg-termdefine {
 169.351 +	font-weight: bold
 169.352 +}
 169.353 +.example-ref {
 169.354 +	color: green;
 169.355 +}
 169.356 +.anim-target { 
 169.357 +    font-style: italic 
 169.358 +}
 169.359 +.dominterfacename {
 169.360 +        font-weight: bold
 169.361 +}
 169.362 +.dom-attr-name {
 169.363 +        color: black;
 169.364 +        background-color: #ffffd2;
 169.365 +}
 169.366 +.dom-attr-type, .dom-attr-value {
 169.367 +        color: black;
 169.368 +        font-weight: bold;
 169.369 +}
 169.370 +.dom-method-name {
 169.371 +        color: black;
 169.372 +        background-color: #d9e6f8;
 169.373 +}
 169.374 +.dom-parameter-name {
 169.375 +	margin-top: 1%;
 169.376 +        background-color: #fee6f8; 
 169.377 +        color: black;
 169.378 +}
 169.379 +.math-variable {
 169.380 +    font-family:times,serif
 169.381 +}
 169.382 +.color-keyword-value {
 169.383 +	color: #a52a2a;
 169.384 +}
 169.385 +.view-as-svg {
 169.386 +  font-style:italic
 169.387 +}
 169.388 +.table-heading-1 {
 169.389 +  font-style:italic; 
 169.390 +  text-align:center
 169.391 +}
 169.392 +.pathdatatable { 
 169.393 +  background: #dddddd 
 169.394 +}
 169.395 +.useruleapplied {
 169.396 +  font-style:normal; 
 169.397 +  font-weight:bold; 
 169.398 +  color:blue
 169.399 +}
 169.400 +.useruleignored {
 169.401 +  font-style:italic; 
 169.402 +  font-weight:bold; 
 169.403 +  color:#050;
 169.404 +}
 169.405 +
 169.406 +.editor { text-decoration: underline; font-size: 85% }
 169.407 +.editor-intro { color: red; font-weight: bold }
 169.408 +.editor-rec { color: red; font-weight: bold }
 169.409 +.designgoals { list-style-type: upper-alpha }
 169.410 +.reqt-level0 { list-style-type: decimal; font-weight: bold }
 169.411 +.reqt-level1 { list-style-type: lower-alpha; font-weight: normal }
 169.412 +.reqt-level2 { list-style-type: lower-roman; font-weight: normal }
 169.413 +
 169.414 +.b4nomfix { color: #a52a2a; text-decoration: line-through }
 169.415 +.afnomfix { color: red; }
 169.416 +
 169.417 +div.note,p.note { 
 169.418 +	border: 2px dotted #3c6; 
 169.419 +	padding: 0.5em; 
 169.420 +}
 169.421 +
 169.422 +.specissue { 
 169.423 +	border-style: solid; 
 169.424 +	border-color: black; 
 169.425 +	border-width: 1px 1px 1px 4px; 
 169.426 +	padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 
 169.427 +}
 169.428 +
 169.429 +.svgt12 { 
 169.430 +	background: rgb(153, 223, 255) none repeat scroll 0%; 
 169.431 +	color: black; 
 169.432 +}
 169.433 +
 169.434 +a[href="http://www.w3.org/TR/SVG10/"] { background: red; }
 169.435 +a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; }
 169.436 +a[href="http://www.w3.org/SVGMobile12/"] { background: green; }
 169.437 +
 169.438 +.new {
 169.439 +	border-style: solid;
 169.440 +	border-color: green;
 169.441 +	border-width: 0px 0px 0px 4px;
 169.442 +	padding-left: 20px;
 169.443 +	margin-left: -20px;
 169.444 +}
 169.445 +
 169.446 +.changed {
 169.447 +	border-style: solid;
 169.448 +	border-color: blue;
 169.449 +	border-width: 0px 0px 0px 4px;
 169.450 +	padding-left: 20px;
 169.451 +	margin-left: -20px;
 169.452 +}
 169.453 +
 169.454 +div.note-editor
 169.455 +{
 169.456 +	display:none;
 169.457 +}
   170.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.2 +++ b/filters/publish/style/svgspec.css	Mon Apr 11 10:08:48 2011 +1000
   170.3 @@ -0,0 +1,105 @@
   170.4 +.term {
   170.5 +    FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white
   170.6 +}
   170.7 +PRE {
   170.8 +    FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white
   170.9 +}
  170.10 +PRE.schema {
  170.11 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  170.12 +}
  170.13 +PRE.example {
  170.14 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  170.15 +}
  170.16 +.dtd-fragment {
  170.17 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd
  170.18 +}
  170.19 +.idl-code {
  170.20 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf
  170.21 +}
  170.22 +.adef {
  170.23 +    FONT-WEIGHT: bold; FONT-FAMILY: monospace
  170.24 +}
  170.25 +IMG {
  170.26 +    BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px
  170.27 +}
  170.28 +.toc {
  170.29 +    TEXT-INDENT: 0px
  170.30 +}
  170.31 +.toc2 {
  170.32 +    TEXT-INDENT: 2em
  170.33 +}
  170.34 +.toc3 {
  170.35 +    TEXT-INDENT: 4em
  170.36 +}
  170.37 +P.toc-line {
  170.38 +    MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px
  170.39 +}
  170.40 +.example {
  170.41 +    COLOR: maroon; BACKGROUND-COLOR: white
  170.42 +}
  170.43 +.pseudocode {
  170.44 +    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff
  170.45 +}
  170.46 +.algorithm OL {
  170.47 +    LIST-STYLE-TYPE: decimal
  170.48 +}
  170.49 +.algorithm OL LI {
  170.50 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  170.51 +}
  170.52 +.algorithm OL LI OL {
  170.53 +    LIST-STYLE-TYPE: lower-alpha
  170.54 +}
  170.55 +.algorithm OL LI OL LI {
  170.56 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  170.57 +}
  170.58 +.algorithm OL LI OL LI OL {
  170.59 +    LIST-STYLE-TYPE: lower-roman
  170.60 +}
  170.61 +.algorithm OL LI OL LI OL LI {
  170.62 +    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  170.63 +}
  170.64 +.note {
  170.65 +    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid
  170.66 +}
  170.67 +P.caption {
  170.68 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  170.69 +}
  170.70 +CAPTION {
  170.71 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  170.72 +}
  170.73 +.element {
  170.74 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white
  170.75 +}
  170.76 +.type {
  170.77 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
  170.78 +}
  170.79 +.attribute {
  170.80 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white
  170.81 +}
  170.82 +.property {
  170.83 +    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white
  170.84 +}
  170.85 +.attribute-value {
  170.86 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
  170.87 +}
  170.88 +.property-value {
  170.89 +    FONT-WEIGHT: bold; FONT-SIZE: 90%
  170.90 +}
  170.91 +.interface {
  170.92 +    FONT-WEIGHT: bold
  170.93 +}
  170.94 +.dom-attribute {
  170.95 +    COLOR: black; BACKGROUND-COLOR: #ffffd2
  170.96 +}
  170.97 +.dom-attribute-type {
  170.98 +    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
  170.99 +}
 170.100 +.dom-attribute-value {
 170.101 +    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
 170.102 +}
 170.103 +.dom-method {
 170.104 +    COLOR: black; BACKGROUND-COLOR: #d9e6f8
 170.105 +}
 170.106 +.dom-parameter {
 170.107 +    COLOR: black; BACKGROUND-COLOR: #fee6f8
 170.108 +}
   171.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.2 +++ b/filters/test/resources/SVGFreeSans.svg	Mon Apr 11 10:08:48 2011 +1000
   171.3 @@ -0,0 +1,569 @@
   171.4 +<?xml version="1.0" standalone="no"?>
   171.5 +<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" >
   171.6 +<defs >
   171.7 +<font horiz-adv-x="481" id="ascii">
   171.8 +  <font-face
   171.9 +    font-family="SVGFreeSansASCII"
  171.10 +    units-per-em="1000"
  171.11 +    panose-1="2 11 5 4 2 2 2 2 2 4"
  171.12 +    ascent="800"
  171.13 +    descent="-200"
  171.14 +    alphabetic="0" />
  171.15 +<missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z" />
  171.16 +<glyph unicode=" " glyph-name="space" horiz-adv-x="278" />
  171.17 +<glyph unicode="&#160;" glyph-name="nbsp" horiz-adv-x="278" />
  171.18 +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z" />
  171.19 +<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z" />
  171.20 +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360
  171.21 +433Z" />
  171.22 +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89
  171.23 +-13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436
  171.24 +244 389 274Q360 292 302 309Z" />
  171.25 +<glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544
  171.26 +98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518
  171.27 +151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693
  171.28 +252 690 252H688Z" />
  171.29 +<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134
  171.30 +532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639
  171.31 +221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z" />
  171.32 +<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z" />
  171.33 +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z" />
  171.34 +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z" />
  171.35 +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z" />
  171.36 +<glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z" />
  171.37 +<glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z" />
  171.38 +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z" />
  171.39 +<glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z" />
  171.40 +<glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z" />
  171.41 +<glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133
  171.42 +631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z" />
  171.43 +<glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z" />
  171.44 +<glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148
  171.45 +709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z" />
  171.46 +<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485
  171.47 +515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z" />
  171.48 +<glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z" />
  171.49 +<glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171
  171.50 +423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z" />
  171.51 +<glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43
  171.52 +312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285
  171.53 +363Z" />
  171.54 +<glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z" />
  171.55 +<glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488
  171.56 +586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275
  171.57 +631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z" />
  171.58 +<glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509
  171.59 +374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z"
  171.60 +/>
  171.61 +<glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z" />
  171.62 +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z" />
  171.63 +<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z" />
  171.64 +<glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z" />
  171.65 +<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z" />
  171.66 +<glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162
  171.67 +508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z" />
  171.68 +<glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119
  171.69 +274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741
  171.70 +525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515
  171.71 +458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z" />
  171.72 +<glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z" />
  171.73 +<glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471
  171.74 +498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z" />
  171.75 +<glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236
  171.76 +-23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z" />
  171.77 +<glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z" />
  171.78 +<glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z" />
  171.79 +<glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z" />
  171.80 +<glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659
  171.81 +393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z" />
  171.82 +<glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z" />
  171.83 +<glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z" />
  171.84 +<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z" />
  171.85 +<glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z" />
  171.86 +<glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z" />
  171.87 +<glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z" />
  171.88 +<glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z" />
  171.89 +<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741
  171.90 +389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z" />
  171.91 +<glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647
  171.92 +378 647H184V391Z" />
  171.93 +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221
  171.94 +649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z" />
  171.95 +<glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546
  171.96 +293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z" />
  171.97 +<glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468
  171.98 +-23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z" />
  171.99 +<glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z" />
 171.100 +<glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z" />
 171.101 +<glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z" />
 171.102 +<glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z" />
 171.103 +<glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z" />
 171.104 +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z" />
 171.105 +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z" />
 171.106 +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z" />
 171.107 +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z" />
 171.108 +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z" />
 171.109 +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z" />
 171.110 +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z" />
 171.111 +<glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z" />
 171.112 +<glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389
 171.113 +448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212
 171.114 +50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z" />
 171.115 +<glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239
 171.116 +55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z" />
 171.117 +<glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31
 171.118 +252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z" />
 171.119 +<glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114
 171.120 +290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z" />
 171.121 +<glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513
 171.122 +347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z" />
 171.123 +<glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z" />
 171.124 +<glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404
 171.125 +-58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54
 171.126 +386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z" />
 171.127 +<glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z" />
 171.128 +<glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z" />
 171.129 +<glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z" />
 171.130 +<glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z" />
 171.131 +<glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z" />
 171.132 +<glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678
 171.133 +442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z" />
 171.134 +<glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z" />
 171.135 +<glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123
 171.136 +121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z" />
 171.137 +<glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138
 171.138 +133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z" />
 171.139 +<glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219
 171.140 +55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z" />
 171.141 +<glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z" />
 171.142 +<glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128
 171.143 +109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z" />
 171.144 +<glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z" />
 171.145 +<glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z" />
 171.146 +<glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z" />
 171.147 +<glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z" />
 171.148 +<glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z" />
 171.149 +<glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z" />
 171.150 +<glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z" />
 171.151 +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="334" d="M276 729V664H261Q214 664 203 637V637Q198 623 198 598V597V416Q198 318 157 283L156 282Q146 273 133 267Q125 263 116 259Q198 221 198 103V101V-80Q198 -130 223 -141Q236 -147 261 -147H276V-212H230Q148
 171.152 +-212 127 -132Q121 -110 121 -82V-81V86Q121 179 86 206Q70 218 43 224V293Q97 304 111 348Q121 376 121 430V431V598Q121 700 192 723Q210 729 230 729H276Z" />
 171.153 +<glyph unicode="|" glyph-name="bar" horiz-adv-x="260" d="M100 729H160V-212H100V729Z" />
 171.154 +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="334" d="M29 -212V-147H45Q93 -147 104 -120Q108 -109 109 -90V-80V101Q109 221 191 258Q109 296 109 414V416V597Q109 647 83 658Q70 664 45 664H29V729H76Q159 729 180 648Q186 626 186 599V598V431Q186
 171.155 +337 222 310Q237 298 262 293V224Q210 213 195 167Q186 139 186 87V86V-81Q186 -184 113 -207Q96 -212 76 -212H29Z" />
 171.156 +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="584" d="M455 411H508V395Q508 310 451 280Q430 268 403 268Q364 268 322 294L224 357Q201 371 181 371Q152 371 136 336Q131 323 128 295V293H75Q82 424 166 437L183 438Q210 438 237 422L354 353Q382
 171.157 +336 404 336Q448 336 454 385L455 411Z" />
 171.158 +
 171.159 +<hkern g1="comma" g2="one" k="100" />
 171.160 +<hkern g1="hyphen" g2="A" k="7" />
 171.161 +<hkern g1="hyphen" g2="T" k="80" />
 171.162 +<hkern g1="hyphen" g2="V" k="46" />
 171.163 +<hkern g1="hyphen" g2="W" k="19" />
 171.164 +<hkern g1="hyphen" g2="Y" k="92" />
 171.165 +<hkern g1="period" g2="one" k="101" />
 171.166 +<hkern g1="zero" g2="one" k="46" />
 171.167 +<hkern g1="zero" g2="four" k="2" />
 171.168 +<hkern g1="zero" g2="seven" k="39" />
 171.169 +<hkern g1="one" g2="comma" k="74" />
 171.170 +<hkern g1="one" g2="period" k="74" />
 171.171 +<hkern g1="one" g2="zero" k="62" />
 171.172 +<hkern g1="one" g2="one" k="118" />
 171.173 +<hkern g1="one" g2="two" k="69" />
 171.174 +<hkern g1="one" g2="three" k="67" />
 171.175 +<hkern g1="one" g2="four" k="81" />
 171.176 +<hkern g1="one" g2="five" k="67" />
 171.177 +<hkern g1="one" g2="six" k="62" />
 171.178 +<hkern g1="one" g2="seven" k="90" />
 171.179 +<hkern g1="one" g2="eight" k="65" />
 171.180 +<hkern g1="one" g2="nine" k="65" />
 171.181 +<hkern g1="two" g2="one" k="36" />
 171.182 +<hkern g1="two" g2="four" k="37" />
 171.183 +<hkern g1="two" g2="seven" k="25" />
 171.184 +<hkern g1="three" g2="one" k="49" />
 171.185 +<hkern g1="three" g2="four" k="2" />
 171.186 +<hkern g1="three" g2="seven" k="33" />
 171.187 +<hkern g1="four" g2="one" k="84" />
 171.188 +<hkern g1="four" g2="four" k="-5" />
 171.189 +<hkern g1="four" g2="seven" k="56" />
 171.190 +<hkern g1="five" g2="one" k="76" />
 171.191 +<hkern g1="five" g2="four" k="-1" />
 171.192 +<hkern g1="five" g2="seven" k="26" />
 171.193 +<hkern g1="six" g2="one" k="43" />
 171.194 +<hkern g1="six" g2="four" k="-1" />
 171.195 +<hkern g1="six" g2="seven" k="30" />
 171.196 +<hkern g1="seven" g2="comma" k="119" />
 171.197 +<hkern g1="seven" g2="period" k="119" />
 171.198 +<hkern g1="seven" g2="one" k="53" />
 171.199 +<hkern g1="seven" g2="two" k="28" />
 171.200 +<hkern g1="seven" g2="three" k="23" />
 171.201 +<hkern g1="seven" g2="four" k="93" />
 171.202 +<hkern g1="seven" g2="five" k="30" />
 171.203 +<hkern g1="seven" g2="six" k="40" />
 171.204 +<hkern g1="seven" g2="seven" k="4" />
 171.205 +<hkern g1="seven" g2="eight" k="28" />
 171.206 +<hkern g1="seven" g2="colon" k="77" />
 171.207 +<hkern g1="eight" g2="one" k="48" />
 171.208 +<hkern g1="eight" g2="four" k="-1" />
 171.209 +<hkern g1="eight" g2="seven" k="33" />
 171.210 +<hkern g1="nine" g2="one" k="43" />
 171.211 +<hkern g1="nine" g2="four" k="3" />
 171.212 +<hkern g1="nine" g2="seven" k="37" />
 171.213 +<hkern g1="A" g2="comma" k="-5" />
 171.214 +<hkern g1="A" g2="hyphen" k="3" />
 171.215 +<hkern g1="A" g2="period" k="-5" />
 171.216 +<hkern g1="A" g2="C" k="36" />
 171.217 +<hkern g1="A" g2="G" k="35" />
 171.218 +<hkern g1="A" g2="O" k="33" />
 171.219 +<hkern g1="A" g2="Q" k="32" />
 171.220 +<hkern g1="A" g2="T" k="93" />
 171.221 +<hkern g1="A" g2="U" k="37" />
 171.222 +<hkern g1="A" g2="V" k="75" />
 171.223 +<hkern g1="A" g2="W" k="51" />
 171.224 +<hkern g1="A" g2="Y" k="99" />
 171.225 +<hkern g1="A" g2="a" k="4" />
 171.226 +<hkern g1="A" g2="b" k="-4" />
 171.227 +<hkern g1="A" g2="c" k="11" />
 171.228 +<hkern g1="A" g2="d" k="8" />
 171.229 +<hkern g1="A" g2="e" k="16" />
 171.230 +<hkern g1="A" g2="g" k="10" />
 171.231 +<hkern g1="A" g2="o" k="13" />
 171.232 +<hkern g1="A" g2="q" k="8" />
 171.233 +<hkern g1="A" g2="t" k="16" />
 171.234 +<hkern g1="A" g2="u" k="12" />
 171.235 +<hkern g1="A" g2="v" k="31" />
 171.236 +<hkern g1="A" g2="w" k="21" />
 171.237 +<hkern g1="A" g2="y" k="34" />
 171.238 +<hkern g1="B" g2="A" k="21" />
 171.239 +<hkern g1="B" g2="O" k="7" />
 171.240 +<hkern g1="B" g2="V" k="41" />
 171.241 +<hkern g1="B" g2="W" k="25" />
 171.242 +<hkern g1="B" g2="Y" k="44" />
 171.243 +<hkern g1="C" g2="A" k="32" />
 171.244 +<hkern g1="C" g2="H" k="12" />
 171.245 +<hkern g1="C" g2="K" k="10" />
 171.246 +<hkern g1="C" g2="O" k="8" />
 171.247 +<hkern g1="D" g2="A" k="42" />
 171.248 +<hkern g1="D" g2="J" k="5" />
 171.249 +<hkern g1="D" g2="T" k="45" />
 171.250 +<hkern g1="D" g2="V" k="51" />
 171.251 +<hkern g1="D" g2="W" k="29" />
 171.252 +<hkern g1="D" g2="X" k="53" />
 171.253 +<hkern g1="D" g2="Y" k="63" />
 171.254 +<hkern g1="F" g2="comma" k="108" />
 171.255 +<hkern g1="F" g2="hyphen" k="14" />
 171.256 +<hkern g1="F" g2="period" k="108" />
 171.257 +<hkern g1="F" g2="A" k="69" />
 171.258 +<hkern g1="F" g2="J" k="51" />
 171.259 +<hkern g1="F" g2="O" k="22" />
 171.260 +<hkern g1="F" g2="a" k="33" />
 171.261 +<hkern g1="F" g2="e" k="24" />
 171.262 +<hkern g1="F" g2="i" k="10" />
 171.263 +<hkern g1="F" g2="j" k="12" />
 171.264 +<hkern g1="F" g2="o" k="21" />
 171.265 +<hkern g1="F" g2="r" k="35" />
 171.266 +<hkern g1="F" g2="u" k="33" />
 171.267 +<hkern g1="G" g2="A" k="6" />
 171.268 +<hkern g1="G" g2="T" k="44" />
 171.269 +<hkern g1="G" g2="V" k="50" />
 171.270 +<hkern g1="G" g2="W" k="28" />
 171.271 +<hkern g1="G" g2="Y" k="62" />
 171.272 +<hkern g1="J" g2="A" k="32" />
 171.273 +<hkern g1="K" g2="hyphen" k="47" />
 171.274 +<hkern g1="K" g2="C" k="51" />
 171.275 +<hkern g1="K" g2="G" k="51" />
 171.276 +<hkern g1="K" g2="O" k="48" />
 171.277 +<hkern g1="K" g2="S" k="38" />
 171.278 +<hkern g1="K" g2="T" k="-20" />
 171.279 +<hkern g1="K" g2="a" k="11" />
 171.280 +<hkern g1="K" g2="e" k="32" />
 171.281 +<hkern g1="K" g2="o" k="29" />
 171.282 +<hkern g1="K" g2="u" k="19" />
 171.283 +<hkern g1="K" g2="y" k="62" />
 171.284 +<hkern g1="L" g2="hyphen" k="125" />
 171.285 +<hkern g1="L" g2="A" k="-17" />
 171.286 +<hkern g1="L" g2="C" k="41" />
 171.287 +<hkern g1="L" g2="G" k="42" />
 171.288 +<hkern g1="L" g2="O" k="41" />
 171.289 +<hkern g1="L" g2="S" k="19" />
 171.290 +<hkern g1="L" g2="T" k="105" />
 171.291 +<hkern g1="L" g2="U" k="35" />
 171.292 +<hkern g1="L" g2="V" k="105" />
 171.293 +<hkern g1="L" g2="W" k="68" />
 171.294 +<hkern g1="L" g2="Y" k="121" />
 171.295 +<hkern g1="L" g2="u" k="7" />
 171.296 +<hkern g1="L" g2="y" k="56" />
 171.297 +<hkern g1="N" g2="comma" k="7" />
 171.298 +<hkern g1="N" g2="period" k="7" />
 171.299 +<hkern g1="N" g2="A" k="9" />
 171.300 +<hkern g1="N" g2="C" k="3" />
 171.301 +<hkern g1="N" g2="G" k="2" />
 171.302 +<hkern g1="N" g2="a" k="5" />
 171.303 +<hkern g1="N" g2="o" k="-2" />
 171.304 +<hkern g1="O" g2="A" k="35" />
 171.305 +<hkern g1="O" g2="T" k="42" />
 171.306 +<hkern g1="O" g2="V" k="45" />
 171.307 +<hkern g1="O" g2="W" k="23" />
 171.308 +<hkern g1="O" g2="X" k="46" />
 171.309 +<hkern g1="O" g2="Y" k="59" />
 171.310 +<hkern g1="P" g2="comma" k="135" />
 171.311 +<hkern g1="P" g2="hyphen" k="40" />
 171.312 +<hkern g1="P" g2="period" k="135" />
 171.313 +<hkern g1="P" g2="A" k="78" />
 171.314 +<hkern g1="P" g2="J" k="78" />
 171.315 +<hkern g1="P" g2="a" k="28" />
 171.316 +<hkern g1="P" g2="e" k="31" />
 171.317 +<hkern g1="P" g2="o" k="27" />
 171.318 +<hkern g1="R" g2="hyphen" k="2" />
 171.319 +<hkern g1="R" g2="C" k="16" />
 171.320 +<hkern g1="R" g2="G" k="15" />
 171.321 +<hkern g1="R" g2="O" k="13" />
 171.322 +<hkern g1="R" g2="T" k="23" />
 171.323 +<hkern g1="R" g2="U" k="17" />
 171.324 +<hkern g1="R" g2="V" k="39" />
 171.325 +<hkern g1="R" g2="W" k="27" />
 171.326 +<hkern g1="R" g2="Y" k="43" />
 171.327 +<hkern g1="R" g2="a" k="15" />
 171.328 +<hkern g1="R" g2="e" k="12" />
 171.329 +<hkern g1="R" g2="o" k="9" />
 171.330 +<hkern g1="R" g2="u" k="9" />
 171.331 +<hkern g1="R" g2="y" k="8" />
 171.332 +<hkern g1="S" g2="A" k="22" />
 171.333 +<hkern g1="S" g2="T" k="28" />
 171.334 +<hkern g1="S" g2="V" k="42" />
 171.335 +<hkern g1="S" g2="W" k="28" />
 171.336 +<hkern g1="S" g2="Y" k="48" />
 171.337 +<hkern g1="S" g2="t" k="3" />
 171.338 +<hkern g1="T" g2="comma" k="100" />
 171.339 +<hkern g1="T" g2="hyphen" k="77" />
 171.340 +<hkern g1="T" g2="period" k="100" />
 171.341 +<hkern g1="T" g2="colon" k="133" />
 171.342 +<hkern g1="T" g2="semicolon" k="129" />
 171.343 +<hkern g1="T" g2="A" k="95" />
 171.344 +<hkern g1="T" g2="C" k="44" />
 171.345 +<hkern g1="T" g2="G" k="45" />
 171.346 +<hkern g1="T" g2="J" k="100" />
 171.347 +<hkern g1="T" g2="O" k="42" />
 171.348 +<hkern g1="T" g2="S" k="24" />
 171.349 +<hkern g1="T" g2="V" k="-12" />
 171.350 +<hkern g1="T" g2="W" k="-16" />
 171.351 +<hkern g1="T" g2="Y" k="-20" />
 171.352 +<hkern g1="T" g2="a" k="100" />
 171.353 +<hkern g1="T" g2="c" k="90" />
 171.354 +<hkern g1="T" g2="e" k="95" />
 171.355 +<hkern g1="T" g2="g" k="89" />
 171.356 +<hkern g1="T" g2="i" k="3" />
 171.357 +<hkern g1="T" g2="j" k="5" />
 171.358 +<hkern g1="T" g2="o" k="92" />
 171.359 +<hkern g1="T" g2="r" k="92" />
 171.360 +<hkern g1="T" g2="s" k="92" />
 171.361 +<hkern g1="T" g2="u" k="91" />
 171.362 +<hkern g1="T" g2="v" k="95" />
 171.363 +<hkern g1="T" g2="w" k="93" />
 171.364 +<hkern g1="T" g2="y" k="100" />
 171.365 +<hkern g1="U" g2="comma" k="27" />
 171.366 +<hkern g1="U" g2="period" k="25" />
 171.367 +<hkern g1="U" g2="A" k="36" />
 171.368 +<hkern g1="U" g2="m" k="4" />
 171.369 +<hkern g1="U" g2="n" k="4" />
 171.370 +<hkern g1="U" g2="p" k="-3" />
 171.371 +<hkern g1="U" g2="r" k="4" />
 171.372 +<hkern g1="V" g2="comma" k="89" />
 171.373 +<hkern g1="V" g2="hyphen" k="38" />
 171.374 +<hkern g1="V" g2="period" k="89" />
 171.375 +<hkern g1="V" g2="colon" k="66" />
 171.376 +<hkern g1="V" g2="semicolon" k="66" />
 171.377 +<hkern g1="V" g2="A" k="71" />
 171.378 +<hkern g1="V" g2="C" k="43" />
 171.379 +<hkern g1="V" g2="G" k="42" />
 171.380 +<hkern g1="V" g2="O" k="40" />
 171.381 +<hkern g1="V" g2="S" k="35" />
 171.382 +<hkern g1="V" g2="T" k="-15" />
 171.383 +<hkern g1="V" g2="a" k="59" />
 171.384 +<hkern g1="V" g2="e" k="57" />
 171.385 +<hkern g1="V" g2="g" k="50" />
 171.386 +<hkern g1="V" g2="i" k="5" />
 171.387 +<hkern g1="V" g2="o" k="54" />
 171.388 +<hkern g1="V" g2="r" k="42" />
 171.389 +<hkern g1="V" g2="u" k="41" />
 171.390 +<hkern g1="V" g2="y" k="20" />
 171.391 +<hkern g1="W" g2="comma" k="56" />
 171.392 +<hkern g1="W" g2="hyphen" k="13" />
 171.393 +<hkern g1="W" g2="period" k="56" />
 171.394 +<hkern g1="W" g2="colon" k="52" />
 171.395 +<hkern g1="W" g2="semicolon" k="53" />
 171.396 +<hkern g1="W" g2="A" k="50" />
 171.397 +<hkern g1="W" g2="C" k="23" />
 171.398 +<hkern g1="W" g2="G" k="22" />
 171.399 +<hkern g1="W" g2="O" k="20" />
 171.400 +<hkern g1="W" g2="S" k="24" />
 171.401 +<hkern g1="W" g2="T" k="-19" />
 171.402 +<hkern g1="W" g2="a" k="38" />
 171.403 +<hkern g1="W" g2="e" k="32" />
 171.404 +<hkern g1="W" g2="g" k="25" />
 171.405 +<hkern g1="W" g2="i" k="1" />
 171.406 +<hkern g1="W" g2="o" k="29" />
 171.407 +<hkern g1="W" g2="r" k="28" />
 171.408 +<hkern g1="W" g2="u" k="28" />
 171.409 +<hkern g1="W" g2="y" k="6" />
 171.410 +<hkern g1="X" g2="hyphen" k="51" />
 171.411 +<hkern g1="X" g2="C" k="48" />
 171.412 +<hkern g1="X" g2="O" k="45" />
 171.413 +<hkern g1="X" g2="Q" k="44" />
 171.414 +<hkern g1="X" g2="a" k="15" />
 171.415 +<hkern g1="X" g2="e" k="36" />
 171.416 +<hkern g1="X" g2="o" k="33" />
 171.417 +<hkern g1="X" g2="u" k="24" />
 171.418 +<hkern g1="X" g2="y" k="61" />
 171.419 +<hkern g1="Y" g2="comma" k="111" />
 171.420 +<hkern g1="Y" g2="hyphen" k="84" />
 171.421 +<hkern g1="Y" g2="period" k="111" />
 171.422 +<hkern g1="Y" g2="colon" k="87" />
 171.423 +<hkern g1="Y" g2="semicolon" k="88" />
 171.424 +<hkern g1="Y" g2="A" k="96" />
 171.425 +<hkern g1="Y" g2="C" k="58" />
 171.426 +<hkern g1="Y" g2="G" k="58" />
 171.427 +<hkern g1="Y" g2="O" k="56" />
 171.428 +<hkern g1="Y" g2="S" k="41" />
 171.429 +<hkern g1="Y" g2="T" k="-23" />
 171.430 +<hkern g1="Y" g2="a" k="88" />
 171.431 +<hkern g1="Y" g2="e" k="89" />
 171.432 +<hkern g1="Y" g2="g" k="83" />
 171.433 +<hkern g1="Y" g2="i" k="-3" />
 171.434 +<hkern g1="Y" g2="o" k="86" />
 171.435 +<hkern g1="Y" g2="p" k="54" />
 171.436 +<hkern g1="Y" g2="u" k="63" />
 171.437 +<hkern g1="Y" g2="v" k="36" />
 171.438 +<hkern g1="Z" g2="v" k="33" />
 171.439 +<hkern g1="Z" g2="y" k="38" />
 171.440 +<hkern g1="a" g2="j" k="4" />
 171.441 +<hkern g1="a" g2="v" k="21" />
 171.442 +<hkern g1="a" g2="w" k="13" />
 171.443 +<hkern g1="a" g2="y" k="26" />
 171.444 +<hkern g1="b" g2="v" k="11" />
 171.445 +<hkern g1="b" g2="w" k="3" />
 171.446 +<hkern g1="b" g2="y" k="15" />
 171.447 +<hkern g1="c" g2="h" k="-1" />
 171.448 +<hkern g1="c" g2="k" k="-7" />
 171.449 +<hkern g1="e" g2="t" k="10" />
 171.450 +<hkern g1="e" g2="v" k="15" />
 171.451 +<hkern g1="e" g2="w" k="9" />
 171.452 +<hkern g1="e" g2="x" k="27" />
 171.453 +<hkern g1="e" g2="y" k="19" />
 171.454 +<hkern g1="f" g2="a" k="9" />
 171.455 +<hkern g1="f" g2="e" k="15" />
 171.456 +<hkern g1="f" g2="f" k="-22" />
 171.457 +<hkern g1="f" g2="i" k="2" />
 171.458 +<hkern g1="f" g2="j" k="4" />
 171.459 +<hkern g1="f" g2="l" k="3" />
 171.460 +<hkern g1="f" g2="o" k="10" />
 171.461 +<hkern g1="f" g2="t" k="-24" />
 171.462 +<hkern g1="g" g2="a" k="5" />
 171.463 +<hkern g1="h" g2="y" k="18" />
 171.464 +<hkern g1="i" g2="T" k="7" />
 171.465 +<hkern g1="i" g2="j" k="3" />
 171.466 +<hkern g1="k" g2="hyphen" k="41" />
 171.467 +<hkern g1="k" g2="a" k="2" />
 171.468 +<hkern g1="k" g2="e" k="21" />
 171.469 +<hkern g1="k" g2="g" k="16" />
 171.470 +<hkern g1="k" g2="o" k="19" />
 171.471 +<hkern g1="k" g2="s" k="3" />
 171.472 +<hkern g1="k" g2="u" k="11" />
 171.473 +<hkern g1="l" g2="y" k="5" />
 171.474 +<hkern g1="m" g2="p" k="-5" />
 171.475 +<hkern g1="m" g2="v" k="13" />
 171.476 +<hkern g1="m" g2="w" k="7" />
 171.477 +<hkern g1="m" g2="y" k="18" />
 171.478 +<hkern g1="n" g2="T" k="96" />
 171.479 +<hkern g1="n" g2="p" k="-5" />
 171.480 +<hkern g1="n" g2="v" k="13" />
 171.481 +<hkern g1="n" g2="w" k="7" />
 171.482 +<hkern g1="n" g2="y" k="18" />
 171.483 +<hkern g1="o" g2="T" k="99" />
 171.484 +<hkern g1="o" g2="t" k="10" />
 171.485 +<hkern g1="o" g2="v" k="18" />
 171.486 +<hkern g1="o" g2="w" k="10" />
 171.487 +<hkern g1="o" g2="x" k="27" />
 171.488 +<hkern g1="o" g2="y" k="22" />
 171.489 +<hkern g1="p" g2="t" k="4" />
 171.490 +<hkern g1="p" g2="y" k="16" />
 171.491 +<hkern g1="q" g2="c" k="-8" />
 171.492 +<hkern g1="q" g2="u" k="-4" />
 171.493 +<hkern g1="r" g2="comma" k="69" />
 171.494 +<hkern g1="r" g2="hyphen" k="47" />
 171.495 +<hkern g1="r" g2="period" k="69" />
 171.496 +<hkern g1="r" g2="colon" k="22" />
 171.497 +<hkern g1="r" g2="semicolon" k="22" />
 171.498 +<hkern g1="r" g2="a" k="5" />
 171.499 +<hkern g1="r" g2="c" k="6" />
 171.500 +<hkern g1="r" g2="d" k="1" />
 171.501 +<hkern g1="r" g2="e" k="11" />
 171.502 +<hkern g1="r" g2="f" k="-26" />
 171.503 +<hkern g1="r" g2="g" k="4" />
 171.504 +<hkern g1="r" g2="i" k="-1" />
 171.505 +<hkern g1="r" g2="k" k="-6" />
 171.506 +<hkern g1="r" g2="l" k="-1" />
 171.507 +<hkern g1="r" g2="o" k="6" />
 171.508 +<hkern g1="r" g2="p" k="-8" />
 171.509 +<hkern g1="r" g2="q" k="3" />
 171.510 +<hkern g1="r" g2="s" k="-4" />
 171.511 +<hkern g1="r" g2="t" k="-28" />
 171.512 +<hkern g1="r" g2="u" k="-2" />
 171.513 +<hkern g1="r" g2="v" k="-29" />
 171.514 +<hkern g1="r" g2="w" k="-31" />
 171.515 +<hkern g1="r" g2="x" k="-20" />
 171.516 +<hkern g1="r" g2="y" k="-24" />
 171.517 +<hkern g1="r" g2="z" k="-9" />
 171.518 +<hkern g1="s" g2="t" k="3" />
 171.519 +<hkern g1="t" g2="colon" k="28" />
 171.520 +<hkern g1="t" g2="semicolon" k="28" />
 171.521 +<hkern g1="t" g2="S" k="8" />
 171.522 +<hkern g1="t" g2="a" k="1" />
 171.523 +<hkern g1="t" g2="e" k="14" />
 171.524 +<hkern g1="t" g2="h" k="3" />
 171.525 +<hkern g1="t" g2="o" k="12" />
 171.526 +<hkern g1="v" g2="comma" k="69" />
 171.527 +<hkern g1="v" g2="hyphen" k="12" />
 171.528 +<hkern g1="v" g2="period" k="69" />
 171.529 +<hkern g1="v" g2="colon" k="23" />
 171.530 +<hkern g1="v" g2="semicolon" k="23" />
 171.531 +<hkern g1="v" g2="a" k="18" />
 171.532 +<hkern g1="v" g2="c" k="16" />
 171.533 +<hkern g1="v" g2="e" k="21" />
 171.534 +<hkern g1="v" g2="g" k="14" />
 171.535 +<hkern g1="v" g2="o" k="17" />
 171.536 +<hkern g1="v" g2="s" k="9" />
 171.537 +<hkern g1="w" g2="comma" k="50" />
 171.538 +<hkern g1="w" g2="hyphen" k="1" />
 171.539 +<hkern g1="w" g2="period" k="50" />
 171.540 +<hkern g1="w" g2="colon" k="23" />
 171.541 +<hkern g1="w" g2="semicolon" k="23" />
 171.542 +<hkern g1="w" g2="a" k="15" />
 171.543 +<hkern g1="w" g2="c" k="7" />
 171.544 +<hkern g1="w" g2="e" k="12" />
 171.545 +<hkern g1="w" g2="g" k="6" />
 171.546 +<hkern g1="w" g2="o" k="9" />
 171.547 +<hkern g1="w" g2="s" k="5" />
 171.548 +<hkern g1="x" g2="a" k="17" />
 171.549 +<hkern g1="x" g2="c" k="23" />
 171.550 +<hkern g1="x" g2="e" k="28" />
 171.551 +<hkern g1="x" g2="o" k="25" />
 171.552 +<hkern g1="x" g2="q" k="20" />
 171.553 +<hkern g1="y" g2="comma" k="70" />
 171.554 +<hkern g1="y" g2="hyphen" k="14" />
 171.555 +<hkern g1="y" g2="period" k="70" />
 171.556 +<hkern g1="y" g2="colon" k="27" />
 171.557 +<hkern g1="y" g2="semicolon" k="27" />
 171.558 +<hkern g1="y" g2="a" k="22" />
 171.559 +<hkern g1="y" g2="c" k="19" />
 171.560 +<hkern g1="y" g2="e" k="24" />
 171.561 +<hkern g1="y" g2="g" k="17" />
 171.562 +<hkern g1="y" g2="l" k="4" />
 171.563 +<hkern g1="y" g2="o" k="20" />
 171.564 +<hkern g1="y" g2="s" k="12" />
 171.565 +</font>
 171.566 +</defs>
 171.567 +<g font-family="SVGFreeSansASCII" font-size="18"> 
 171.568 +<text x="20" y="60">&#160; !&quot;#$%&amp;&apos;()*+,-./0123456789:;&lt;&gt;?</text> 
 171.569 +<text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text> 
 171.570 +<text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text> 
 171.571 +</g>
 171.572 +</svg>
   172.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   172.2 +++ b/filters/test/svg/filters-gauss-201.svg	Mon Apr 11 10:08:48 2011 +1000
   172.3 @@ -0,0 +1,81 @@
   172.4 +<svg id="svg-root" width="100%" height="100%" 
   172.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   172.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   172.7 +  <!--======================================================================-->
   172.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   172.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  172.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  172.11 +  <!--=  All Rights Reserved.                                              =-->
  172.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  172.13 +  <!--======================================================================-->
  172.14 +  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  172.15 +    reviewer="[reviewer]" owner="ED" desc="Negative stdDeviation attribute values" status="created"
  172.16 +    version="$Revision$" testname="$RCSfile$">
  172.17 +    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  172.18 +      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feGaussianBlur">
  172.19 +        <p>
  172.20 +          This test tests negative values for 'stdDeviation' on 'feGaussianBlur'. 
  172.21 +        </p>
  172.22 +      </d:Reference>
  172.23 +    </d:TestDescription>
  172.24 +    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  172.25 +      <p>
  172.26 +        Run the test. No interaction required.
  172.27 +      </p>
  172.28 +    </d:OperatorScript>
  172.29 +    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  172.30 +      <p>
  172.31 +        The test has passed if there are two blurred images and they both look exactly the same.
  172.32 +      </p>
  172.33 +    </d:PassCriteria>
  172.34 +  </SVGTestCase>
  172.35 +  <title id="test-title">$RCSfile$</title>
  172.36 +  <defs>
  172.37 +    <font-face
  172.38 +      font-family="SVGFreeSansASCII"
  172.39 +      unicode-range="U+0-7F">
  172.40 +      <font-face-src>
  172.41 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  172.42 +      </font-face-src>
  172.43 +    </font-face>
  172.44 +  </defs>
  172.45 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  172.46 +    
  172.47 +    <defs>
  172.48 +      <filter id="filter1">
  172.49 +        <feGaussianBlur stdDeviation="6"/>
  172.50 +      </filter>
  172.51 +      <filter id="filter2">
  172.52 +        <feGaussianBlur stdDeviation="-6"/>
  172.53 +      </filter>
  172.54 +      <filter id="filter3">
  172.55 +        <feGaussianBlur stdDeviation="-6 6"/>
  172.56 +      </filter>
  172.57 +      <filter id="filter4">
  172.58 +        <feGaussianBlur stdDeviation="6 -6"/>
  172.59 +      </filter>
  172.60 +    </defs>
  172.61 +    
  172.62 +    <circle cx="180" cy="100" r="30" fill="red"/>
  172.63 +    <circle cx="300" cy="100" r="30" fill="red"/>
  172.64 +    <circle cx="180" cy="220" r="30" fill="red"/>
  172.65 +    <circle cx="300" cy="220" r="30" fill="red"/>
  172.66 +    
  172.67 +    <circle cx="180" cy="100" r="50" filter="url(#filter1)" fill="lime"/>
  172.68 +    <circle cx="300" cy="100" r="50" filter="url(#filter2)" fill="lime"/>
  172.69 +    <circle cx="180" cy="220" r="50" filter="url(#filter3)" fill="lime"/>
  172.70 +    <circle cx="300" cy="220" r="50" filter="url(#filter4)" fill="lime"/>
  172.71 +    
  172.72 +  </g>
  172.73 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  172.74 +  <text id="revision" x="10" y="340" stroke="none" 
  172.75 +    fill="black">$Revision$</text>
  172.76 +  </g>
  172.77 +  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  172.78 +  <!-- comment out this watermark once the test is approved -->
  172.79 +  <g id="draft-watermark">
  172.80 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  172.81 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  172.82 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  172.83 +  </g>
  172.84 +</svg>
   173.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   173.2 +++ b/filters/test/svg/filters-morph-201.svg	Mon Apr 11 10:08:48 2011 +1000
   173.3 @@ -0,0 +1,84 @@
   173.4 +<svg id="svg-root" width="100%" height="100%"
   173.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   173.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   173.7 +  <!--======================================================================-->
   173.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   173.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  173.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  173.11 +  <!--=  All Rights Reserved.                                              =-->
  173.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  173.13 +  <!--======================================================================-->
  173.14 +  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  173.15 +    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  173.16 +    version="$Revision$" testname="$RCSfile$">
  173.17 +    <d:testDescription>
  173.18 +      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feMorphologyElement">
  173.19 +        <p>
  173.20 +          Tests various values for the <a>'radius'</a> attribute on <a>'feMorphology'</a>.
  173.21 +        </p>
  173.22 +      </d:testComponent>
  173.23 +    </d:testDescription>
  173.24 +    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  173.25 +      <p>
  173.26 +        Run the test. No interaction required.
  173.27 +      </p>
  173.28 +    </d:operatorScript>
  173.29 +    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  173.30 +      <p>
  173.31 +        The test has passed if there are six lines of gradually thinning text, with the boldest line of text at the top, and no red visible. 
  173.32 +      </p>
  173.33 +    </d:passCriteria>
  173.34 +  </d:SVGTestCase>
  173.35 +  <title id="test-title">$RCSfile$</title>
  173.36 +  <defs>
  173.37 +    <font-face
  173.38 +      font-family="SVGFreeSansASCII"
  173.39 +      unicode-range="U+0-7F">
  173.40 +      <font-face-src>
  173.41 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  173.42 +      </font-face-src>
  173.43 +    </font-face>
  173.44 +  </defs>
  173.45 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  173.46 +  
  173.47 +    <defs>
  173.48 +      <filter id="morph0">
  173.49 +        <feMorphology type="erode" radius="0"/>
  173.50 +      </filter>
  173.51 +      <filter id="morph1">
  173.52 +        <feMorphology type="erode" radius="0.5"/>
  173.53 +      </filter>
  173.54 +      <filter id="morph2">
  173.55 +        <feMorphology type="erode" radius="1"/>
  173.56 +      </filter>
  173.57 +      <filter id="morph3">
  173.58 +        <feMorphology type="erode" radius="1.5"/>
  173.59 +      </filter>
  173.60 +      <filter id="morph4">
  173.61 +        <feMorphology type="erode" radius="2"/>
  173.62 +      </filter>
  173.63 +      <filter id="morph5">
  173.64 +        <feMorphology type="erode" radius="3"/>
  173.65 +      </filter>
  173.66 +    </defs>
  173.67 +    
  173.68 +    <text x="240" y="80" font-size="48" text-anchor="middle" stroke="red" fill="red">Erode radius=0.0</text>
  173.69 +    <text x="240" y="80" font-size="48" text-anchor="middle" filter="url(#morph0)" stroke="black">Erode radius=0.0</text>
  173.70 +    <text x="240" y="120" font-size="48" text-anchor="middle" filter="url(#morph1)" stroke="black">Erode radius=0.5</text>
  173.71 +    <text x="240" y="160" font-size="48" text-anchor="middle" filter="url(#morph2)" stroke="black">Erode radius=1.0</text>
  173.72 +    <text x="240" y="200" font-size="48" text-anchor="middle" filter="url(#morph3)" stroke="black">Erode radius=1.5</text>
  173.73 +    <text x="240" y="240" font-size="48" text-anchor="middle" filter="url(#morph4)" stroke="black">Erode radius=2.0</text>
  173.74 +    <text x="240" y="280" font-size="48" text-anchor="middle" filter="url(#morph5)" stroke="black">Erode radius=3.0</text>
  173.75 +  </g>
  173.76 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  173.77 +    <text id="revision" x="10" y="340" stroke="none"
  173.78 +      fill="black">$Revision$</text>
  173.79 +  </g>
  173.80 +  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  173.81 +  <!-- comment out this watermark once the test is approved -->
  173.82 +  <g id="draft-watermark">
  173.83 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  173.84 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  173.85 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  173.86 +  </g>
  173.87 +</svg>
   174.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   174.2 +++ b/filters/test/svg/filters-region-201.svg	Mon Apr 11 10:08:48 2011 +1000
   174.3 @@ -0,0 +1,91 @@
   174.4 +<svg id="svg-root" width="100%" height="100%" 
   174.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   174.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   174.7 +  <!--======================================================================-->
   174.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   174.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  174.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  174.11 +  <!--=  All Rights Reserved.                                              =-->
  174.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  174.13 +  <!--======================================================================-->
  174.14 +  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  174.15 +    reviewer="[reviewer]" owner="ED" desc="Test filter effects region" status="created"
  174.16 +    version="$Revision$" testname="$RCSfile$">
  174.17 +    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  174.18 +      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  174.19 +        <p>
  174.20 +          This test tests the x, y, width and height attributes on the 'filter' element. These attributes define the filter effects region.
  174.21 +        </p>
  174.22 +      </d:Reference>
  174.23 +    </d:TestDescription>
  174.24 +    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  174.25 +      <p>
  174.26 +        Load the test, and inspect the image for any traces of red, or misalignments.
  174.27 +      </p>
  174.28 +    </d:OperatorScript>
  174.29 +    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  174.30 +      <p>
  174.31 +        The test has passed if:
  174.32 +        <ul>
  174.33 +          <li>The test shows one green rectangle split into four subrectangles that have equal size</li>
  174.34 +          <li>There is no red visible</li>
  174.35 +        </ul>
  174.36 +      </p>
  174.37 +    </d:PassCriteria>
  174.38 +  </SVGTestCase>
  174.39 +  <title id="test-title">$RCSfile$</title>
  174.40 +  <defs>
  174.41 +    <font-face
  174.42 +      font-family="SVGFreeSansASCII"
  174.43 +      unicode-range="U+0-7F">
  174.44 +      <font-face-src>
  174.45 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  174.46 +      </font-face-src>
  174.47 +    </font-face>
  174.48 +  </defs>
  174.49 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  174.50 +    
  174.51 +    <defs>
  174.52 +      <!-- test small region -->
  174.53 +      <filter id="filter11" x="0" y="0" width="50%" height="50%">
  174.54 +        <feFlood flood-color="lime"/>
  174.55 +      </filter>
  174.56 +      
  174.57 +      <!-- test large region -->
  174.58 +      <filter id="filter12" x="-20%" y="-20%" width="200%" height="200%">
  174.59 +        <feFlood flood-color="lime"/>
  174.60 +      </filter>
  174.61 +      
  174.62 +      <!-- test lacuna values -->
  174.63 +      <filter id="filter21">
  174.64 +        <feFlood flood-color="lime"/>
  174.65 +      </filter>
  174.66 +      
  174.67 +      <!-- test negative width/height values -->
  174.68 +      <filter id="filter22" width="-1" height="-20%">
  174.69 +        <feFlood flood-color="red"/>
  174.70 +      </filter>
  174.71 +    </defs>
  174.72 +    
  174.73 +    <rect x="50" y="40" width="380" height="240" fill="red"/>
  174.74 +    <rect x="50" y="40" width="380" height="240" fill="red" filter="url(#filter11)"/>
  174.75 +    <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  174.76 +    <rect x="66" y="170" width="158" height="100" fill="red" filter="url(#filter21)"/>
  174.77 +    <rect x="240" y="160" width="190" height="120" fill="lime"/>
  174.78 +    <rect x="240" y="160" width="170" height="120" fill="red" filter="url(#filter22)"/>
  174.79 +    <line x1="240" y1="40" x2="240" y2="280" stroke="black"/>
  174.80 +    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  174.81 +    
  174.82 +  </g>
  174.83 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  174.84 +  <text id="revision" x="10" y="340" stroke="none" 
  174.85 +    fill="black">$Revision$</text>
  174.86 +  </g>
  174.87 +  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  174.88 +  <!-- comment out this watermark once the test is approved -->
  174.89 +  <g id="draft-watermark">
  174.90 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  174.91 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  174.92 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  174.93 +  </g>
  174.94 +</svg>
   175.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.2 +++ b/filters/test/svg/filters-region-202.svg	Mon Apr 11 10:08:48 2011 +1000
   175.3 @@ -0,0 +1,82 @@
   175.4 +<svg id="svg-root" width="100%" height="100%" 
   175.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   175.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   175.7 +  <!--======================================================================-->
   175.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   175.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  175.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  175.11 +  <!--=  All Rights Reserved.                                              =-->
  175.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  175.13 +  <!--======================================================================-->
  175.14 +  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  175.15 +    reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created"
  175.16 +    version="$Revision$" testname="$RCSfile$">
  175.17 +    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  175.18 +      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  175.19 +        <p>
  175.20 +          This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'.
  175.21 +        </p>
  175.22 +      </d:Reference>
  175.23 +    </d:TestDescription>
  175.24 +    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  175.25 +      <p>
  175.26 +        Load the test, and inspect the image for any traces of red.
  175.27 +      </p>
  175.28 +    </d:OperatorScript>
  175.29 +    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  175.30 +      <p>
  175.31 +        The test has passed if:
  175.32 +        <ul>
  175.33 +          <li>The test shows one green rectangle split into two subrectangles that have equal size</li>
  175.34 +          <li>There is no red visible</li>
  175.35 +          <li>There is no green visible outside the two stroked subrectangles</li>
  175.36 +        </ul>
  175.37 +      </p>
  175.38 +    </d:PassCriteria>
  175.39 +  </SVGTestCase>
  175.40 +  <title id="test-title">$RCSfile$</title>
  175.41 +  <defs>
  175.42 +    <font-face
  175.43 +      font-family="SVGFreeSansASCII"
  175.44 +      unicode-range="U+0-7F">
  175.45 +      <font-face-src>
  175.46 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  175.47 +      </font-face-src>
  175.48 +    </font-face>
  175.49 +  </defs>
  175.50 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  175.51 +    
  175.52 +    <defs>
  175.53 +      <!-- test percentage resolving -->
  175.54 +      <filter id="filter11" x="50" y="40" width="79.16%" height="33.33%" filterUnits="userSpaceOnUse">
  175.55 +        <feFlood flood-color="lime"/>
  175.56 +      </filter>
  175.57 +            
  175.58 +      <!-- test lacuna values -->
  175.59 +      <filter id="filter12" filterUnits="userSpaceOnUse">
  175.60 +        <feFlood flood-color="lime"/>
  175.61 +      </filter>
  175.62 +    </defs>
  175.63 +    
  175.64 +    <rect x="50" y="40" width="380" height="240" fill="red"/>
  175.65 +    <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/>
  175.66 +    
  175.67 +    <svg x="82" y="170" width="316" height="100" overflow="visible">
  175.68 +      <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  175.69 +    </svg>
  175.70 +    
  175.71 +    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  175.72 +    <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 
  175.73 +  </g>
  175.74 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  175.75 +  <text id="revision" x="10" y="340" stroke="none" 
  175.76 +    fill="black">$Revision$</text>
  175.77 +  </g>
  175.78 +  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  175.79 +  <!-- comment out this watermark once the test is approved -->
  175.80 +  <g id="draft-watermark">
  175.81 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  175.82 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  175.83 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  175.84 +  </g>
  175.85 +</svg>
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/filters/test/svg/filters-region-203.svg	Mon Apr 11 10:08:48 2011 +1000
   176.3 @@ -0,0 +1,82 @@
   176.4 +<svg id="svg-root" width="100%" height="100%" 
   176.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   176.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   176.7 +  <!--======================================================================-->
   176.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   176.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  176.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  176.11 +  <!--=  All Rights Reserved.                                              =-->
  176.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  176.13 +  <!--======================================================================-->
  176.14 +  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  176.15 +    reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created"
  176.16 +    version="$Revision$" testname="$RCSfile$">
  176.17 +    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  176.18 +      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  176.19 +        <p>
  176.20 +          This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'.
  176.21 +        </p>
  176.22 +      </d:Reference>
  176.23 +    </d:TestDescription>
  176.24 +    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  176.25 +      <p>
  176.26 +        Load the test, and inspect the image for any traces of red.
  176.27 +      </p>
  176.28 +    </d:OperatorScript>
  176.29 +    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  176.30 +      <p>
  176.31 +        The test has passed if:
  176.32 +        <ul>
  176.33 +          <li>The test shows one green rectangle split into two subrectangles that have equal size</li>
  176.34 +          <li>There is no red visible</li>
  176.35 +          <li>There is no green visible outside the two stroked subrectangles</li>
  176.36 +        </ul>
  176.37 +      </p>
  176.38 +    </d:PassCriteria>
  176.39 +  </SVGTestCase>
  176.40 +  <title id="test-title">$RCSfile$</title>
  176.41 +  <defs>
  176.42 +    <font-face
  176.43 +      font-family="SVGFreeSansASCII"
  176.44 +      unicode-range="U+0-7F">
  176.45 +      <font-face-src>
  176.46 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  176.47 +      </font-face-src>
  176.48 +    </font-face>
  176.49 +  </defs>
  176.50 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  176.51 +    
  176.52 +    <defs>
  176.53 +      <!-- test percentage resolving -->
  176.54 +      <filter id="filter11" x="0%" y="0%" width="100%" height="100%" primitiveUnits="objectBoundingBox">
  176.55 +        <feFlood flood-color="lime" x="10%" y="10%" width="80%" height="80%"/>
  176.56 +      </filter>
  176.57 +            
  176.58 +      <!-- test lacuna values -->
  176.59 +      <filter id="filter12" filterUnits="userSpaceOnUse">
  176.60 +        <feFlood flood-color="lime"/>
  176.61 +      </filter>
  176.62 +    </defs>
  176.63 +    
  176.64 +    <rect x="50" y="40" width="380" height="240" fill="red"/>
  176.65 +    <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/>
  176.66 +    
  176.67 +    <svg x="82" y="170" width="316" height="100" overflow="visible">
  176.68 +      <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  176.69 +    </svg>
  176.70 +    
  176.71 +    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  176.72 +    <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 
  176.73 +  </g>
  176.74 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  176.75 +  <text id="revision" x="10" y="340" stroke="none" 
  176.76 +    fill="black">$Revision$</text>
  176.77 +  </g>
  176.78 +  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  176.79 +  <!-- comment out this watermark once the test is approved -->
  176.80 +  <g id="draft-watermark">
  176.81 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  176.82 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  176.83 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  176.84 +  </g>
  176.85 +</svg>
   177.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.2 +++ b/filters/test/svg/filters-turb-201.svg	Mon Apr 11 10:08:48 2011 +1000
   177.3 @@ -0,0 +1,85 @@
   177.4 +<svg id="svg-root" width="100%" height="100%"
   177.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   177.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   177.7 +  <!--======================================================================-->
   177.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   177.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  177.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  177.11 +  <!--=  All Rights Reserved.                                              =-->
  177.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  177.13 +  <!--======================================================================-->
  177.14 +  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  177.15 +    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  177.16 +    version="$Revision$" testname="$RCSfile$">
  177.17 +    <d:testDescription>
  177.18 +      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="http://www.w3.org/TR/SVG11/[chapter]">
  177.19 +        <p>
  177.20 +          Tests the <a>'feTurbulence/type'</a> attribute on <a>'feTurbulence'</a>.
  177.21 +        </p>
  177.22 +      </d:testComponent>
  177.23 +    </d:testDescription>
  177.24 +    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  177.25 +      <p>
  177.26 +        There should be three rectangular filtered areas, showing some turbulence noise.
  177.27 +      </p>
  177.28 +    </d:operatorScript>
  177.29 +    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  177.30 +      <p>
  177.31 +        The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different.
  177.32 +        <!-- FIXME: Add better pass criteria. -->
  177.33 +      </p>
  177.34 +    </d:passCriteria>
  177.35 +  </d:SVGTestCase>
  177.36 +  <title id="test-title">$RCSfile$</title>
  177.37 +  <defs>
  177.38 +    <font-face
  177.39 +      font-family="SVGFreeSansASCII"
  177.40 +      unicode-range="U+0-7F">
  177.41 +      <font-face-src>
  177.42 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  177.43 +      </font-face-src>
  177.44 +    </font-face>
  177.45 +  </defs>
  177.46 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  177.47 +  
  177.48 +    <defs>
  177.49 +      <filter id="t1" x="0" y="0" width="1" height="1">
  177.50 +        <feTurbulence baseFrequency="0.15" />
  177.51 +      </filter>
  177.52 +      <filter id="t2" x="0" y="0" width="1" height="1">
  177.53 +        <feTurbulence baseFrequency="0.15" type="fractalNoise"/>
  177.54 +      </filter>
  177.55 +      <filter id="t3" x="0" y="0" width="1" height="1">
  177.56 +        <feTurbulence baseFrequency="0.15" type="turbulence"/>
  177.57 +      </filter>
  177.58 +    </defs>
  177.59 +    
  177.60 +    <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence type attribute</text>
  177.61 +    
  177.62 +    <g transform="translate(80 120)">
  177.63 +      <g transform="translate(0 0)">
  177.64 +        <rect width="100" height="100" filter="url(#t1)"/>
  177.65 +        <text x="50" y="120" text-anchor="middle">lacuna value</text>
  177.66 +      </g>
  177.67 +      <g transform="translate(100 0)">
  177.68 +        <rect width="100" height="100" filter="url(#t2)"/>
  177.69 +        <text x="50" y="120" text-anchor="middle">fractalNoise</text>
  177.70 +      </g>
  177.71 +      <g transform="translate(200 0)">
  177.72 +        <rect width="100" height="100" filter="url(#t3)"/>
  177.73 +        <text x="50" y="120" text-anchor="middle">turbulence</text>
  177.74 +      </g>
  177.75 +    </g>
  177.76 +  </g>
  177.77 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  177.78 +    <text id="revision" x="10" y="340" stroke="none"
  177.79 +      fill="black">$Revision$</text>
  177.80 +  </g>
  177.81 +  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  177.82 +  <!-- comment out this watermark once the test is approved -->
  177.83 +  <g id="draft-watermark">
  177.84 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  177.85 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  177.86 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  177.87 +  </g>
  177.88 +</svg>
   178.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.2 +++ b/filters/test/svg/filters-turb-202.svg	Mon Apr 11 10:08:48 2011 +1000
   178.3 @@ -0,0 +1,88 @@
   178.4 +<svg id="svg-root" width="100%" height="100%"
   178.5 +  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   178.6 +  xmlns:xlink="http://www.w3.org/1999/xlink">
   178.7 +  <!--======================================================================-->
   178.8 +  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   178.9 +  <!--=  Institute of Technology, European Research Consortium for         =-->
  178.10 +  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  178.11 +  <!--=  All Rights Reserved.                                              =-->
  178.12 +  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  178.13 +  <!--======================================================================-->
  178.14 +  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  178.15 +    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  178.16 +    version="$Revision$" testname="$RCSfile$">
  178.17 +    <d:testDescription>
  178.18 +      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="#assert_turbulenceStitchTilesLacunaValue">
  178.19 +        <p>
  178.20 +          Tests the <a>'feTurbulence/stitchTiles'</a> attribute on <a>'feTurbulence'</a>.
  178.21 +        </p>
  178.22 +      </d:testComponent>
  178.23 +    </d:testDescription>
  178.24 +    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  178.25 +      <p>
  178.26 +        There should be three rectangular filtered areas, showing some turbulence noise.
  178.27 +      </p>
  178.28 +    </d:operatorScript>
  178.29 +    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  178.30 +      <p>
  178.31 +        The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different.
  178.32 +        <!-- FIXME: Add better pass criteria. -->
  178.33 +      </p>
  178.34 +    </d:passCriteria>
  178.35 +  </d:SVGTestCase>
  178.36 +  <title id="test-title">$RCSfile$</title>
  178.37 +  <defs>
  178.38 +    <font-face
  178.39 +      font-family="SVGFreeSansASCII"
  178.40 +      unicode-range="U+0-7F">
  178.41 +      <font-face-src>
  178.42 +        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  178.43 +      </font-face-src>
  178.44 +    </font-face>
  178.45 +  </defs>
  178.46 +  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  178.47 +  
  178.48 +    <defs>
  178.49 +      <filter id="t1" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  178.50 +        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" />
  178.51 +        <feTile/>
  178.52 +      </filter>
  178.53 +      <filter id="t2" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  178.54 +        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="stitch"/>
  178.55 +        <feTile/>
  178.56 +      </filter>
  178.57 +      <filter id="t3" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  178.58 +        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="noStitch"/>
  178.59 +        <feTile/>
  178.60 +      </filter>
  178.61 +    </defs>
  178.62 +    
  178.63 +    <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence stitchTiles attribute</text>
  178.64 +    
  178.65 +    <g transform="translate(80 120)">
  178.66 +      <g transform="translate(-10 0)">
  178.67 +        <rect width="100" height="100" filter="url(#t1)"/>
  178.68 +        <text x="50" y="120" text-anchor="middle">lacuna value</text>
  178.69 +      </g>
  178.70 +      <g transform="translate(110 0)">
  178.71 +        <rect width="100" height="100" filter="url(#t2)"/>
  178.72 +        <text x="50" y="120" text-anchor="middle">stitch</text>
  178.73 +      </g>
  178.74 +      <g transform="translate(230 0)">
  178.75 +        <rect width="100" height="100" filter="url(#t3)"/>
  178.76 +        <text x="50" y="120" text-anchor="middle">noStitch</text>
  178.77 +      </g>
  178.78 +    </g>
  178.79 +  </g>
  178.80 +  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  178.81 +    <text id="revision" x="10" y="340" stroke="none"
  178.82 +      fill="black">$Revision$</text>
  178.83 +  </g>
  178.84 +  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  178.85 +  <!-- comment out this watermark once the test is approved -->
  178.86 +  <g id="draft-watermark">
  178.87 +    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  178.88 +    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  178.89 +      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  178.90 +  </g>
  178.91 +</svg>
   179.1 --- a/master/Makefile	Thu Feb 24 10:19:12 2011 +0000
   179.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.3 @@ -1,13 +0,0 @@
   179.4 -# Makefile for SVG Filters.
   179.5 -
   179.6 -TOOLS=../../../../SVG/tools
   179.7 -
   179.8 -# include $(TOOLS)/common.mk
   179.9 -
  179.10 -all : svgfilters.idlx SVGFilterReqs.html SVGFilterPrimer.html SVGFilter.html definitions.xml definitions-primer.xml publish-reqs.xml publish-primer.xml publish.xml $(TOOLS)/publish.xsl
  179.11 -	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-reqs.xml $(TOOLS)/publish.xsl
  179.12 -	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-primer.xml $(TOOLS)/publish.xsl
  179.13 -	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish.xml $(TOOLS)/publish.xsl
  179.14 -
  179.15 -svgfilters.idlx : svgfilters.idl
  179.16 -	java -classpath $(TOOLS)/idlparser/idlparser.jar au.id.mcc.idlparser.IDLToXML svgfilters.idl > svgfilters.idlx
   180.1 --- a/master/SVGFilter.html	Thu Feb 24 10:19:12 2011 +0000
   180.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.3 @@ -1,3774 +0,0 @@
   180.4 -<?xml version="1.0" encoding="UTF-8"?>
   180.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
   180.6 -<html xmlns="http://www.w3.org/1999/xhtml"
   180.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
   180.8 -<head>
   180.9 -  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  180.10 -  <title>Filter Effects 1.0: Language</title>
  180.11 -  <link rel="stylesheet" type="text/css" href="style/svg-style.css" />
  180.12 -  <link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/>
  180.13 -  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
  180.14 -</head>
  180.15 -
  180.16 -<body>
  180.17 -
  180.18 -<div class="head">
  180.19 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  180.20 -  <h1 id="pagetitle">Filter Effects 1.0: Language</h1>
  180.21 -  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  180.22 -  <dl>
  180.23 -    <dt>This version:</dt>
  180.24 -    <dd><edit:thisversion/></dd>
  180.25 -    <dt>Latest version:</dt>
  180.26 -    <dd><edit:latestversion/></dd>
  180.27 -    <dt>Previous version:</dt>
  180.28 -    <dd><edit:previousversion/></dd>
  180.29 -    <dt>Editors:</dt>
  180.30 -    <dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd>
  180.31 -    <dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd>
  180.32 -    <dt>Authors:</dt>
  180.33 -    <dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd>
  180.34 -  </dl>
  180.35 -  <edit:copyright/>
  180.36 -</div>
  180.37 -
  180.38 -<hr/>
  180.39 -
  180.40 -<h2 id="abstract" edit:toc="no">Abstract</h2>
  180.41 -
  180.42 -<p>
  180.43 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  180.44 -</p>
  180.45 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  180.46 -</p>
  180.47 -<p>
  180.48 -This document defines the markup used by SVG filters.
  180.49 -</p>
  180.50 -
  180.51 -<h2 id="status" edit:toc="no">Status of This Document</h2>
  180.52 -
  180.53 -<p><em>This section describes the status of this document at the time of its
  180.54 -publication. Other documents may supersede this document. The latest status
  180.55 -of this document series is maintained at the W3C. </em> </p>
  180.56 -
  180.57 -<p>This document is the first public working draft of this specification.
  180.58 -There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part
  180.59 -1: Primer</a> that lists the ways SVG filters may be used. </p>
  180.60 -
  180.61 -<p>This document has been produced by the <a
  180.62 -href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  180.63 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  180.64 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  180.65 -</p>
  180.66 -
  180.67 -<p>We explicitly invite comments on this specification. Please send them to
  180.68 -<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a
  180.69 -href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>).
  180.70 -Acceptance of the archiving policy is requested automatically upon first post to the
  180.71 -list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with
  180.72 -the word subscribe in the subject line. </p>
  180.73 -
  180.74 -<p>The latest information regarding <a
  180.75 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  180.76 -related to this document is available on the Web. As of this publication, the
  180.77 -SVG Working Group are not aware of any royalty-bearing patents they believe
  180.78 -to be essential to SVG.</p>
  180.79 -
  180.80 -<p>Publication of this document does not imply endorsement by the W3C
  180.81 -membership. A list of current W3C Recommendations and other technical
  180.82 -documents can be found at <a
  180.83 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  180.84 -be updated, replaced, or obsoleted by other documents at any time. It is
  180.85 -inappropriate to cite a W3C Working Draft as anything other than a <em>work
  180.86 -in progress</em>." </p>
  180.87 -
  180.88 -<h2 id="howto" edit:toc="no">How to read this document and give feedback</h2>
  180.89 -
  180.90 -<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a
  180.91 -href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification
  180.92 -can be re-used more easily by other specifications that want to have filter
  180.93 -effects. Some things that have been changed are: error handling is more
  180.94 -similar to SVG Tiny 1.2, the addition of a <a>'feDropShadow'</a> filter primitive and the
  180.95 -possibility to filter bitmap data with the DOM. </p>
  180.96 -
  180.97 -<p>The main purpose of this document is to encourage public feedback. The
  180.98 -best way to give feedback is by sending an email to <a
  180.99 -href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please
 180.100 -include some kind of keyword that identifies the area of the specification
 180.101 -the comment is referring to in the subject line of your message (e.g "Section
 180.102 -X.Y - the 'filter' property" or "Filtering primitive handling"). If you have
 180.103 -comments on multiple areas of this document, then it is probably best to
 180.104 -split those comments into multiple messages. </p>
 180.105 -
 180.106 -<p>The public are welcome to comment on any aspect in this document, but
 180.107 -there are a few areas in which the SVG Working Group are explicitly
 180.108 -requesting feedback. These areas are noted in place within this document.
 180.109 -There is also a specific area related to the specification that is listed
 180.110 -here: </p>
 180.111 -
 180.112 -<edit:fulltoc/>
 180.113 -
 180.114 -<h2 id="introduction">Introduction</h2>
 180.115 -
 180.116 -<p>This chapter describes a declarative filter effects feature set, which
 180.117 -when combined with the other web technologies, like SVG or HTML, can describe
 180.118 -much of the common artwork on the Web in such a way that client-side
 180.119 -generation and alteration can be performed easily. In addition, the ability
 180.120 -to apply filter effects to SVG <a>graphics elements</a> and <a>container elements</a> helps to
 180.121 -maintain the semantic structure of the document, instead of resorting to
 180.122 -images which aside from generally being a fixed resolution tend to obscure
 180.123 -the original semantics of the elements they replace. This is especially true
 180.124 -for effects applied to text.
 180.125 -</p>
 180.126 -
 180.127 -<p>
 180.128 -
 180.129 -</p>
 180.130 -
 180.131 -<p>Note that even though this specification references parts of <a
 180.132 -href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1
 180.133 -implementation. <span class="note">Add link to conformance classes here.</span>
 180.134 -</p>
 180.135 -
 180.136 -<p>This document is normative. </p>
 180.137 -
 180.138 -<p>This document contains explicit conformance criteria that overlap with
 180.139 -some RNG definitions in requirements. If there is any conflict between the
 180.140 -two, the explicit conformance criteria are the definitive reference. </p>
 180.141 -
 180.142 -<p>A filter effect consists of a series of graphics operations that are
 180.143 -applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical
 180.144 -result. The result of the filter effect is rendered to the target device
 180.145 -instead of the original source graphic. The following illustrates the
 180.146 -process:</p>
 180.147 -
 180.148 -<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400">
 180.149 -	<img alt="Image showing source graphic transformed by filter effect"
 180.150 -	src="examples/filters00.png" width="401" height="78" />
 180.151 -</object></p>
 180.152 -<p class="view-as-svg"><a href="examples/filters00.svg">View this example as
 180.153 -SVG (SVG-enabled browsers only)</a><br />
 180.154 - 	</p>
 180.155 -
 180.156 -<h2 id="FilterDefinitions">Definitions</h2>
 180.157 -  <p>When used in this specification, terms have the meanings assigned in this section.</p>
 180.158 -  <dl>
 180.159 -    <dt id="TermNullFilter"><span
 180.160 -    class="SVG-TermDefine">null filter</span></dt>
 180.161 -    <dd>
 180.162 -      <p>
 180.163 -      The null filter output is all transparent black pixels. If applied to an element it means
 180.164 -    that the element (and children if any) becomes invisible. Note that it does not affect event processing.
 180.165 -      </p>
 180.166 -    </dd>
 180.167 -    <dt id="TermTransferFunctionElements"><span
 180.168 -    class="SVG-TermDefine">transfer function elements</span></dt>
 180.169 -    <dd>
 180.170 -      <p>
 180.171 -      The set of elements,
 180.172 -        <a>'feFuncR'</a>, <a>'feFuncG'</a>, <a>'feFuncB'</a>, <a>'feFuncA'</a>, that define the transfer function for the <a>'feComponentTransfer'</a> filter primitive.
 180.173 -      </p>
 180.174 -    </dd>
 180.175 -  <dt id="TermClientBoundingRect"><span
 180.176 -    class="SVG-TermDefine">bounding client rect</span></dt>
 180.177 -	<dd>
 180.178 -    <p>
 180.179 -    The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 
 180.180 -    <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>].
 180.181 -    </p>
 180.182 -	</dd>
 180.183 -  <dt id="TermCSSBoundingBox"><span
 180.184 -    class="SVG-TermDefine">CSS bounding box</span></dt>
 180.185 -	<dd>
 180.186 -    <p>
 180.187 -    The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>].
 180.188 -    </p>
 180.189 -	</dd>
 180.190 -  <dt id="TermCurrentUserCoordinateSystem"><span
 180.191 -    class="SVG-TermDefine">current user coordinate system</span></dt>
 180.192 -	<dd>
 180.193 -    <p>
 180.194 -    For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 
 180.195 -    <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the
 180.196 -    <a href="#TermClientBoundingRect">bounding client rect</a>.
 180.197 -    </p>
 180.198 -    <p>
 180.199 -    For SVG elements see <a>user coordinate system</a>.
 180.200 -    </p>
 180.201 -	</dd>
 180.202 -  <dt id="TermObjectBoundingBoxUnits"><span
 180.203 -    class="SVG-TermDefine">object bounding box units</span></dt>
 180.204 -	<dd>
 180.205 -    For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 
 180.206 -    <p>
 180.207 -    For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 
 180.208 -    </p>
 180.209 -    <p>
 180.210 -    For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a>object bounding box units</a>.
 180.211 -    </p>
 180.212 -	</dd>
 180.213 -	<dt id="TermFilterPrimitiveReference"><span
 180.214 -    class="SVG-TermDefine">&lt;filter-primitive-reference&gt;</span></dt>
 180.215 -	<dd>
 180.216 -		<p>
 180.217 -    A string that identifies a particular filter primitive's output.
 180.218 -    </p>
 180.219 -	</dd>
 180.220 -	<dt id="TermFilterPrimitiveElements"><span
 180.221 -    class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt>
 180.222 -	<dd>
 180.223 -    <p>
 180.224 -		The set of elements that control the output of a <a>'filter element'</a> element, particularly:  
 180.225 -			<a>'feDistantLight'</a>, 
 180.226 -			<a>'fePointLight'</a>, 
 180.227 -			<a>'feSpotLight'</a>,
 180.228 -			<a>'feBlend'</a>,
 180.229 -			<a>'feColorMatrix'</a>,
 180.230 -			<a>'feComponentTransfer'</a>,
 180.231 -			<a>'feComposite'</a>,
 180.232 -			<a>'feConvolveMatrix'</a>,
 180.233 -			<a>'feDiffuseLighting'</a>,
 180.234 -			<a>'feDisplacementMap'</a>,
 180.235 -			<a>'feFlood'</a>,
 180.236 -			<a>'feGaussianBlur'</a>,
 180.237 -			<a>'feImage'</a>,
 180.238 -			<a>'feMerge'</a>,
 180.239 -			<a>'feMorphology'</a>,
 180.240 -			<a>'feOffset'</a>,
 180.241 -			<a>'feSpecularLighting'</a>,
 180.242 -			<a>'feTile'</a>,
 180.243 -			<a>'feTurbulence'</a>,
 180.244 -			<a>'feDropShadow'</a>,
 180.245 -			<a>'feDiffuseSpecular'</a>,
 180.246 -      <a>'feUnsharpMask'</a>,
 180.247 -			<a>'feCustom'</a>.
 180.248 -      </p>
 180.249 -	</dd>
 180.250 -  </dl>
 180.251 -  <br/>
 180.252 -
 180.253 -<h2 id="FilterElement">The <span class="element-name">'filter'</span>
 180.254 -element</h2>
 180.255 -
 180.256 -<edit:elementsummary name='filter'/>
 180.257 -
 180.258 -<edit:with element='filter'>
 180.259 -
 180.260 -<p>The description of the <a>'filter element'</a> element
 180.261 -follows:</p>
 180.262 -
 180.263 -<div class="adef-list">
 180.264 -<p><em>Attribute definitions:</em></p>
 180.265 -<dl>
 180.266 -  <dt id="FilterElementFilterUnitsAttribute"><span
 180.267 -  class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> |
 180.268 -  <em>objectBoundingBox</em>"</dt>
 180.269 -    <dd>See <a>filter effects region</a>.</dd>
 180.270 -  <dt id="FilterElementPrimitiveUnitsAttribute"><span
 180.271 -  class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> |
 180.272 -  <em>objectBoundingBox</em>"</dt>
 180.273 -    <dd>Specifies the coordinate system for the various length values within
 180.274 -      the <a>filter primitives</a> and for the attributes that define the <a>filter primitive subregion</a>.<br />
 180.275 -      If <span class='attr-value'>primitiveUnits="userSpaceOnUse"</span>, any length values
 180.276 -      within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user
 180.277 -      coordinate system</a> in place at the time when the <a>'filter element'</a>
 180.278 -      element is referenced (i.e., the user coordinate system for the element
 180.279 -      referencing the <a>'filter element'</a> element via a <a>'filter property'</a>
 180.280 -      property).<br />
 180.281 -      If <span class='attr-value'>primitiveUnits="objectBoundingBox"</span>, then any length
 180.282 -      values within the filter definitions represent fractions or percentages
 180.283 -      of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box
 180.284 -      units</a>). Note that if only one number was specified in a <a>&lt;number-optional-number&gt;</a> value
 180.285 -	  this number is expanded out before the <a>'filter/primitiveUnits'</a> computation takes place.
 180.286 -	  <br />
 180.287 -      If attribute <a>'filter/primitiveUnits'</a> is not
 180.288 -      specified, then the effect is as if a value of <span
 180.289 -      class="attr-value">userSpaceOnUse</span> were specified.<br />
 180.290 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.291 -
 180.292 -  <dt id="FilterElementFilterMarginUnitsAttribute"><span
 180.293 -  class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> |
 180.294 -  <em>objectBoundingBox</em>"</dt>
 180.295 -    <dd>See <a>filter effects region</a>.</dd>
 180.296 -  <dt id="FilterElementPrimitiveMarginUnitsAttribute"><span
 180.297 -  class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> |
 180.298 -  <em>objectBoundingBox</em>"</dt>
 180.299 -    <dd>Specifies the coordinate system for the margin attributes within the
 180.300 -      <a>filter primitives</a> which is used for determining the <a>filter primitive subregion</a>.<br />
 180.301 -      If <span class='attr-value'>primitiveMarginUnits="userSpaceOnUse"</span>, any margin
 180.302 -      attribute values within the filter definitions represent values in the
 180.303 -      current user coordinate system in place at the time when the <a>'filter element'</a>
 180.304 -      element is referenced (i.e., the <a>user coordinate system</a> for the element
 180.305 -      referencing the <a>'filter element'</a> element via a <a>'filter property'</a>
 180.306 -      property).<br />
 180.307 -      If <span class='attr-value'>primitiveMarginUnits="objectBoundingBox"</span>, then any
 180.308 -      margin attribute values within the filter definitions represent
 180.309 -      fractions or percentages of the bounding box on the referencing element
 180.310 -      (see <a>object bounding box units</a>).<br />
 180.311 -
 180.312 -	  <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a>lacuna value</a> for <a>'filter/primitiveMarginUnits'</a> is <span
 180.313 -      class="attr-value">userSpaceOnUse</span></span>.<br />
 180.314 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.315 -
 180.316 -  <dt id="FilterElementXAttribute">
 180.317 -  <span class="adef">x</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.318 -    <dd>See <a>filter effects region</a>.</dd>
 180.319 -  <dt id="FilterElementYAttribute">
 180.320 -  <span class="adef">y</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.321 -    <dd>See <a>filter effects region</a>.</dd>
 180.322 -  <dt id="FilterElementWidthAttribute"><span class="adef">width</span> =
 180.323 -  "<em><a>&lt;length&gt;</a></em>"</dt>
 180.324 -    <dd>See <a>filter effects region</a>.</dd>
 180.325 -  <dt id="FilterElementHeightAttribute"><span class="adef">height</span> =
 180.326 -  "<em><a>&lt;length&gt;</a></em>"</dt>
 180.327 -    <dd>See <a>filter effects region</a>.</dd>
 180.328 -
 180.329 -  <dt id="FilterPrimitiveMxAttribute">
 180.330 -  <span class="adef">mx</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.331 -    <dd>The margin delta for the x coordinate of the subregion which
 180.332 -      restricts calculation and rendering of the given filter primitive. If
 180.333 -      this attribute is not specified, the effect is as if a value of <span
 180.334 -      class="attr-value">0</span> were specified. See <a
 180.335 -      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
 180.336 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.337 -  <dt id="FilterPrimitiveMyAttribute">
 180.338 -  <span class="adef">my</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.339 -    <dd>The margin delta for the y coordinate of the subregion which
 180.340 -      restricts calculation and rendering of the given filter primitive. If
 180.341 -      this attribute is not specified, the effect is as if a value of <span
 180.342 -      class="attr-value">0</span> were specified. See <a
 180.343 -      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br />
 180.344 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.345 -  <dt id="FilterPrimitiveMwAttribute">
 180.346 -  <span class="adef">mw</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
 180.347 -    <dd>The margin delta for the width of the subregion which restricts
 180.348 -      calculation and rendering of the given filter primitive. If this
 180.349 -      attribute is not specified, the effect is as if a value of <span
 180.350 -      class="attr-value">0</span> were specified. See <a
 180.351 -      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
 180.352 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.353 -  <dt id="FilterPrimitiveMhAttribute">
 180.354 -  <span class="adef">mh</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
 180.355 -    <dd>The margin delta for the height of the subregion which restricts
 180.356 -      calculation and rendering of the given filter primitive. If this
 180.357 -      attribute is not specified, the effect is as if a value of <span
 180.358 -      class="attr-value">0</span> were specified. See <a
 180.359 -      href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br />
 180.360 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.361 -
 180.362 -<dt id="FilterElementFilterResAttribute"><span
 180.363 -  class="adef">filterRes</span> = "<em><a>&lt;number-optional-number&gt;</a></em>"
 180.364 -  </dt>
 180.365 -    <dd>See <a>filter effects region</a>.</dd>
 180.366 - <dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span>
 180.367 -  = "<span class="attr-value">&lt;IRI&gt;</span>"</dt>
 180.368 -    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 180.369 -      to another <a>'filter element'</a> element within
 180.370 -      the current <a>SVG document fragment</a>. Any attributes which are defined on
 180.371 -      the referenced <a>'filter element'</a> element which
 180.372 -      are not defined on this element are inherited by this element. If this
 180.373 -      element has no defined filter nodes, and the referenced element has
 180.374 -      defined filter nodes (possibly due to its own <span
 180.375 -      class="attr-name">href</span> attribute), then this element inherits
 180.376 -      the filter nodes defined from the referenced <a>'filter element'</a> element. Inheritance can be
 180.377 -      indirect to an arbitrary level; thus, if the referenced <a>'filter element'</a> element inherits attributes or its
 180.378 -      filter node specification due to its own <span
 180.379 -      class="attr-name">href</span> attribute, then the current element can
 180.380 -      inherit those attributes or filter node specifications. 
 180.381 -
 180.382 -      <div class="note">
 180.383 -      This attribute is deprecated and should not be used, it's included for
 180.384 -      backwards compatibility reasons only.</div>
 180.385 -      <br />
 180.386 -      <span class="anim-target">Animatable: yes.</span></dd>
 180.387 -</dl>
 180.388 -</div>
 180.389 -
 180.390 -<p>Properties inherit into the <a>'filter element'</a>
 180.391 -element from its ancestors; properties do <em>not</em> inherit from the
 180.392 -element referencing the <a>'filter element'</a>
 180.393 -element.</p>
 180.394 -
 180.395 -<p><a>'filter element'</a> elements are never rendered
 180.396 -directly; their only usage is as something that can be referenced using the
 180.397 -<a>'filter property'</a>
 180.398 -property. The <a>'display'</a> property does not
 180.399 -apply to the <a>'filter element'</a> element; thus, <a>'filter element'</a> elements are not directly rendered even
 180.400 -if the <a>'display'</a> property is set to a value
 180.401 -other than <span class="prop-value">none</span>, and <a>'filter element'</a> elements are available for referencing
 180.402 -even when the <a>'display'</a> property on the <a>'filter element'</a> element or any of its ancestors is set
 180.403 -to <span class="prop-value">none</span>.</p>
 180.404 -<br />
 180.405 -
 180.406 -<h2 id="FilterProperty">The <span class="prop-name">'filter'</span>
 180.407 -property</h2>
 180.408 -
 180.409 -<p>The description of the <span class="prop-name">'filter'</span> property is
 180.410 -as follows:</p>
 180.411 -
 180.412 -<div class="propdef">
 180.413 -<dl>
 180.414 -  <dt id='propdef-filter'><span class='propdef-title prop-name'>'filter'</span></dt>
 180.415 -    <dd>
 180.416 -      <table summary="filter property" class="propinfo" cellspacing="0"
 180.417 -      cellpadding="0">
 180.418 -        <tbody>
 180.419 -          <tr valign="baseline">
 180.420 -            <td><em>Value:</em>  </td>
 180.421 -            <td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a> | none | <a class="noxref"
 180.422 -              href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span
 180.423 -              class="value-inst-inherit noxref">inherit</span></a></td>
 180.424 -          </tr>
 180.425 -          <tr valign="baseline">
 180.426 -            <td><em>Initial:</em>  </td>
 180.427 -            <td>none</td>
 180.428 -          </tr>
 180.429 -          <tr valign="baseline">
 180.430 -            <td><em>Applies to:</em>  </td>
 180.431 -            <td>All elements
 180.432 -<!--              For svg: container elements
 180.433 -              and graphics elements-->
 180.434 -              .</td>
 180.435 -          </tr>
 180.436 -          <tr valign="baseline">
 180.437 -            <td><em>Inherited:</em>  </td>
 180.438 -            <td>no</td>
 180.439 -          </tr>
 180.440 -          <tr valign="baseline">
 180.441 -            <td><em>Percentages:</em>  </td>
 180.442 -            <td>N/A</td>
 180.443 -          </tr>
 180.444 -          <tr valign="baseline">
 180.445 -            <td><em>Media:</em>  </td>
 180.446 -            <td>visual</td>
 180.447 -          </tr>
 180.448 -          <tr valign="baseline">
 180.449 -            <td><em>Animatable:</em>  </td>
 180.450 -            <td>yes</td>
 180.451 -          </tr>
 180.452 -        </tbody>
 180.453 -      </table>
 180.454 -    </dd>
 180.455 -</dl>
 180.456 -</div>
 180.457 -
 180.458 -<dl>
 180.459 -  <dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a></span></dt>
 180.460 -    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 180.461 -      to a <a>'filter element'</a> element which defines the
 180.462 -      filter effects that shall be applied to this element.
 180.463 -    </dd>
 180.464 -  <dt><span class="prop-value">none</span></dt>
 180.465 -    <dd>Do not apply any filter effects to this element.</dd>
 180.466 -</dl>
 180.467 -
 180.468 -<p>If a <a>'filter property'</a> property references a non-existent object or the referenced  
 180.469 -object is not a <a>'filter element'</a> element, then the <a>null filter</a> will be applied instead.
 180.470 -</p>
 180.471 -
 180.472 -<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 
 180.473 -<p>
 180.474 -The application of the <a>'filter property'</a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 
 180.475 -that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 
 180.476 -and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole.
 180.477 -</p>
 180.478 -<p>
 180.479 -The <a>'filter property'</a> property has no effect on the geometry of the target element's CSS boxes, even though <a>'filter property'</a> can cause painting outside of an element's border-box. 
 180.480 -</p>
 180.481 -<p>
 180.482 -The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 
 180.483 -first any filter effect is applied, then any clipping, masking and/or group opacity. 
 180.484 -These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a>'filter property'</a> has no effect on mouse event hit-testing.
 180.485 -</p>
 180.486 -
 180.487 -<br />
 180.488 -
 180.489 -
 180.490 -<h2 id="FilterEffectsRegion">Filter effects region</h2>
 180.491 -
 180.492 -<p>A <a>'filter element'</a>
 180.493 -element can define a region on the canvas to which a given filter effect
 180.494 -applies and can provide a resolution for any intermediate continuous tone
 180.495 -images used to process any raster-based <a>filter primitives</a>. 
 180.496 -
 180.497 -<h3 id="filter-margins">Filter Region extensions</h3>
 180.498 -
 180.499 -<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span>
 180.500 -defines the area upon which it applies. This makes it difficult to develop a
 180.501 -generic filter that can be applied to arbitrary graphics, since the filter
 180.502 -must define a large enough area to cover any graphical object to which it is
 180.503 -applied. An example of this is a generic "drop shadow" filter, which is
 180.504 -commonly specified as a combination of a Gaussian blur <a>'feGaussianBlur'</a>) that is offset <a>'feOffset'</a>) and then composed <a>'feComposite'</a>) with the original source graphic.
 180.505 -Since the shadow has to extend beyond the original graphic's boundaries, the
 180.506 -filter must be defined to have a larger area than the original graphic.
 180.507 -Overestimating this margin has a negative effect on performance, since the
 180.508 -complex filter operation has to touch a larger amount of user space (ie.
 180.509 -pixels). </p>
 180.510 -
 180.511 -<p>In order to solve this problem this spec allows additional control over
 180.512 -the filter region. The outer filter region is expressed by delta to the
 180.513 -<a>'x'</a>, 
 180.514 -<a>'y'</a>, 
 180.515 -<a>'width'</a>, 
 180.516 -<a>'height'</a>
 180.517 - of the input filter region. </p>
 180.518 -
 180.519 -<p>In particular, the <a>'filter/filterMarginUnits'</a>, <a>'filter/primitiveMarginUnits'</a>, 
 180.520 -<a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> are
 180.521 -added to the <a>'filter element'</a> element. The <a>'filter/filterMarginUnits'</a> specifies the coordinate space of
 180.522 -the margin attributes, which are used to increase or decrease the <a>'filter element'</a> element's 
 180.523 -<a>'x'</a>, 
 180.524 -<a>'y'</a>, 
 180.525 -<a>'width'</a> and 
 180.526 -<a>'height'</a>
 180.527 -attributes (once they have been calculated). The <a>'filter/primitiveMarginUnits'</a> specifies the units for the
 180.528 -new margin attributes on the <a>filter primitives</a>, also named 
 180.529 -<a>'mx'</a>, 
 180.530 -<a>'my'</a>, 
 180.531 -<a>'mw'</a>, 
 180.532 -<a>'mh'</a>. 
 180.533 -These margins attribute override those set on the parent <a>'filter element'</a> element. 
 180.534 -Note that this doesn't mean that a <a>'filter primitive'</a> can expand the filter region itself, just that the
 180.535 -coordinate system used for filter primitive's margin attributes can be
 180.536 -different than the one used for the margin attributes on the 
 180.537 -<a>'filter element'</a> element. </p>
 180.538 -
 180.539 -<p>An example of the new attributes, which defines a generic drop shadow
 180.540 -filter: </p>
 180.541 -<pre class="examplesource">	&lt;filter id="dropShadow" x="0" y="0" width="1" height="1"
 180.542 -			  filterMarginUnits="userSpaceOnUse"
 180.543 -			  mx="0" my="0" mw="5" mh="5" &gt;
 180.544 -		  &lt;feGaussianBlur stdDeviation="2" in="SourceAlpha" /&gt;
 180.545 -		  &lt;feOffset dx="2" /&gt;
 180.546 -		  &lt;feMerge&gt;
 180.547 -			   &lt;feMergeNode /&gt;
 180.548 -			   &lt;feMergeNode in="SourceGraphic" /&gt;
 180.549 -		  &lt;/feMerge&gt;
 180.550 -	&lt;/filter&gt; </pre>
 180.551 -
 180.552 -<p>In the above example, the filter region by default covers the entire
 180.553 -bounds of the object (which is not enough to show the shadow). Adding the new
 180.554 -margins extends the width and height by 5 user units each, which is always
 180.555 -enough to display the blur (which has a standard deviation of 2 user units)
 180.556 -and offset (which is another 2 units). </p>
 180.557 -
 180.558 -The <a>'filter element'</a>
 180.559 -element has the following attributes which work together to define the filter
 180.560 -effects region:</p>
 180.561 -
 180.562 - <dl class='definitions unemphasized-names'>
 180.563 -	<dt id="FilterUnitsAttribute"><a>'filterUnits'</a></dt>
 180.564 -	<dd>
 180.565 -	    <p>Defines the coordinate system for attributes <a>'x'</a>, <a>'y'</a>,
 180.566 -	    <a>'width'</a>, <a>'height'</a>.</p>
 180.567 -    
 180.568 -		<p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a>'x'</a>, <a>'y'</a>,
 180.569 -	    <a>'width'</a>, <a>'height'</a> represent values in the current user coordinate
 180.570 -	    system in place at the time when the <a>'filter element'</a> element is referenced (i.e., the
 180.571 -	    user coordinate system for the element referencing the <a>'filter element'</a>
 180.572 -	    element via a <a>'filter property'</a> property).</p>
 180.573 -
 180.574 -	    <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a>'x'</a>, <a>'y'</a>,
 180.575 -	    <a>'width'</a>, <a>'height'</a> represent fractions or percentages of the
 180.576 -	    bounding box on the referencing element (see <a>object bounding box units</a>).</p>
 180.577 -
 180.578 -		<p>The <a>lacuna value</a> for <a>'filterUnits'</a> is <span
 180.579 -	    class="attr-value">objectBoundingBox</span>.</p>
 180.580 -
 180.581 -	    <p><span class="anim-target">Animatable: yes.</span></p>
 180.582 -	</dd>
 180.583 -	<dt id="FilterRegionXYWidthHeightAttributes"><a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a></dt>
 180.584 -    <dd>
 180.585 -		<p>These attributes define a rectangular region on the canvas to which this filter applies.</p>
 180.586 -    	<p>The amount of memory and processing time required to apply the filter are
 180.587 -    	   related to the size of this rectangle and the <a>'filterRes'</a> attribute of the filter.</p>
 180.588 -		<p>The coordinate system for these attributes depends on the value for attribute <a>'filterUnits'</a>.</p>
 180.589 -		<p>The bounds of this rectangle act as a hard clipping region for each <a>filter primitive</a> 
 180.590 -		   included with a given <a>'filter element'</a> element; thus, if the effect of
 180.591 -    	   a given filter primitive would extend beyond the bounds of the rectangle
 180.592 -    	   (this sometimes happens when using a <a>'feGaussianBlur'</a> filter primitive with a
 180.593 -    	   very large <a>'feGaussianBlur/stdDeviation'</a>), parts of the effect will get clipped.</p>
 180.594 -    
 180.595 -		<p>The <a>lacuna value</a> for <a>'x'</a> and <a>'y'</a> is <span class="attr-value">-10%</span>.</p>
 180.596 -		<p>The <a>lacuna value</a> for <a>'width'</a> and <a>'height'</a> is <span class="attr-value">120%</span>.</p>
 180.597 -    	<p>Negative or zero values for <a>'width'</a> or <a>'height'</a> disable rendering of the element which
 180.598 -		   referenced the filter. </p>
 180.599 -		
 180.600 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 180.601 -	</dd>
 180.602 -	<dt id="FilterMarginAttribute"><a>'filterMarginUnits'</a></dt>
 180.603 -    <dd>
 180.604 -		<p>Defines the coordinate system for attributes <a>'mx'</a>, <a>'my'</a>,
 180.605 -    		<a>'mw'</a>, <a>'mh'</a>.</p>
 180.606 -		<p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a>'mx'</a>, <a>'my'</a>,
 180.607 -		    <a>'mw'</a>, <a>'mh'</a> represent values in the current <a>user coordinate system</a>
 180.608 -		    in place at the time when the <a>'filter element'</a> element is referenced (i.e., the
 180.609 -		    <a>user coordinate system</a> for the element referencing the <a>'filter element'</a>
 180.610 -		    element via a <a>'filter property'</a> property).</p>
 180.611 -		<p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a>'mx'</a>, <a>'my'</a>,
 180.612 -	  		<a>'mw'</a>, <a>'mh'</a> represent fractions or percentages of the <a>'bounding box'</a>
 180.613 -    		on the referencing element (see <a>object bounding box units</a>).</p>
 180.614 -    	<p>The <a>lacuna value</a> for <a>'filterMarginUnits'</a> is 
 180.615 -			<span class="attr-value">userSpaceOnUse</span>.</p>
 180.616 -		<p><span class="anim-target">Animatable: yes.</span></p>
 180.617 -	</dd>
 180.618 -  <dt id="FilterRegionMyAttribute"><a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a></dt>
 180.619 -	<dd>
 180.620 -    	<p>Defines the deltas to the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> of the filter region.</p>
 180.621 -	
 180.622 -		<p>After the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> have been calculated for the 
 180.623 -			<a>filter region</a> the <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a> are calculated and added 
 180.624 -			to the <a>filter region</a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 
 180.625 -			<a>filter region</a> has a negative or zero width or height, the rendering of the element which 
 180.626 -			referenced the filter is disabled.</span></p>
 180.627 -	
 180.628 -    	<p>The coordinate system for these attributes depends on the value for
 180.629 -    		attribute <a>'filterMarginUnits'</a>.</p>
 180.630 -
 180.631 -    	<p>The <a>lacuna value</a> for <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> is <span class="attr-value">0</span>.</p>
 180.632 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 180.633 -	</dd>
 180.634 -
 180.635 -	<dt id="FilterRegionFilterRes"><a>'filterRes'</a></dt> 
 180.636 -	<dd>
 180.637 -		<p>Defines the width and height of the intermediate
 180.638 -	    images in pixels. If not provided, then a reasonable default resolution
 180.639 -	    appropriate for the target device will be used. (For displays, an
 180.640 -	    appropriate display resolution, preferably the current display's pixel
 180.641 -	    resolution, is the default. For printing, an appropriate common printer
 180.642 -	    resolution, such as 1200dpi, is the default.)</p>
 180.643 -	    <p>Care should be taken when assigning a non-default value to this
 180.644 -	    attribute. Too small of a value may result in unwanted pixelation in the
 180.645 -	    result. Too large of a value may result in slow processing and large
 180.646 -	    memory usage.</p>
 180.647 -	    <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p>
 180.648 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 180.649 -	</dd>
 180.650 -</dl>
 180.651 -
 180.652 -<p>Note that both of the two possible value for <a>'filterUnits'</a> (i.e., <span
 180.653 -class="attr-value">objectBoundingBox</span> and <span
 180.654 -class="attr-value">userSpaceOnUse</span>) result in a <a>filter region</a> whose
 180.655 -coordinate system has its X-axis and Y-axis each parallel to the X-axis and
 180.656 -Y-axis, respectively, of the <a>user coordinate system</a> for the element to which
 180.657 -the filter will be applied.</p>
 180.658 -
 180.659 -<p class="note implementation">Sometimes implementers can achieve faster performance when the filter
 180.660 -region can be mapped directly to device pixels; thus, for best performance on
 180.661 -display devices, it is suggested that authors define their region such that
 180.662 -the user agent can align the filter region pixel-for-pixel with the
 180.663 -background. In particular, for best filter effects performance, avoid
 180.664 -rotating or skewing the user coordinate system. Explicit values for attribute
 180.665 -<a>'filterRes'</a> can either help or harm performance.
 180.666 -If <a>'filterRes'</a> is smaller than the automatic
 180.667 -(i.e., default) filter resolution, then filter effect might have faster
 180.668 -performance (usually at the expense of quality). If <a>'filterRes'</a> is larger than the automatic (i.e.,
 180.669 -default) filter resolution, then filter effects performance will usually be
 180.670 -slower.</p>
 180.671 -
 180.672 -<p class="note authoring">It is often necessary to provide padding space because the filter effect
 180.673 -might impact bits slightly outside the tight-fitting <a>'bounding box'</a> on a given
 180.674 -object. For these purposes, it is possible to provide negative percentage
 180.675 -values for <a>'x'</a>, <a>'y'</a> and percentages values greater than <span class="attr-value">100%</span> for
 180.676 -<a>'width'</a>, <a>'height'</a>. This, for example, is why the defaults for
 180.677 -the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%"
 180.678 -height="120%"</span>.</p>
 180.679 -
 180.680 -<h2 id="AccessBackgroundImage">Accessing the background image</h2>
 180.681 -
 180.682 -<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a>BackgroundImage</a> and <a>BackgroundAlpha</a>, which each represent an image
 180.683 -snapshot of the canvas under the filter region at the time that the <a
 180.684 -href="#FilterElement"><span class="element-name">'filter'</span></a> element
 180.685 -is invoked. <a>BackgroundImage</a> represents both
 180.686 -the color values and alpha channel of the canvas (i.e., RGBA pixel values),
 180.687 -whereas <a>BackgroundAlpha</a> represents only the
 180.688 -alpha channel.</p>
 180.689 -
 180.690 -<p>Implementations <!--of SVG user agents often-->
 180.691 -will often need to maintain supplemental background image buffers in order to
 180.692 -support the <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images. Sometimes,
 180.693 -the background image buffers will contain an in-memory copy of the
 180.694 -accumulated painting operations on the current canvas.</p>
 180.695 -
 180.696 -<p>Because in-memory image buffers can take up significant system resources, <!--SVG-->
 180.697 -content must explicitly indicate to the <!--SVG-->
 180.698 -user agent that the document needs access to the background image before <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images can be used.
 180.699 -</p>
 180.700 -
 180.701 -A background image is what's been <i>rendered before</i> the current element.
 180.702 -<edit:hostreq>The host language is responsible for defining what <i>rendered before</i> in
 180.703 -this context means
 180.704 -.</edit:hostreq> For SVG, that uses the painter's algorithm, <i>rendered before</i> means
 180.705 -all of the prior elements in pre order traversal previous to the element to
 180.706 -which the filter is applied.
 180.707 -
 180.708 -<p>The property which enables access to the background image is
 180.709 -<a>'enable-background'</a>:</p>
 180.710 -
 180.711 -
 180.712 -<div class="propdef">
 180.713 -<dl>
 180.714 -  <dt id="EnableBackgroundProperty"><span class='propdef-title prop-name'>'enable-background'</span></dt>
 180.715 -    <dd>
 180.716 -      <table summary="enable-background property" class="propinfo"
 180.717 -      cellspacing="0" cellpadding="0">
 180.718 -        <tbody>
 180.719 -          <tr valign="baseline">
 180.720 -            <td><em>Value:</em>  </td>
 180.721 -            <td>accumulate | new [ &lt;x&gt; &lt;y&gt; &lt;width&gt;
 180.722 -              &lt;height&gt; ] | <a class="noxref"
 180.723 -              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
 180.724 -              class="value-inst-inherit noxref">inherit</span></a></td>
 180.725 -          </tr>
 180.726 -          <tr valign="baseline">
 180.727 -            <td><em>Initial:</em>  </td>
 180.728 -            <td>accumulate</td>
 180.729 -          </tr>
 180.730 -          <tr valign="baseline">
 180.731 -            <td><em>Applies to:</em>  </td>
 180.732 -            <td>Typically elements that can contain renderable elements. 
 180.733 -              language is responsible for defining the applicable set of
 180.734 -              elements.
 180.735 -              For SVG: <a>container elements</a></td>
 180.736 -          </tr>
 180.737 -          <tr valign="baseline">
 180.738 -            <td><em>Inherited:</em>  </td>
 180.739 -            <td>no</td>
 180.740 -          </tr>
 180.741 -          <tr valign="baseline">
 180.742 -            <td><em>Percentages:</em>  </td>
 180.743 -            <td>N/A</td>
 180.744 -          </tr>
 180.745 -          <tr valign="baseline">
 180.746 -            <td><em>Media:</em>  </td>
 180.747 -            <td>visual</td>
 180.748 -          </tr>
 180.749 -          <tr valign="baseline">
 180.750 -            <td><em>Animatable:</em>  </td>
 180.751 -            <td>no</td>
 180.752 -          </tr>
 180.753 -        </tbody>
 180.754 -      </table>
 180.755 -    </dd>
 180.756 -</dl>
 180.757 -</div>
 180.758 -<p><a>'enable-background'</a> is only
 180.759 -  applicable to <a>container elements</a>
 180.760 -  and specifies how the <a>SVG user agent</a> manages the accumulation
 180.761 -  of the background image.</p>
 180.762 -
 180.763 -<p>A value of <strong>new</strong> indicates two things:</p>
 180.764 -<ul>
 180.765 -  <li>It enables the ability of children of the current <a>container element</a>
 180.766 -    element to access the background image.</li>
 180.767 -  <li>It indicates that a new (i.e., initially transparent black) background
 180.768 -    image canvas is established and that (in effect) all children of the
 180.769 -    current <a>container element</a>
 180.770 -    element shall be rendered into the new background image canvas in
 180.771 -    addition to being rendered onto the target device.</li>
 180.772 -</ul>
 180.773 -
 180.774 -<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the
 180.775 -initial/default value) depends on context:</p>
 180.776 -<ul>
 180.777 -  <li>If an ancestor <a>container element</a>
 180.778 -    element has a property value of <span class="attr-value">'enable-background:new'</span>, then all
 180.779 -    renderable child elements of the current <a>container element</a>
 180.780 -    element are rendered both onto the parent <a>container element</a>
 180.781 -    element's background image canvas and onto the target device.</li>
 180.782 -  <li>Otherwise, there is no current background image canvas, so it is only
 180.783 -    necessary to render <a>graphics elements</a>
 180.784 -    the renderable elements onto the target device. (No need to render to the
 180.785 -    background image canvas.)</li>
 180.786 -</ul>
 180.787 -
 180.788 -<p>If a filter effect specifies either the <a>BackgroundImage</a> or the 
 180.789 -	<a>BackgroundAlpha</a> pseudo input images and no
 180.790 -ancestor <a>container element</a>
 180.791 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background
 180.792 -image request is technically in error. Processing will proceed without
 180.793 -interruption (i.e., no error message) and a transparent black image shall be
 180.794 -provided in response to the request.</p>
 180.795 -
 180.796 -<p>The optional
 180.797 -<strong>&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt;</strong> 
 180.798 -<span class="specissue">ISSUE: define the type of each of these, probably &lt;number&gt;</span>
 180.799 -	parameters
 180.800 -on the <span class="attr-value">new</span> value indicate the subregion of the <a>container element</a>
 180.801 - element to which <a>'enable-background'</a> applies' user space where access to the
 180.802 -background image is allowed to happen. These parameters enable the user
 180.803 -agent potentially to allocate smaller temporary image buffers than the
 180.804 -default values, which might require the user agent to allocate buffers as
 180.805 -large as the current viewport. Thus, the values
 180.806 -&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt; act as a clipping rectangle
 180.807 -on the background image canvas. If more than zero but less than four of the
 180.808 -values &lt;x&gt;,&lt;y&gt;,&lt;width&gt; and &lt;height&gt; are specified or
 180.809 -if negative or zero values are specified for &lt;width&gt; or &lt;height&gt;,
 180.810 -<a>BackgroundImage</a> and <a>BackgroundAlpha</a> are processed as if background
 180.811 -image processing were not enabled. </p>
 180.812 -
 180.813 -<h3 id="AccessBackgroundImageSVG">Accessing the background image in SVG</h3>
 180.814 -<p>This section only applies to the SVG definition of enable-background.</p>
 180.815 -
 180.816 -<p>Assume you have an element E in the document and that E has a series of
 180.817 -ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note:
 180.818 -A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding
 180.819 -temporary background image offscreen buffer BUF<sub>i</sub>. The contents of
 180.820 -the <em>background image</em> available to a <a href="#FilterElement"><span
 180.821 -class="element-name">'filter'</span></a> referenced by E is defined as
 180.822 -follows:</p>
 180.823 -<ul>
 180.824 -  <li>Find the element A<sub>i</sub> with the smallest subscript i (including
 180.825 -    A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span
 180.826 -    class="prop-name">'enable-background'</span></a> property has the value
 180.827 -    <span class="prop-value">new</span>. (Note: if there is no such ancestor
 180.828 -    element, then there is no background image available to E, in which case
 180.829 -    a transparent black image will be used as E's background image.)</li>
 180.830 -  <li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to
 180.831 -    transparent black. Render all children of A<sub>i</sub> up to but not
 180.832 -    including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted,
 180.833 -    then filtered, clipped, masked and composited using the various painting,
 180.834 -    filtering, clipping, masking and object opacity settings on the given
 180.835 -    child. Any filter effects, masking and group opacity that might be set on
 180.836 -    A<sub>i</sub> do <em>not</em> apply when rendering the children of
 180.837 -    A<sub>i</sub> into BUF<sub>i</sub>.<br />
 180.838 -    (Note that for the case of A<sub>0</sub>=E, the graphical contents of E
 180.839 -    are not rendered into BUF<sub>1</sub> and thus are not part of the
 180.840 -    background image available to E. Instead, the graphical contents of E are
 180.841 -    available via the <a href="#SourceGraphic">SourceGraphic</a> and <a
 180.842 -    href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li>
 180.843 -  <li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite
 180.844 -    BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li>
 180.845 -  <li>The accumulated result (i.e., BUF<sub>n</sub>) represents the
 180.846 -    background image available to E.</li>
 180.847 -</ul>
 180.848 -
 180.849 -<edit:example href="examples/enable-background-01.svg" image="yes" link="yes"/>
 180.850 -
 180.851 -<p>The example above contains five parts, described as follows:</p>
 180.852 -<ol>
 180.853 -  <li>The first set is the reference graphic. The reference graphic consists
 180.854 -    of a red rectangle followed by a 50% transparent <span
 180.855 -    class="element-name">'g'</span>
 180.856 -    element. Inside the <span class="element-name">'g'</span>
 180.857 -    is a green circle that partially overlaps the rectangle and a a blue
 180.858 -    triangle that partially overlaps the circle. The three objects are then
 180.859 -    outlined by a rectangle stroked with a thin blue line. No filters are
 180.860 -    applied to the reference graphic.</li>
 180.861 -  <li>The second set enables background image processing and adds an empty
 180.862 -    <span class="element-name">'g'</span>
 180.863 -    element which invokes the ShiftBGAndBlur filter. This filter takes the
 180.864 -    current accumulated background image (i.e., the entire reference graphic)
 180.865 -    as input, shifts its offscreen down, blurs it, and then writes the result
 180.866 -    to the canvas. Note that the offscreen for the filter is initialized to
 180.867 -    transparent black, which allows the already rendered rectangle, circle
 180.868 -    and triangle to show through after the filter renders its own result to
 180.869 -    the canvas.</li>
 180.870 -  <li>The third set enables background image processing and instead invokes
 180.871 -    the ShiftBGAndBlur filter on the inner <span
 180.872 -    class="element-name">'g'</span>
 180.873 -    element. The accumulated background at the time the filter is applied
 180.874 -    contains only the red rectangle. Because the children of the inner <span
 180.875 -    class="element-name">'g'</span>
 180.876 -    (i.e., the circle and triangle) are not part of the inner <span
 180.877 -    class="element-name">'g'</span>
 180.878 -    element's background and because ShiftBGAndBlur ignores SourceGraphic,
 180.879 -    the children of the inner <span class="element-name">'g'</span>
 180.880 -    do not appear in the result.</li>
 180.881 -  <li>The fourth set enables background image processing and invokes the
 180.882 -    ShiftBGAndBlur on the <span class="element-name">'polygon'</span>
 180.883 -    element that draws the triangle. The accumulated background at the time
 180.884 -    the filter is applied contains the red rectangle plus the green circle
 180.885 -    ignoring the effect of the <span class="prop-name">'opacity'</span>
 180.886 -    property on the inner <span class="element-name">'g'</span>
 180.887 -    element. (Note that the blurred green circle at the bottom does not let
 180.888 -    the red rectangle show through on its left side. This is due to ignoring
 180.889 -    the effect of the <span class="prop-name">'opacity'</span>
 180.890 -    property.) Because the triangle itself is not part of the accumulated
 180.891 -    background and because ShiftBGAndBlur ignores SourceGraphic, the triangle
 180.892 -    does not appear in the result.</li>
 180.893 -  <li>The fifth set is the same as the fourth except that filter
 180.894 -    ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur.
 180.895 -    ShiftBGAndBlur_WithSourceGraphic performs the same effect as
 180.896 -    ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted,
 180.897 -    blurred background image. In this case, SourceGraphic is the blue
 180.898 -    triangle; thus, the result is the same as in the fourth case except that
 180.899 -    the blue triangle now appears.</li>
 180.900 -</ol>
 180.901 -</edit:with>
 180.902 -
 180.903 -<h2 id="FilterPrimitivesOverview">Filter primitives overview</h2>
 180.904 -
 180.905 -<h3 id="FilterPrimitivesOverviewIntro">Overview</h3>
 180.906 -
 180.907 -<p>This section describes the various filter primtives that can be assembled
 180.908 -to achieve a particular filter effect.</p>
 180.909 -
 180.910 -<p>Unless otherwise stated, all image filters operate on premultiplied RGBA
 180.911 -samples. Filters which work more naturally on non-premultiplied data
 180.912 -(<a>'feColorMatrix'</a> and <a>'feComponentTransfer'</a>) will temporarily undo and redo
 180.913 -premultiplication as specified. All raster effect filtering operations take 1
 180.914 -to N input RGBA images, additional attributes as parameters, and produce a
 180.915 -single output RGBA image.</p>
 180.916 -
 180.917 -<p>The RGBA result from each filter primitive will be clamped into the
 180.918 -allowable ranges for colors and opacity values. Thus, for example, the result
 180.919 -from a given <a>filter primitive</a> will have any negative color values or opacity
 180.920 -values adjusted up to color/opacity of zero.</p>
 180.921 -
 180.922 -<p id="filtersColorSpace">The color space in which a particular <a>filter primitive</a> performs its
 180.923 -operations is determined by the value of property <a>'color-interpolation-filters'</a> on the given <a>filter
 180.924 -primitive</a>. A different property, <a>'color-interpolation'</a> determines the color space for
 180.925 -other color operations. Because these two properties have different initial
 180.926 -values (<a>'color-interpolation-filters'</a> has an
 180.927 -initial value of <span class="prop-value">linearRGB</span> whereas <a>'color-interpolation'</a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results
 180.928 -(e.g., when coordinating gradient interpolation with a filtering operation)
 180.929 -it will be necessary to explicitly set <a>'color-interpolation'</a> to <span
 180.930 -class="prop-value">linearRGB</span> or <a>'color-interpolation-filters'</a> to <span
 180.931 -class="prop-value">sRGB</span> on particular elements. Note that the examples
 180.932 -below do not explicitly set either <a>'color-interpolation'</a> or <a>'color-interpolation-filters'</a>, so the initial values for these properties apply to the examples.</p>
 180.933 -
 180.934 -<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a>filter primitives</a> result in undefined pixels. For example,
 180.935 -filter primitive <a>'feOffset'</a> can shift an image down and to the
 180.936 -right, leaving undefined pixels at the top and left. In these cases, the
 180.937 -undefined pixels are set to transparent black.</span></p>
 180.938 -
 180.939 -<h3 id="CommonAttributes">Common attributes</h3>
 180.940 -
 180.941 -<p>The following attributes are available for most of the filter
 180.942 -primitives:</p>
 180.943 -
 180.944 -<div class="adef-list">
 180.945 -<p><em>Attribute definitions:</em></p>
 180.946 -<dl>
 180.947 -  <dt id="FilterPrimitiveXAttribute">
 180.948 -  <span class="adef">x</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.949 -    <dd><p>The minimum x coordinate for the subregion which restricts
 180.950 -      calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
 180.951 -		<p>The <a>lacuna value</a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p>
 180.952 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 180.953 -	</dd>
 180.954 -  <dt id="FilterPrimitiveYAttribute">
 180.955 -  <span class="adef">y</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.956 -    <dd><p>The minimum y coordinate for the subregion which restricts
 180.957 -      calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>. </p>
 180.958 -		<p>The <a>lacuna value</a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p>
 180.959 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 180.960 -	</dd>
 180.961 -  <dt id="FilterPrimitiveWidthAttribute">
 180.962 -  <span class="adef">width</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
 180.963 -    <dd><p>The width of the subregion which restricts calculation and rendering
 180.964 -      of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
 180.965 -      <p>A negative or zero value disables the effect of the given filter
 180.966 -      primitive (i.e., the result is a transparent black image).</p>
 180.967 -	  <p>The <a>lacuna value</a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p>
 180.968 -      <p><span class="anim-target">Animatable: yes.</span></p>
 180.969 -	</dd>
 180.970 -  <dt id="FilterPrimitiveHeightAttribute">
 180.971 -  <span class="adef">height</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
 180.972 -    <dd><p>The height of the subregion which restricts calculation and rendering
 180.973 -      of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p>
 180.974 -      <p>A negative or zero value disables the effect of the given filter
 180.975 -      primitive (i.e., the result is a transparent black image).</p>
 180.976 -	  <p>The <a>lacuna value</a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p>
 180.977 -      <p><span class="anim-target">Animatable: yes.</span></p>
 180.978 -	</dd>
 180.979 -  <dt id="FilterPrimitiveMxAttribute">
 180.980 -  <span class="adef">mx</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.981 -    <dd><p>The margin delta for the x coordinate of the subregion which
 180.982 -      	restricts calculation and rendering of the given <a>filter primitive</a>, 
 180.983 -		see <a>filter primitive subregion</a>.</p> 
 180.984 -		<p>The <a>lacuna value</a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p>
 180.985 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 180.986 -	</dd>
 180.987 -  <dt id="FilterPrimitiveMyAttribute">
 180.988 -  <span class="adef">my</span> = "<em><a>&lt;coordinate&gt;</a></em>"</dt>
 180.989 -    <dd><p>The margin delta for the y coordinate of the subregion which
 180.990 -      restricts calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p>
 180.991 -		<p>The <a>lacuna value</a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p>
 180.992 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 180.993 -	</dd>
 180.994 -  <dt id="FilterPrimitiveMwAttribute">
 180.995 -  <span class="adef">mw</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
 180.996 -    <dd><p>The margin delta for the width of the subregion which restricts
 180.997 -      calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 
 180.998 -		<p>The <a>lacuna value</a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p>
 180.999 -      	<p><span class="anim-target">Animatable: yes.</span></p>
180.1000 -	</dd>
180.1001 -  <dt id="FilterPrimitiveMhAttribute">
180.1002 -  <span class="adef">mh</span> = "<em><a>&lt;length&gt;</a></em>"</dt>
180.1003 -    <dd><p>The margin delta for the height of the subregion which restricts
180.1004 -      calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p>
180.1005 -		<p>The <a>lacuna value</a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p>
180.1006 -      	<p><span class="anim-target">Animatable: yes.</span></p>
180.1007 -	</dd>
180.1008 -  <dt id="FilterPrimitiveResultAttribute">
180.1009 -  <span class="adef">result</span> =
180.1010 -  "<em><a>&lt;filter-primitive-reference&gt;</a></em>"</dt>
180.1011 -    <dd><p>Assigned name for this <a>filter primitive</a>. If supplied, then graphics
180.1012 -      that result from processing this <a>filter primitive</a> can be referenced by
180.1013 -      an <a>'in'</a> attribute on a subsequent filter
180.1014 -      primitive within the same <a>'filter element'</a> element. If no value is
180.1015 -      provided, the output will only be available for re-use as the implicit
180.1016 -      input into the next <a>filter primitive</a> if that <a>filter primitive</a> provides
180.1017 -      no value for its <a>'in'</a> attribute.</p>
180.1018 -      <p>Note that a <a>&lt;filter-primitive-reference&gt;</a> is not an XML
180.1019 -      ID; instead, a <a>&lt;filter-primitive-reference&gt;</a> is only
180.1020 -      meaningful within a given <a>'filter element'</a> element and thus have only
180.1021 -      local scope. It is legal for the same
180.1022 -      <a>&lt;filter-primitive-reference&gt;</a> to appear multiple times
180.1023 -      within the same <a>'filter element'</a> element. When referenced, the
180.1024 -      <a>&lt;filter-primitive-reference&gt;</a> will use the closest
180.1025 -      preceding <a>filter primitive</a> with the given result.</p>
180.1026 -      <p><span class="anim-target">Animatable: yes.</span></p>
180.1027 -	</dd>
180.1028 -  <dt id="FilterPrimitiveInAttribute">
180.1029 -  <span class="adef">in</span> = "<em><a>SourceGraphic</a> | <a>SourceAlpha</a> | <a>BackgroundImage</a> | <a>BackgroundAlpha</a> | <a>FillPaint</a> | <a>StrokePaint</a> |
180.1030 -  <a>&lt;filter-primitive-reference&gt;</a></em>"</dt>
180.1031 -    <dd><p>Identifies input for the given filter primitive. The value can be
180.1032 -      either one of six keywords or can be a string which matches a previous
180.1033 -      <a>'feBlend/result'</a> attribute value within the same <a>'filter element'</a>
180.1034 -      element. If no value is provided and this is the first <a>filter primitive</a>, 
180.1035 -	then this <a>filter primitive</a> will use <a>SourceGraphic</a>
180.1036 -      as its input. If no value is provided and this is a subsequent <a>filter primitive</a>, 
180.1037 -	then this <a>filter primitive</a> will use the result from the
180.1038 -      previous <a>filter primitive</a> as its input.</p> 
180.1039 -      <p>If the value for <span class="attr-name">result</span> appears
180.1040 -      multiple times within a given <a>'filter element'</a> element, then a reference to
180.1041 -      that result will use the closest preceding <a>filter primitive</a> with the
180.1042 -      given value for attribute <a>'feBlend/result'</a>.
180.1043 -      Forward references to results are not allowed, and will be treated as
180.1044 -      if no result was specified. </p>
180.1045 -      <p>Definitions for the six keywords: </p>
180.1046 -      <dl>
180.1047 -        <dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt>
180.1048 -          <dd><p>This keyword represents the graphics elements
180.1049 -            that were the original input into the <a>'filter element'</a> element. For raster
180.1050 -            effects <a>filter primitives</a>, the graphics elements
180.1051 -            will be rasterized into an initially clear RGBA raster in image
180.1052 -            space. Pixels left untouched by the original graphic will be left
180.1053 -            clear. The image is specified to be rendered in linear RGBA
180.1054 -            pixels. The alpha channel of this image captures any
180.1055 -            anti-aliasing specified by SVG. (Since the raster is linear, the
180.1056 -            alpha channel of this image will represent the exact percent
180.1057 -            coverage of each pixel.)</p></dd>
180.1058 -        <dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt>
180.1059 -          <dd><p>This keyword represents the graphics elements
180.1060 -            that were the original input into the <a>'filter element'</a> element. 
180.1061 -			<a>SourceAlpha</a> has all of the same rules
180.1062 -            as <a>SourceGraphic</a> except that only the
180.1063 -            alpha channel is used. The input image is an RGBA image
180.1064 -            consisting of implicitly black color values for the RGB channels,
180.1065 -            but whose alpha channel is the same as <a>SourceGraphic</a>.</p>
180.1066 -			<p class="note implementation">If this option is
180.1067 -            used, then some implementations might need to rasterize the
180.1068 -            graphics elements
180.1069 -            in order to extract the alpha channel.</p>
180.1070 -		</dd>
180.1071 -        <dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt>
180.1072 -          <dd><p>This keyword represents an image snapshot of the canvas under
180.1073 -            the filter region at the time that the <a>'filter element'</a> element was invoked. See
180.1074 -            <a href="#AccessingBackgroundImage">accessing the background
180.1075 -            image</a>.</p>
180.1076 -		  </dd>
180.1077 -        <dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt>
180.1078 -          <dd><p>Same as <a>BackgroundImage</a> except
180.1079 -            only the alpha channel is used. See <a>SourceAlpha</a> and <a
180.1080 -            href="#AccessingBackgroundImage">accessing the background
180.1081 -            image</a>.</p>
180.1082 -		  </dd>
180.1083 -
180.1084 -        <dt id="FillPaint"><span class="attr-value">FillPaint</span></dt>
180.1085 -          <dd>
180.1086 -      <p>This keyword represents the target element <i>rendered filled</i>.</p>
180.1087 -			<p>For svg this keyword represents the value of the <a>'fill'</a>
180.1088 -            property on the target element for the filter effect.</p>
180.1089 -      <p>For non-SVG cases <a>FillPaint</a> generates a transparent black image. 
180.1090 -        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span>
180.1091 -      </p>
180.1092 -			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
180.1093 -			<p>The <a>FillPaint</a> image has conceptually infinite extent. 
180.1094 -			Frequently this image is opaque everywhere, but it might not be if the "paint"
180.1095 -			itself has alpha, as in the case of a gradient or pattern which
180.1096 -			itself includes transparent or semi-transparent parts.</p>
180.1097 -	  	</dd>
180.1098 -        <dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt>
180.1099 -          <dd>
180.1100 -			<p>This keyword represents the target element <i>rendered stroked</i>.</p>
180.1101 -      <p>For svg this keyword represents the value of the <a>'stroke'</a>
180.1102 -         on the target element for the filter effect.</p>
180.1103 -      <p>For non-SVG cases <a>StrokePaint</a> generates a transparent black image. 
180.1104 -        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span>
180.1105 -      </p>
180.1106 -			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
180.1107 -	  		<p>The <a>StrokePaint</a> image has conceptually infinite extent.
180.1108 -			Frequently this image is opaque everywhere, but it 
180.1109 -			might not be if the "paint"
180.1110 -			itself has alpha, as in the case of a gradient or pattern which
180.1111 -			itself includes transparent or semi-transparent parts.
180.1112 -			</p>
180.1113 -		  </dd>
180.1114 -        </dl>
180.1115 -      <p><span class="anim-target">Animatable: yes.</span></p>
180.1116 -	</dd>
180.1117 -  </dl>
180.1118 -</div>
180.1119 -
180.1120 -<h3 id="FilterPrimitiveSubRegion">Filter primitive subregion</h3>
180.1121 -
180.1122 -<edit:with element="feBlend">
180.1123 -<p>
180.1124 -All <a>filter primitives</a> have attributes <a>'x'</a>, <a>'y'</a>,
180.1125 -<a>'width'</a> and <a>'height'</a>, and <a>'mx'</a>,
180.1126 -<a>'my'</a>, <a>'mw'</a> and <a>'mh'</a>, which
180.1127 -together identify a subregion which restricts calculation and rendering of
180.1128 -the given <a>filter primitive</a>. The <a>'x'</a>, <a>'y'</a>,
180.1129 -<a>'width'</a> and <a>'height'</a> attributes are defined
180.1130 -according to the same rules as other <a>filter primitives</a>' coordinate and length
180.1131 -attributes and thus represent values in the coordinate system established by
180.1132 -attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element.
180.1133 -The <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and
180.1134 -<a>'mh'</a> attributes contain deltas to the corresponding
180.1135 -<a>'x'</a>, <a>'y'</a>, <a>'width'</a> and
180.1136 -<a>'height'</a> attributes and contain values in the coordinate
180.1137 -system established by attribute <a>'filter/primitiveMarginUnits'</a> on the <a>'filter element'</a> element.
180.1138 -</p>
180.1139 -
180.1140 -<p><a>'x'</a>, <a>'y'</a>,
180.1141 -<a>'width'</a> and <a>'height'</a> default to the union (i.e., tightest fitting bounding
180.1142 -box) of the subregions defined for all referenced nodes. If there are no
180.1143 -referenced nodes (e.g., for <a>'feImage'</a> or <a>'feTurbulence'</a>), or one or more of the
180.1144 -referenced nodes is a standard input (one of <a>SourceGraphic</a>, <a>SourceAlpha</a>, <a>BackgroundImage</a>, <a>BackgroundAlpha</a>,
180.1145 -<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a
180.1146 -href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for
180.1147 -<a href="#feTileElement"><span class="element-name">'feTile'</span></a>
180.1148 -(which is special because its principal function is to replicate the
180.1149 -referenced node in X and Y and thereby produce a usually larger result), the
180.1150 -default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the
180.1151 -dimensions of the <a>filter region</a>.</p>
180.1152 -
180.1153 -<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>,
180.1154 -<strong>height</strong> have been calculated for the filter primitive
180.1155 -subregion the margin attributes <strong>mx</strong>, <strong>my</strong>,
180.1156 -<strong>mw</strong>, <strong>mh</strong> are calculated and added to the
180.1157 -former to make the <a>filter primitive subregion</a>. If the <a>filter primitive
180.1158 -subregion</a> has a negative or zero width or height, the effect of the filter
180.1159 -primitive is disabled. </p>
180.1160 -
180.1161 -<p>The <a>filter primitive subregion</a> act as a hard clip clipping rectangle for
180.1162 -the filter primitive.</p>
180.1163 -
180.1164 -<p>All intermediate offscreens are defined to not exceed the intersection of
180.1165 -the <a>filter primitive subregion</a> with the <a href="#FilterEffectsRegion">filter
180.1166 -region</a>. The filter region and any of the filter primitive subregions are
180.1167 -to be set up such that all offscreens are made big enough to accommodate any
180.1168 -pixels which even partly intersect with either the filter region or the
180.1169 -filter primitive subregions.</p>
180.1170 -
180.1171 -<p><a>'feTile'</a> references a previous filter primitive and then stitches the tiles together
180.1172 -based on the <a>filter primitive subregion</a> of the referenced filter primitive in
180.1173 -order to fill its own <a>filter primitive subregion</a>.</p>
180.1174 -
180.1175 -<edit:example href="examples/filtersubregion00.svg" image="yes" link="yes"/>
180.1176 -
180.1177 -<p>
180.1178 -In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a>filter primitive subregion</a>. The filter output should be limited to the <a>filter primitive subregion</a>, so you should never see the circles themselves, just the rects that make up the <a>filter primitive subregion</a>. 
180.1179 -</p>
180.1180 -<ul>
180.1181 -<li>
180.1182 -The upper left rect shows an <a>'feFlood'</a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle.
180.1183 -</li>
180.1184 -<li>
180.1185 -The lower left rect shows an <a>'feMerge'</a> that merges <a>SourceGraphic</a> with <a>FillPaint</a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle.
180.1186 -</li>
180.1187 -<li>The upper right rect shows an <a>'feBlend'</a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it.
180.1188 -</li>
180.1189 -</ul>
180.1190 -
180.1191 -</edit:with>
180.1192 -
180.1193 -<h2 id="LightSourceDefinitions">Light source elements and properties</h2>
180.1194 -
180.1195 -<h3 id="LightSourceIntro">Introduction</h3>
180.1196 -
180.1197 -<p>The following sections define the elements that define a light source, <a>'feDistantLight'</a>, 
180.1198 -<a>'fePointLight'</a> and <a>'feSpotLight'</a>,
180.1199 -and property <a>'lighting-color'</a>, which defines the color of the
180.1200 -light.</p>
180.1201 -
180.1202 -<h3 id="feDistantLightElement">Light source <span class="element-name">'feDistantLight'</span></h3>
180.1203 -
180.1204 -<edit:elementsummary name='feDistantLight'/>
180.1205 -
180.1206 -<div class="adef-list">
180.1207 -<p><em>Attribute definitions:</em></p>
180.1208 -<dl>
180.1209 -  <dt id="feDistantLightAzimuthAttribute"><span
180.1210 -  class="adef">azimuth</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1211 -    <dd>Direction angle for the light source on the XY plane (clockwise), in
180.1212 -      degrees.<br />
180.1213 -      If the attribute is not specified, then the effect is as if a value of
180.1214 -      <span class="attr-value">0</span> were specified.<br />
180.1215 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1216 -  <dt id="feDistantLightElevationAttribute"><span
180.1217 -  class="adef">elevation</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1218 -    <dd>Direction angle for the light source on the YZ plane, in degrees.<br
180.1219 -      />
180.1220 -      If the attribute is not specified, then the effect is as if a value of
180.1221 -      <span class="attr-value">0</span> were specified.<br />
180.1222 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1223 -</dl>
180.1224 -</div>
180.1225 -
180.1226 -<h3 id="fePointLightElement">Light source <span class="element-name">'fePointLight'</span></h3>
180.1227 -
180.1228 -<edit:elementsummary name='fePointLight'/>
180.1229 -
180.1230 -<div class="adef-list">
180.1231 -<p><em>Attribute definitions:</em></p>
180.1232 -<dl>
180.1233 -  <dt id="fePointLightXAttribute"><span
180.1234 -  class="adef">x</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1235 -    <dd>X location for the light source in the coordinate system established
180.1236 -      by attribute <a>'filter/primitiveUnits'</a> on the <a
180.1237 -      href="#FilterElement"><span class="element-name">'filter'</span></a>
180.1238 -      element.<br />
180.1239 -      If the attribute is not specified, then the effect is as if a value of
180.1240 -      <span class="attr-value">0</span> were specified.<br />
180.1241 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1242 -  <dt id="fePointLightYAttribute"><span
180.1243 -  class="adef">y</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1244 -    <dd>Y location for the light source in the coordinate system established
180.1245 -      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.1246 -      element.<br />
180.1247 -      If the attribute is not specified, then the effect is as if a value of
180.1248 -      <span class="attr-value">0</span> were specified.<br />
180.1249 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1250 -  <dt id="fePointLightZAttribute"><span
180.1251 -  class="adef">z</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1252 -    <dd>Z location for the light source in the coordinate system established
180.1253 -      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.1254 -      element, assuming that, in the <a>initial coordinate system</a>
180.1255 -      , the positive Z-axis comes out towards the person viewing the content
180.1256 -      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br />
180.1257 -      If the attribute is not specified, then the effect is as if a value of
180.1258 -      <span class="attr-value">0</span> were specified.<br />
180.1259 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1260 -</dl>
180.1261 -</div>
180.1262 -
180.1263 -<h3 id="feSpotLightElement">Light source <span class="element-name">'feSpotLight'</span></h3>
180.1264 -
180.1265 -<edit:elementsummary name='feSpotLight'/>
180.1266 -
180.1267 -<div class="adef-list">
180.1268 -<p><em>Attribute definitions:</em></p>
180.1269 -<dl>
180.1270 -  <dt id="feSpotLightXAttribute"><span
180.1271 -  class="adef">x</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1272 -    <dd>X location for the light source in the coordinate system established
180.1273 -      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.1274 -      element.<br />
180.1275 -      If the attribute is not specified, then the effect is as if a value of
180.1276 -      <span class="attr-value">0</span> were specified.<br />
180.1277 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1278 -  <dt id="feSpotLightYAttribute"><span
180.1279 -  class="adef">y</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1280 -    <dd>Y location for the light source in the coordinate system established
180.1281 -      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.1282 -      element.<br />
180.1283 -      If the attribute is not specified, then the effect is as if a value of
180.1284 -      <span class="attr-value">0</span> were specified.<br />
180.1285 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1286 -  <dt id="feSpotLightZAttribute"><span
180.1287 -  class="adef">z</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1288 -    <dd>Z location for the light source in the coordinate system established
180.1289 -      by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.1290 -      element, assuming that, in the <a>initial coordinate system</a>
180.1291 -      , the positive Z-axis comes out towards the person viewing the content
180.1292 -      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br />
180.1293 -      If the attribute is not specified, then the effect is as if a value of
180.1294 -      <span class="attr-value">0</span> were specified.<br />
180.1295 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1296 -  <dt id="feSpotLightPointsAtXAttribute"><span
180.1297 -  class="adef">pointsAtX</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1298 -    <dd>X location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 
180.1299 -    	on the <a>'filter element'</a>
180.1300 -      element of the point at which the light source is pointing.<br />
180.1301 -      If the attribute is not specified, then the effect is as if a value of
180.1302 -      <span class="attr-value">0</span> were specified.<br />
180.1303 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1304 -  <dt id="feSpotLightPointsAtYAttribute"><span
180.1305 -  class="adef">pointsAtY</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1306 -    <dd>Y location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 
180.1307 -    	on the <a>'filter element'</a> element of the point at which the light source is pointing.<br />
180.1308 -      If the attribute is not specified, then the effect is as if a value of
180.1309 -      <span class="attr-value">0</span> were specified.<br />
180.1310 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1311 -  <dt id="feSpotLightPointsAtZAttribute"><span
180.1312 -  class="adef">pointsAtZ</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1313 -    <dd>Z location in the coordinate system established by the
180.1314 -		    attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element of
180.1315 -		    the point at which the light source is pointing, assuming that, in the
180.1316 -    		<a>initial coordinate system</a>, the positive Z-axis comes out
180.1317 -         towards the person viewing the content and assuming that
180.1318 -         one unit along the Z-axis equals 
180.1319 -         <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">
180.1320 -         one unit in X and Y</a>.<br />
180.1321 -      If the attribute is not specified, then the effect is as if a value of
180.1322 -      <span class="attr-value">0</span> were specified.<br />
180.1323 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1324 -  <dt id="feSpotLightSpecularExponentAttribute"><span
180.1325 -  class="adef">specularExponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1326 -    <dd>Exponent value controlling the focus for the light source.<br />
180.1327 -      If the attribute is not specified, then the effect is as if a value of
180.1328 -      <span class="attr-value">1</span> were specified.<br />
180.1329 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1330 -  <dt id="feSpotLightLimitingConeAngleAttribute"><span
180.1331 -  class="adef">limitingConeAngle</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1332 -    <dd>A limiting cone which restricts the region where the light is
180.1333 -      projected. No light is projected outside the cone. <span
180.1334 -      class="attr-name">limitingConeAngle</span> represents the angle in degrees between
180.1335 -      the spot light axis (i.e. the axis between the light source and the
180.1336 -      point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents
180.1337 -      should apply a smoothing technique such as anti-aliasing at the
180.1338 -      boundary of the cone.</span><br />
180.1339 -      If no value is specified, then no limiting cone will be applied.<br />
180.1340 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1341 -</dl>
180.1342 -</div>
180.1343 -
180.1344 -<h3 id="LightingColorProperty">The <span class="prop-name">'lighting-color'</span> property</h3>
180.1345 -
180.1346 -<p>The <a>'lighting-color'</a> property defines the
180.1347 -color of the light source for <a>filter primitives</a> <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>.</p>
180.1348 -
180.1349 -<div class="propdef">
180.1350 -<dl>
180.1351 -  <dt><span class="index-def" title="'margin-top'"><a
180.1352 -  id="propdef-lighting-color" name="propdef-lighting-color"
180.1353 -  class="propdef-title"><span
180.1354 -  class="prop-name">'lighting-color'</span></a></span></dt>
180.1355 -    <dd>
180.1356 -      <table summary="lighting-color property" class="propinfo"
180.1357 -      cellspacing="0" cellpadding="0">
180.1358 -        <tbody>
180.1359 -          <tr valign="baseline">
180.1360 -            <td><em>Value:</em>  </td>
180.1361 -            <td>currentColor |<br />
180.1362 -              <a>&lt;color&gt;</a>
180.1363 -              [<a>&lt;icccolor&gt;</a>] |<br />
180.1364 -              <a class="noxref"
180.1365 -              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
180.1366 -              class="value-inst-inherit noxref">inherit</span></a></td>
180.1367 -          </tr>
180.1368 -          <tr valign="baseline">
180.1369 -            <td><em>Initial:</em>  </td>
180.1370 -            <td>white</td>
180.1371 -          </tr>
180.1372 -          <tr valign="baseline">
180.1373 -            <td><em>Applies to:</em>  </td>
180.1374 -            <td><a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>
180.1375 -            elements</td>
180.1376 -          </tr>
180.1377 -          <tr valign="baseline">
180.1378 -            <td><em>Inherited:</em>  </td>
180.1379 -            <td>no</td>
180.1380 -          </tr>
180.1381 -          <tr valign="baseline">
180.1382 -            <td><em>Percentages:</em>  </td>
180.1383 -            <td>N/A</td>
180.1384 -          </tr>
180.1385 -          <tr valign="baseline">
180.1386 -            <td><em>Media:</em>  </td>
180.1387 -            <td>visual</td>
180.1388 -          </tr>
180.1389 -          <tr valign="baseline">
180.1390 -            <td><em>Animatable:</em>  </td>
180.1391 -            <td>yes</td>
180.1392 -          </tr>
180.1393 -        </tbody>
180.1394 -      </table>
180.1395 -    </dd>
180.1396 -</dl>
180.1397 -</div>
180.1398 -
180.1399 -<h2 id="feBlendElement">Filter primitive <span class="element-name">'feBlend'</span></h2>
180.1400 -
180.1401 -<edit:elementsummary name='feBlend'/>
180.1402 -
180.1403 -<p>This filter composites two objects together using commonly used imaging
180.1404 -software blending modes. It performs a pixel-wise combination of two input
180.1405 -images.</p>
180.1406 -
180.1407 -<div class="adef-list">
180.1408 -<p><em>Attribute definitions:</em></p>
180.1409 -<dl>
180.1410 -  <dt id="feBlendModeAttribute"><span
180.1411 -  class="adef">mode</span> = "<em>normal | multiply | screen | darken |
180.1412 -  lighten</em>"</dt>
180.1413 -    <dd>One of the image blending modes (see <a
180.1414 -      href="#BlendingTable">table</a> below). Default is: normal.<br />
180.1415 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1416 -  <dt id="feBlendIn2Attribute"><span
180.1417 -  class="adef">in2</span> = "<em>(see <a
180.1418 -  href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
180.1419 -  attribute)</em>"</dt>
180.1420 -    <dd>The second input image to the blending operation. This attribute can
180.1421 -      take on the same values as the <a
180.1422 -      href="#FilterPrimitiveInAttribute"><span
180.1423 -      class="attr-name">in</span></a> attribute.<br />
180.1424 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1425 -</dl>
180.1426 -</div>
180.1427 -
180.1428 -<p>For all feBlend modes, the result opacity is computed as follows:</p>
180.1429 -<pre>qr = 1 - (1-qa)*(1-qb)</pre>
180.1430 -
180.1431 -<p>For the compositing formulas below, the following definitions apply:</p>
180.1432 -<pre>image A = in
180.1433 -image B = in2
180.1434 -cr = Result color (RGB) - premultiplied 
180.1435 -qa = Opacity value at a given pixel for image A 
180.1436 -qb = Opacity value at a given pixel for image B 
180.1437 -ca = Color (RGB) at a given pixel for image A - premultiplied 
180.1438 -cb = Color (RGB) at a given pixel for image B - premultiplied </pre>
180.1439 -
180.1440 -<p id="BlendingTable">The following table
180.1441 -provides the list of available image blending modes:</p>
180.1442 -
180.1443 -<div class="note-editor">
180.1444 -ED: make table look nicer</div>
180.1445 -
180.1446 -<table summary="blending modes" width="500" border="1">
180.1447 -  <tbody>
180.1448 -    <tr>
180.1449 -      <td>Image Blending Mode</td>
180.1450 -      <td>Formula for computing result color</td>
180.1451 -    </tr>
180.1452 -    <tr>
180.1453 -      <td>normal</td>
180.1454 -      <td>cr = (1 - qa) * cb + ca</td>
180.1455 -    </tr>
180.1456 -    <tr>
180.1457 -      <td>multiply</td>
180.1458 -      <td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td>
180.1459 -    </tr>
180.1460 -    <tr>
180.1461 -      <td>screen</td>
180.1462 -      <td>cr = cb + ca - ca * cb</td>
180.1463 -    </tr>
180.1464 -    <tr>
180.1465 -      <td>darken</td>
180.1466 -      <td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td>
180.1467 -    </tr>
180.1468 -    <tr>
180.1469 -      <td>lighten</td>
180.1470 -      <td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td>
180.1471 -    </tr>
180.1472 -  </tbody>
180.1473 -</table>
180.1474 -
180.1475 -<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a
180.1476 -href="#feCompositeOperatorAttribute"><span
180.1477 -class="attr-value">operator="over"</span></a> on the <a>'feComposite'</a>
180.1478 -filter primitive, matches the blending method used by <a>'feMerge'</a> and matches
180.1479 -the <a>simple alpha compositing</a> technique used in SVG for all compositing outside of filter effects.</p>
180.1480 -
180.1481 -<edit:example href="examples/feBlend.svg" image="yes" link="yes"/>
180.1482 -
180.1483 -<h2 id="feColorMatrixElement">Filter primitive <span class="element-name">'feColorMatrix'</span></h2>
180.1484 -
180.1485 -<edit:elementsummary name='feColorMatrix'/>
180.1486 -
180.1487 -<p>This filter applies a matrix transformation:</p>
180.1488 -<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140">
180.1489 -<pre>| R' |     | a00 a01 a02 a03 a04 |   | R |
180.1490 -| G' |     | a10 a11 a12 a13 a14 |   | G |
180.1491 -| B' |  =  | a20 a21 a22 a23 a24 | * | B |
180.1492 -| A' |     | a30 a31 a32 a33 a34 |   | A |
180.1493 -| 1  |     |  0   0   0   0   1  |   | 1 |</pre>
180.1494 -</object>
180.1495 -
180.1496 -<p>on the RGBA color and alpha values of every pixel on the input graphics to
180.1497 -produce a result with a new set of RGBA color and alpha values.</p>
180.1498 -
180.1499 -<p>The calculations are performed on non-premultiplied color values. If the
180.1500 -input graphics consists of premultiplied color values, those values are
180.1501 -automatically converted into non-premultiplied color values for this
180.1502 -operation.</p>
180.1503 -
180.1504 -<p>These matrices often perform an identity mapping in the alpha channel. If
180.1505 -that is the case, an implementation can avoid the costly undoing and redoing
180.1506 -of the premultiplication for all pixels with A = 1.</p>
180.1507 -
180.1508 -<div class="adef-list">
180.1509 -<p><em>Attribute definitions:</em></p>
180.1510 -<dl>
180.1511 -  <dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> =
180.1512 -  "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt>
180.1513 -    <dd>Indicates the type of matrix operation. The keyword <span
180.1514 -      class="attr-name">matrix</span> indicates that a full 5x4 matrix of
180.1515 -      values will be provided. The other keywords represent convenience
180.1516 -      shortcuts to allow commonly used color operations to be performed
180.1517 -      without specifying a complete matrix.<br />
180.1518 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1519 -  <dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> =
180.1520 -  "<em>list of <a>&lt;number&gt;</a>s</em>"</dt>
180.1521 -    <dd>The contents of <span class="attr-name">values</span> depends on the
180.1522 -      value of attribute <a href="#feColorMatrixTypeAttribute"><span
180.1523 -      class="attr-name">type</span></a>: 
180.1524 -      <ul>
180.1525 -        <li>For <span class="attr-value">type="matrix"</span>, <span
180.1526 -          class="attr-name">values</span> is a list of 20 matrix values (a00
180.1527 -          a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a
180.1528 -          comma. For example, the identity matrix could be expressed as: 
180.1529 -          <pre>type="matrix" 
180.1530 -values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"</pre>
180.1531 -        </li>
180.1532 -        <li>For <span class="attr-value">type="saturate"</span>, <span
180.1533 -          class="attr-name">values</span> is a single real number value (0 to
180.1534 -          1). A <span class="attr-value">saturate</span> operation is
180.1535 -          equivalent to the following matrix operation: 
180.1536 -		  <p>
180.1537 -		  <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130">
180.1538 -          <pre>| R' |     |0.213+0.787s  0.715-0.715s  0.072-0.072s 0  0 |   | R |
180.1539 -| G' |     |0.213-0.213s  0.715+0.285s  0.072-0.072s 0  0 |   | G |
180.1540 -| B' |  =  |0.213-0.213s  0.715-0.715s  0.072+0.928s 0  0 | * | B |
180.1541 -| A' |     |           0            0             0  1  0 |   | A |
180.1542 -| 1  |     |           0            0             0  0  1 |   | 1 |</pre>
180.1543 -		  </object>
180.1544 -		</p>
180.1545 -        </li>
180.1546 -        <li>For <span class="attr-value">type="hueRotate"</span>, <span
180.1547 -          class="attr-name">values</span> is a single one real number value
180.1548 -          (degrees). A <span class="attr-value">hueRotate</span> operation is
180.1549 -          equivalent to the following matrix operation: 
180.1550 -		  <p>
180.1551 -		  <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130">
180.1552 -          <pre>| R' |     | a00  a01  a02  0  0 |   | R |
180.1553 -| G' |     | a10  a11  a12  0  0 |   | G |
180.1554 -| B' |  =  | a20  a21  a22  0  0 | * | B |
180.1555 -| A' |     | 0    0    0    1  0 |   | A |
180.1556 -| 1  |     | 0    0    0    0  1 |   | 1 |</pre>
180.1557 -		</object>
180.1558 -		</p>
180.1559 -
180.1560 -          where the terms a00, a01, etc. are calculated as follows: 
180.1561 -		  <p>
180.1562 -		<object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230">
180.1563 -          <pre>| a00 a01 a02 |    [+0.213 +0.715 +0.072]
180.1564 -| a10 a11 a12 | =  [+0.213 +0.715 +0.072] +
180.1565 -| a20 a21 a22 |    [+0.213 +0.715 +0.072]
180.1566 -                        [+0.787 -0.715 -0.072]
180.1567 -cos(hueRotate value) *  [-0.213 +0.285 -0.072] +
180.1568 -                        [-0.213 -0.715 +0.928]
180.1569 -                        [-0.213 -0.715+0.928]
180.1570 -sin(hueRotate value) *  [+0.143 +0.140-0.283]
180.1571 -                        [-0.787 +0.715+0.072]</pre>
180.1572 -		</object>
180.1573 -		</p>
180.1574 -          Thus, the upper left term of the hue matrix turns out to be:
180.1575 -		  <p>
180.1576 -		<object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 
180.1577 -          <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre>
180.1578 -		  </object>
180.1579 -		  </p>
180.1580 -
180.1581 -        </li>
180.1582 -        <li>For <span class="attr-value">type="luminanceToAlpha"</span>,
180.1583 -          <span class="attr-name">values</span> is not applicable. A <span
180.1584 -          class="attr-value">luminanceToAlpha</span> operation is equivalent
180.1585 -          to the following matrix operation: 
180.1586 -		  <p>
180.1587 -		  <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130">
180.1588 -          <pre>   | R' |     |      0        0        0  0  0 |   | R |
180.1589 -   | G' |     |      0        0        0  0  0 |   | G |
180.1590 -   | B' |  =  |      0        0        0  0  0 | * | B |
180.1591 -   | A' |     | 0.2125   0.7154   0.0721  0  0 |   | A |
180.1592 -   | 1  |     |      0        0        0  0  1 |   | 1 |</pre>
180.1593 -   </object>
180.1594 -   </p>
180.1595 -	      </li>
180.1596 -      </ul>
180.1597 -      If the attribute is not specified, then the default behavior depends on
180.1598 -      the value of attribute <a>'feColorMatrix/type'</a>. If <span
180.1599 -      class="attr-value">type="matrix"</span>, then this attribute defaults
180.1600 -      to the identity matrix. If <span
180.1601 -      class="attr-value">type="saturate"</span>, then this attribute defaults
180.1602 -      to the value <span class="attr-value">1</span>, which results in the
180.1603 -      identify matrix. If <span class="attr-value">type="hueRotate"</span>,
180.1604 -      then this attribute defaults to the value <span
180.1605 -      class="attr-value">0</span>, which results in the identify matrix.<br />
180.1606 -      <span class="anim-target">Animatable: yes.</span> </dd>
180.1607 -</dl>
180.1608 -</div>
180.1609 -
180.1610 -<edit:example href="examples/feColorMatrix.svg" image="yes" link="yes"/>
180.1611 -
180.1612 -<h2 id="feComponentTransferElement">Filter primitive <span class="element-name">'feComponentTransfer'</span></h2>
180.1613 -
180.1614 -<edit:elementsummary name='feComponentTransfer'/>
180.1615 -
180.1616 -<p>This filter primitive performs component-wise remapping of data as
180.1617 -follows:</p>
180.1618 -<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R )
180.1619 -G' = <a href="#feFuncGElement">feFuncG</a>( G )
180.1620 -B' = <a href="#feFuncBElement">feFuncB</a>( B )
180.1621 -A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre>
180.1622 -
180.1623 -<p>for every pixel. It allows operations like brightness adjustment, contrast
180.1624 -adjustment, color balance or thresholding.</p>
180.1625 -
180.1626 -<p>The calculations are performed on non-premultiplied color values. If the
180.1627 -input graphics consists of premultiplied color values, those values are
180.1628 -automatically converted into non-premultiplied color values for this
180.1629 -operation. (Note that the undoing and redoing of the premultiplication can be
180.1630 -avoided if <a>'feFuncA'</a> is the identity transform
180.1631 -and all alpha values on the source graphic are set to 1.)</p>
180.1632 -
180.1633 -<p>The child elements of a <a>'feComponentTransfer'</a> element specify the
180.1634 -transfer functions for the four channels:</p>
180.1635 -
180.1636 -<ul id="transferFuncElements">
180.1637 -  <li><a>'feFuncR'</a> — transfer function for the red component of the input graphic</li> 
180.1638 -  <li><a>'feFuncG'</a> — transfer function for the green component of the input graphic</li> 
180.1639 -  <li><a>'feFuncB'</a> — transfer function for the blue component of the input graphic</li> 
180.1640 -  <li><a>'feFuncA'</a> — transfer function for the alpha component of the input graphic</li> 
180.1641 -</ul>
180.1642 -
180.1643 -<p>The following rules apply to the processing of the <a>'feComponentTransfer'</a> element:</p>
180.1644 -<ul>
180.1645 -	<li>If more than one <a>transfer function element</a> of the same kind is specified, the last occurrence is to be used.</li>
180.1646 -	<li>If any of the <a>transfer function elements</a> are unspecified, the <a>'feComponentTransfer'</a> must be processed as if those <a>transfer function elements</a> were specified with their <a>'type'</a> attributes set to <span class="attr-value">'identity'</span>.</li>
180.1647 -</ul>
180.1648 -	
180.1649 -<edit:with element='feFuncR'>
180.1650 -
180.1651 -<div id='feFuncRElement'>
180.1652 -<edit:elementsummary name='feFuncR'/>
180.1653 -</div>
180.1654 -
180.1655 -<div id='feFuncGElement'>
180.1656 -<edit:elementsummary name='feFuncG'/>
180.1657 -</div>
180.1658 -
180.1659 -<div id='feFuncBElement'>
180.1660 -<edit:elementsummary name='feFuncB'/>
180.1661 -</div>
180.1662 -
180.1663 -<div id='feFuncAElement'>
180.1664 -<edit:elementsummary name='feFuncA'/>
180.1665 -</div>
180.1666 -
180.1667 -<p id="TransferFunctionElementAttributes">The attributes below are the
180.1668 -<span class='SVG-TermDefine'>transfer function element attributes</span>,
180.1669 -which apply to the <a>transfer function elements</a>.</p>
180.1670 -
180.1671 -<div class="adef-list">
180.1672 -<p><em>Attribute definitions:</em></p>
180.1673 -<dl>
180.1674 -  <dt id="feComponentTransferTypeAttribute"><span class="adef">type</span>
180.1675 -  = "<em>identity | table | discrete | linear | gamma</em>"</dt>
180.1676 -    <dd><p>Indicates the type of component transfer function. The type of
180.1677 -      function determines the applicability of the other attributes.</p>
180.1678 -      <ul>
180.1679 -        <li>For <span class="attr-value">identity</span>: 
180.1680 -          <pre>C' = C</pre>
180.1681 -        </li>
180.1682 -        <li>For <span class="attr-value">table</span>, the function is
180.1683 -          defined by linear interpolation into a lookup table by attribute <a
180.1684 -          href="#feComponentTransferTableValuesAttribute"><span
180.1685 -          class="attr-name">tableValues</span></a>, which provides a list of
180.1686 -          <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order
180.1687 -          to identify <em>n</em> interpolation ranges. Interpolations use the
180.1688 -          following formula. 
180.1689 -          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
180.1690 -          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
180.1691 -          <p>The result <code>C'</code> is given by:</p>
180.1692 -          <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N *
180.1693 -          (v<sub>k+1</sub> - v<sub>k</sub>)</p>
180.1694 -        </li>
180.1695 -        <li>For <span class="attr-value">discrete</span>, the function is
180.1696 -          defined by the step function defined by attribute <a
180.1697 -          href="#feComponentTransferTableValuesAttribute"><span
180.1698 -          class="attr-name">tableValues</span></a>, which provides a list of
180.1699 -          <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order
180.1700 -          to identify a step function consisting of <em>n</em> steps. The
180.1701 -          step function is defined by the following formula. 
180.1702 -          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
180.1703 -          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
180.1704 -          <p>The result <code>C'</code> is given by:</p>
180.1705 -          <p class="filterformula">C' = v<sub>k</sub></p>
180.1706 -        </li>
180.1707 -        <li>For <span class="attr-value">linear</span>, the function is
180.1708 -          defined by the following linear equation: 
180.1709 -          <p class="filterformula">C' = <a
180.1710 -          href="#feComponentTransferSlopeAttribute"><span
180.1711 -          class="attr-name">slope</span></a> * C + <a
180.1712 -          href="#feComponentTransferInterceptAttribute"><span
180.1713 -          class="attr-name">intercept</span></a></p>
180.1714 -        </li>
180.1715 -        <li>For <span class="attr-value">gamma</span>, the function is
180.1716 -          defined by the following exponential function: 
180.1717 -          <p class="filterformula">C' = <a
180.1718 -          href="#feComponentTransferAmplitudeAttribute"><span
180.1719 -          class="attr-name">amplitude</span></a> * pow(C, <a
180.1720 -          href="#feComponentTransferExponentAttribute"><span
180.1721 -          class="attr-name">exponent</span></a>) + <a
180.1722 -          href="#feComponentTransferOffsetAttribute"><span
180.1723 -          class="attr-name">offset</span></a></p>
180.1724 -        </li>
180.1725 -      </ul>
180.1726 -      <span class="anim-target">Animatable: yes.</span> </dd>
180.1727 -  <dt id="feComponentTransferTableValuesAttribute"><span
180.1728 -  class="adef">tableValues</span> = "<em>(list of <a>&lt;number&gt;</a>s)</em>"</dt>
180.1729 -    <dd>When <span class="attr-value">type="table"</span>, the list of
180.1730 -      <a>&lt;number&gt;</a>
180.1731 -      s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which
180.1732 -      define the lookup table. An empty list results in an identity transfer
180.1733 -      function. If the attribute is not specified, then the effect is as if
180.1734 -      an empty list were provided.<br />
180.1735 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1736 -  <dt id="feComponentTransferSlopeAttribute"><span
180.1737 -  class="adef">slope</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1738 -    <dd>When <span class="attr-value">type="linear"</span>, the slope of the
180.1739 -      linear function.<br />
180.1740 -      If the attribute is not specified, then the effect is as if a value of
180.1741 -      <span class="attr-value">1</span> were specified.<br />
180.1742 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1743 -  <dt id="feComponentTransferInterceptAttribute"><span
180.1744 -  class="adef">intercept</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1745 -    <dd>When <span class="attr-value">type="linear"</span>, the intercept of
180.1746 -      the linear function.<br />
180.1747 -      If the attribute is not specified, then the effect is as if a value of
180.1748 -      <span class="attr-value">0</span> were specified.<br />
180.1749 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1750 -  <dt id="feComponentTransferAmplitudeAttribute"><span
180.1751 -  class="adef">amplitude</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1752 -    <dd>When <span class="attr-value">type="gamma"</span>, the amplitude of
180.1753 -      the gamma function.<br />
180.1754 -      If the attribute is not specified, then the effect is as if a value of
180.1755 -      <span class="attr-value">1</span> were specified.<br />
180.1756 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1757 -  <dt id="feComponentTransferExponentAttribute"><span
180.1758 -  class="adef">exponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1759 -    <dd>When <span class="attr-value">type="gamma"</span>, the exponent of
180.1760 -      the gamma function.<br />
180.1761 -      If the attribute is not specified, then the effect is as if a value of
180.1762 -      <span class="attr-value">1</span> were specified.<br />
180.1763 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1764 -  <dt id="feComponentTransferOffsetAttribute"><span
180.1765 -  class="adef">offset</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1766 -    <dd>When <span class="attr-value">type="gamma"</span>, the offset of the
180.1767 -      gamma function.<br />
180.1768 -      If the attribute is not specified, then the effect is as if a value of
180.1769 -      <span class="attr-value">0</span> were specified.<br />
180.1770 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1771 -</dl>
180.1772 -</div>
180.1773 -</edit:with>
180.1774 -
180.1775 -<edit:example href="examples/feComponentTransfer.svg" image="yes" link="yes"/>
180.1776 -
180.1777 -<h2 id="feCompositeElement">Filter primitive <span class="element-name">'feComposite'</span></h2>
180.1778 -
180.1779 -<edit:elementsummary name='feComposite'/>
180.1780 -
180.1781 -<p>This filter performs the combination of the two input images pixel-wise in
180.1782 -image space using one of the Porter-Duff [<a
180.1783 -href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in,
180.1784 -atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em>
180.1785 -operation (with the result clamped between [0..1]) can be applied.</p>
180.1786 -
180.1787 -<p>The <em>arithmetic</em> operation is useful for combining the output from
180.1788 -the <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> filters with texture
180.1789 -data. It is also useful for implementing <em>dissolve</em>. If the
180.1790 -<em>arithmetic</em> operation is chosen, each result pixel is computed using
180.1791 -the following formula:</p>
180.1792 -<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre>
180.1793 -
180.1794 -<p>For this filter primitive, the extent of the resulting image might grow as
180.1795 -described in the section that describes the <a
180.1796 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
180.1797 -
180.1798 -<div class="adef-list">
180.1799 -<p><em>Attribute definitions:</em></p>
180.1800 -<dl>
180.1801 -  <dt id="feCompositeOperatorAttribute"><span class="adef">operator</span>
180.1802 -  = "<em>over | in | out | atop | xor | arithmetic</em>"</dt>
180.1803 -    <dd>The compositing operation that is to be performed. All of the <span
180.1804 -      class="attr-name">operator</span> types except <span
180.1805 -      class="attr-value">arithmetic</span> match the correspond operation as
180.1806 -      described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span
180.1807 -      class="attr-value">arithmetic</span> operator is described above.<br />
180.1808 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1809 -  <dt id="feCompositeK1Attribute"><span
180.1810 -  class="adef">k1</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1811 -    <dd>Only applicable if <span
180.1812 -      class="attr-value">operator="arithmetic"</span>.<br />
180.1813 -      If the attribute is not specified, the effect is as if a value of "0"
180.1814 -      were specified.<br />
180.1815 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1816 -  <dt id="feCompositeK2Attribute"><span
180.1817 -  class="adef">k2</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1818 -    <dd>Only applicable if <span
180.1819 -      class="attr-value">operator="arithmetic"</span>.<br />
180.1820 -      If the attribute is not specified, the effect is as if a value of "0"
180.1821 -      were specified.<br />
180.1822 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1823 -  <dt id="feCompositeK3Attribute"><span
180.1824 -  class="adef">k3</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1825 -    <dd>Only applicable if <span
180.1826 -      class="attr-value">operator="arithmetic"</span>.<br />
180.1827 -      If the attribute is not specified, the effect is as if a value of "0"
180.1828 -      were specified.<br />
180.1829 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1830 -  <dt id="feCompositeK4Attribute"><span
180.1831 -  class="adef">k4</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.1832 -    <dd>Only applicable if <span
180.1833 -      class="attr-value">operator="arithmetic"</span>.<br />
180.1834 -      If the attribute is not specified, the effect is as if a value of "0"
180.1835 -      were specified.<br />
180.1836 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1837 -  <dt id="feCompositeIn2Attribute">
180.1838 -  <span class="adef">in2</span> = "<em>(see <a
180.1839 -  href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
180.1840 -  attribute)</em>"</dt>
180.1841 -    <dd>The second input image to the compositing operation. This attribute
180.1842 -      can take on the same values as the <a
180.1843 -      href="#FilterPrimitiveInAttribute"><span
180.1844 -      class="attr-name">in</span></a> attribute.<br />
180.1845 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1846 -</dl>
180.1847 -</div>
180.1848 -
180.1849 -<edit:example href="examples/feComposite.svg" image="yes" link="yes"/>
180.1850 -
180.1851 -<h2 id="feConvolveMatrixElement">Filter primitive <span class="element-name">'feConvolveMatrix'</span></h2>
180.1852 -
180.1853 -<edit:elementsummary name='feConvolveMatrix'/>
180.1854 -<edit:with element='feConvolveMatrix'>
180.1855 -
180.1856 -<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution
180.1857 -combines pixels in the input image with neighboring pixels to produce a
180.1858 -resulting image. A wide variety of imaging operations can be achieved through
180.1859 -convolutions, including blurring, edge detection, sharpening, embossing and
180.1860 -beveling.</p>
180.1861 -
180.1862 -<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel)
180.1863 -which describes how a given pixel value in the input image is combined with
180.1864 -its neighboring pixel values to produce a resulting pixel value. Each result
180.1865 -pixel is determined by applying the kernel matrix to the corresponding source
180.1866 -pixel and its neighboring pixels. The basic convolution formula which is
180.1867 -applied to each color value for a given pixel is:</p>
180.1868 -
180.1869 -<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br />
180.1870 -              SUM <sub>I=0 to [<a
180.1871 -href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br />
180.1872 -                SUM <sub>J=0 to [<a
180.1873 -href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br />
180.1874 -                  SOURCE <sub>X-<a>'targetX'</a>+J, Y-<a>'targetY'</a>+I</sub> *  <a>'kernelMatrix'</a><sub><a
180.1875 -href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1,  <a 
180.1876 -href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br />
180.1877 -                } <br />
180.1878 -              } <br />
180.1879 -            ) /  <a>'divisor'</a> +  <a>'bias'</a><br />
180.1880 -</p>
180.1881 -
180.1882 -<div class="note-editor">
180.1883 -ED: Consider making this into mathml</div>
180.1884 -
180.1885 -<p>where "orderX" and "orderY" represent the X and Y values for the <a>'order'</a> attribute, "targetX" represents the value
180.1886 -of the <a>'targetX'</a> attribute, "targetY" represents the
180.1887 -value of the <a>'targetY'</a> attribute, "kernelMatrix" represents the
180.1888 -value of the <a>'kernelMatrix'</a> attribute, "divisor" represents the
180.1889 -value of the <a>'divisor'</a> attribute, and "bias" represents the
180.1890 -value of the <a>'bias'</a> attribute.</p>
180.1891 -
180.1892 -<p>Note in the above formulas that the values in the kernel matrix are
180.1893 -applied such that the kernel matrix is rotated 180 degrees relative to the
180.1894 -source and destination images in order to match convolution theory as
180.1895 -described in many computer graphics textbooks.</p>
180.1896 -
180.1897 -<p>To illustrate, suppose you have a input image which is 5 pixels by 5
180.1898 -pixels, whose color values for one of the color channels are as follows:</p>
180.1899 -<pre>    0  20  40 235 235
180.1900 -  100 120 140 235 235
180.1901 -  200 220 240 235 235
180.1902 -  225 225 255 255 255
180.1903 -  225 225 255 255 255</pre>
180.1904 -
180.1905 -<div class="note-editor">
180.1906 -ED: Consider making this into mathml</div>
180.1907 -
180.1908 -<p>and you define a 3-by-3 convolution kernel as follows:</p>
180.1909 -<pre>  1 2 3
180.1910 -  4 5 6
180.1911 -  7 8 9</pre>
180.1912 -
180.1913 -<div class="note-editor">
180.1914 -ED: Consider making this into mathml</div>
180.1915 -
180.1916 -<p>Let's focus on the color value at the second row and second column of the
180.1917 -image (source pixel value is 120). Assuming the simplest case (where the
180.1918 -input image's pixel grid aligns perfectly with the kernel's pixel grid) and
180.1919 -assuming default values for attributes <a>'divisor'</a>, <a>'targetX'</a> and
180.1920 -<a>'targetY'</a>, then resulting color value will
180.1921 -be:</p>
180.1922 -<pre>(9*  0 + 8* 20 + 7* 40 +
180.1923 -6*100 + 5*120 + 4*140 +
180.1924 -3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre>
180.1925 -
180.1926 -<div class="note-editor">
180.1927 -ED: Consider making this into mathml</div>
180.1928 -
180.1929 -<p>Because they operate on pixels, matrix convolutions are inherently
180.1930 -resolution-dependent. To make <a>'feConvolveMatrix'</a> produce resolution-independent
180.1931 -results, an explicit value should be provided for either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element
180.1932 -and/or attribute <a>'kernelUnitLength'</a>.</p>
180.1933 -
180.1934 -<p><a>'kernelUnitLength'</a>, in combination with the other
180.1935 -attributes, defines an implicit pixel grid in the filter effects coordinate
180.1936 -system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid
180.1937 -established by <a>'kernelUnitLength'</a> is not scaled to match the
180.1938 -pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the
180.1939 -input image will be temporarily rescaled to match its pixels with <a>'kernelUnitLength'</a>. The convolution happens on the
180.1940 -resampled image. After applying the convolution, the image is resampled back
180.1941 -to the original resolution.</p>
180.1942 -
180.1943 -<p>When the image must be resampled to match the coordinate system defined by
180.1944 -<a>'kernelUnitLength'</a> prior to convolution, or
180.1945 -resampled to match the device coordinate system after convolution, it is
180.1946 -recommended that high quality viewers make use of appropriate interpolation
180.1947 -techniques, for example bilinear or bicubic. Depending on the speed of the
180.1948 -available interpolents, this choice may be affected by the <a>'image-rendering'</a> property setting. Note that
180.1949 -implementations might choose approaches that minimize or eliminate resampling
180.1950 -when not necessary to produce proper results, such as when the document is
180.1951 -zoomed out such that <a>'kernelUnitLength'</a> is
180.1952 -considerably smaller than a device pixel.</p>
180.1953 -
180.1954 -<div class="adef-list">
180.1955 -<p><em>Attribute definitions:</em></p>
180.1956 -<dl>
180.1957 -  <dt id="feConvolveMatrixElementOrderAttribute"><span
180.1958 -  class="adef">order</span> = "<span
180.1959 -  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
180.1960 -    <dd>Indicates the number of cells in each dimension for <a>'kernelMatrix'</a>. The values provided must be
180.1961 -      <a>&lt;integer&gt;</a>
180.1962 -      s greater than zero. The first number, &lt;orderX&gt;, indicates the
180.1963 -      number of columns in the matrix. The second number, &lt;orderY&gt;,
180.1964 -      indicates the number of rows in the matrix. If &lt;orderY&gt; is not
180.1965 -      provided, it defaults to &lt;orderX&gt;.<br />
180.1966 -      A typical value is order="3". It is recommended that only small values
180.1967 -      (e.g., 3) be used; higher values may result in very high CPU overhead
180.1968 -      and usually do not produce results that justify the impact on
180.1969 -      performance.<br />
180.1970 -      If the attribute is not specified, the effect is as if a value of "3"
180.1971 -      were specified.<br />
180.1972 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1973 -  <dt id="feConvolveMatrixElementKernelMatrixAttribute"><span
180.1974 -  class="adef">kernelMatrix</span> = "<span class="attr-value">&lt;list of
180.1975 -  numbers&gt;</span>"</dt>
180.1976 -    <dd>The list of <a>&lt;number&gt;</a>
180.1977 -      s that make up the kernel matrix for the convolution. Values are
180.1978 -      separated by space characters and/or a comma. The number of entries in
180.1979 -      the list must equal &lt;orderX&gt; times &lt;orderY&gt;.<br />
180.1980 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1981 -  <dt id="feConvolveMatrixElementDivisorAttribute"><span
180.1982 -  class="adef">divisor</span> = "<span
180.1983 -  class="attr-value"><a>&lt;number&gt;</a></span>"</dt>
180.1984 -    <dd>After applying the <span class="attr-name">kernelMatrix</span> to the
180.1985 -      input image to yield a number, that number is divided by <a>'divisor'</a> to yield the final destination color
180.1986 -      value. A divisor that is the sum of all the matrix values tends to have
180.1987 -      an evening effect on the overall color intensity of the result. If the
180.1988 -      specified divisor is zero then the default value will be used instead.
180.1989 -      The default value is the sum of all values in kernelMatrix, with the
180.1990 -      exception that if the sum is zero, then the divisor is set to 1.<br />
180.1991 -      <span class="anim-target">Animatable: yes.</span></dd>
180.1992 -  <dt id="feConvolveMatrixElementBiasAttribute"><span
180.1993 -  class="adef">bias</span> = "<span
180.1994 -  class="attr-value"><a>&lt;number&gt;</a></span>"</dt>
180.1995 -    <dd>After applying the <span class="attr-name">kernelMatrix</span> to the
180.1996 -      input image to yield a number and applying the <a>'divisor'</a>, the <a>'bias'</a> attribute is added to each component. One
180.1997 -      application of <a>'bias'</a> is when it is
180.1998 -      desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If
180.1999 -      <a>'bias'</a> is not specified, then the effect
180.2000 -      is as if a value of zero were specified.<br />
180.2001 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2002 -  <dt id="feConvolveMatrixElementTargetXAttribute"><span
180.2003 -  class="adef">targetX</span> = "<span
180.2004 -  class="attr-value"><a>&lt;integer&gt;</a></span>"</dt>
180.2005 -    <dd>Determines the positioning in X of the convolution matrix relative to
180.2006 -      a given target pixel in the input image. The leftmost column of the
180.2007 -      matrix is column number zero. The value must be such that: 0 &lt;=
180.2008 -      targetX &lt; orderX. By default, the convolution matrix is centered in
180.2009 -      X over each pixel of the input image (i.e., targetX = floor ( orderX /
180.2010 -      2 )).<br />
180.2011 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2012 -  <dt id="feConvolveMatrixElementTargetYAttribute"><span
180.2013 -  class="adef">targetY</span> = "<span
180.2014 -  class="attr-value"><a>&lt;integer&gt;</a></span>"</dt>
180.2015 -    <dd>Determines the positioning in Y of the convolution matrix relative to
180.2016 -      a given target pixel in the input image. The topmost row of the matrix
180.2017 -      is row number zero. The value must be such that: 0 &lt;= targetY &lt;
180.2018 -      orderY. By default, the convolution matrix is centered in Y over each
180.2019 -      pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br />
180.2020 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2021 -  <dt id="feConvolveMatrixElementEdgeModeAttribute"><span
180.2022 -  class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap |
180.2023 -  none</span>"</dt>
180.2024 -    <dd><p>Determines how to extend the input image as necessary with color
180.2025 -      values so that the matrix operations can be applied when the kernel is
180.2026 -      positioned at or near the edge of the input image.</p>
180.2027 -      <p>"duplicate" indicates that the input image is extended along each of
180.2028 -      its borders as necessary by duplicating the color values at the given
180.2029 -      edge of the input image.</p>
180.2030 -      <pre>Original N-by-M image, where m=M-1 and n=N-1:
180.2031 -          11 12 ... 1m 1M
180.2032 -          21 22 ... 2m 2M
180.2033 -          .. .. ... .. ..
180.2034 -          n1 n2 ... nm nM
180.2035 -          N1 N2 ... Nm NM
180.2036 -Extended by two pixels using "duplicate":
180.2037 -  11 11   11 12 ... 1m 1M   1M 1M
180.2038 -  11 11   11 12 ... 1m 1M   1M 1M
180.2039 -  11 11   11 12 ... 1m 1M   1M 1M
180.2040 -  21 21   21 22 ... 2m 2M   2M 2M
180.2041 -  .. ..   .. .. ... .. ..   .. ..
180.2042 -  n1 n1   n1 n2 ... nm nM   nM nM
180.2043 -  N1 N1   N1 N2 ... Nm NM   NM NM
180.2044 -  N1 N1   N1 N2 ... Nm NM   NM NM
180.2045 -  N1 N1   N1 N2 ... Nm NM   NM NM</pre>
180.2046 -
180.2047 -      <div class="note-editor">
180.2048 -      ED: Consider making this into mathml</div>
180.2049 -      <p>"wrap" indicates that the input image is extended by taking the
180.2050 -      color values from the opposite edge of the image.</p>
180.2051 -      <pre>Extended by two pixels using "wrap":
180.2052 -  nm nM   n1 n2 ... nm nM   n1 n2
180.2053 -  Nm NM   N1 N2 ... Nm NM   N1 N2
180.2054 -  1m 1M   11 12 ... 1m 1M   11 12
180.2055 -  2m 2M   21 22 ... 2m 2M   21 22
180.2056 -  .. ..   .. .. ... .. ..   .. ..
180.2057 -  nm nM   n1 n2 ... nm nM   n1 n2
180.2058 -  Nm NM   N1 N2 ... Nm NM   N1 N2
180.2059 -  1m 1M   11 12 ... 1m 1M   11 12
180.2060 -  2m 2M   21 22 ... 2m 2M   21 22</pre>
180.2061 -
180.2062 -      <div class="note-editor">
180.2063 -      ED: Consider making this into mathml</div>
180.2064 -      <p>"none" indicates that the input image is extended with pixel values
180.2065 -      of zero for R, G, B and A.</p>
180.2066 -      <p><span class="anim-target">Animatable: yes.</span></p>
180.2067 -    </dd>
180.2068 -  <dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span
180.2069 -  class="adef">kernelUnitLength</span> = "<span
180.2070 -  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
180.2071 -    <dd>The first number is the &lt;dx&gt; value. The second number is the
180.2072 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
180.2073 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
180.2074 -      current filter units (i.e., units as determined by the value of
180.2075 -      attribute <a>'filter/primitiveUnits'</a>) between successive columns
180.2076 -      and rows, respectively, in the <a>'kernelMatrix'</a>. By specifying value(s) for 
180.2077 -      <a>'kernelUnitLength'</a>, the kernel becomes defined
180.2078 -      in a scalable, abstract coordinate system. If <a>'kernelUnitLength'</a> is not specified, the default
180.2079 -      value is one pixel in the offscreen bitmap, which is a pixel-based
180.2080 -      coordinate system, and thus potentially not scalable. For some level of
180.2081 -      consistency across display media and user agents, it is necessary that
180.2082 -      a value be provided for at least one of <a>'filter/filterRes'</a> and <a>'kernelUnitLength'</a>. 
180.2083 -      In some implementations, the most consistent results and the fastest performance will be achieved if
180.2084 -      the pixel grid of the temporary offscreen images aligns with the pixel
180.2085 -      grid of the kernel.<br />
180.2086 -      If a negative or zero value is specified the default value will be used
180.2087 -      instead. <br />
180.2088 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2089 -  <dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span
180.2090 -  class="adef">preserveAlpha</span> = "<span class="attr-value">false |
180.2091 -  true</span>"</dt>
180.2092 -    <dd>A value of <span class="attr-value">false</span> indicates that the
180.2093 -      convolution will apply to all channels, including the alpha channel.<br
180.2094 -      />
180.2095 -      A value of <span class="attr-value">true</span> indicates that the
180.2096 -      convolution will only apply to the color channels. In this case, the
180.2097 -      filter will temporarily unpremultiply the color component values, apply
180.2098 -      the kernel, and then re-premultiply at the end.<br />
180.2099 -      If <a>'preserveAlpha'</a> is not specified, then
180.2100 -      the effect is as if a value of <span class="attr-value">false</span>
180.2101 -      were specified.<br />
180.2102 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2103 -</dl>
180.2104 -</div>
180.2105 -
180.2106 -</edit:with>
180.2107 -
180.2108 -<h2 id="feDiffuseLightingElement">Filter primitive <span
180.2109 -class="element-name">'feDiffuseLighting'</span></h2>
180.2110 -
180.2111 -<edit:elementsummary name='feDiffuseLighting'/>
180.2112 -
180.2113 -<p>This filter primitive lights an image using the alpha channel as a bump
180.2114 -map. The resulting image is an RGBA opaque image based on the light color
180.2115 -with alpha = 1.0 everywhere. The lighting calculation follows the standard
180.2116 -diffuse component of the Phong lighting model. The resulting image depends on
180.2117 -the light color, light position and surface geometry of the input bump
180.2118 -map.</p>
180.2119 -
180.2120 -<p>The light map produced by this filter primitive can be combined with a
180.2121 -texture image using the multiply term of the <em>arithmetic</em> <a>'feComposite'</a> compositing method. Multiple
180.2122 -light sources can be simulated by adding several of these light maps together
180.2123 -before applying it to the texture image.</p>
180.2124 -
180.2125 -<p>The formulas below make use of 3x3 filters. Because they operate on
180.2126 -pixels, such filters are inherently resolution-dependent. To make <a>'feDiffuseLighting'</a> produce
180.2127 -resolution-independent results, an explicit value should be provided for
180.2128 -either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element
180.2129 -and/or attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p>
180.2130 -
180.2131 -<p><a>'feDiffuseLighting/kernelUnitLength'</a>, in combination with the other
180.2132 -attributes, defines an implicit pixel grid in the filter effects coordinate
180.2133 -system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid
180.2134 -established by <a>'feDiffuseLighting/kernelUnitLength'</a> is not scaled to match the
180.2135 -pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the
180.2136 -input image will be temporarily rescaled to match its pixels with <a>'feDiffuseLighting/kernelUnitLength'</a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back
180.2137 -to its original resolution.</p>
180.2138 -
180.2139 -<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example
180.2140 -bilinear or bicubic.</span> Depending on the speed of the available interpolents,
180.2141 -this choice may be affected by the <a>'image-rendering'</a> property setting. Note that
180.2142 -implementations might choose approaches that minimize or eliminate resampling
180.2143 -when not necessary to produce proper results, such as when the document is
180.2144 -zoomed out such that <a>'feDiffuseLighting/kernelUnitLength'</a> is
180.2145 -considerably smaller than a device pixel.</p>
180.2146 -
180.2147 -<p>For the formulas that follow, the
180.2148 -<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is
180.2149 -defined as:</p>
180.2150 -
180.2151 -<div class="note-editor">
180.2152 -ED: Consider making the following in mathml</div>
180.2153 -
180.2154 -<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) =
180.2155 -sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p>
180.2156 -
180.2157 -<p>The resulting RGBA image is computed as follows:</p>
180.2158 -
180.2159 -<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L *
180.2160 -L<sub>r</sub><br />
180.2161 -D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br />
180.2162 -D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br />
180.2163 -D<sub>a</sub> = 1.0</p>
180.2164 -
180.2165 -<p>where</p>
180.2166 -<dl>
180.2167 -    <dd>k<sub>d</sub> = diffuse lighting constant<br />
180.2168 -      N = surface normal unit vector, a function of x and y<br />
180.2169 -      L = unit vector pointing from surface to light, a function of x and y
180.2170 -      in the point and spot light cases<br />
180.2171 -      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a
180.2172 -      function of x and y in the spot light case</dd>
180.2173 -</dl>
180.2174 -
180.2175 -<p>N is a function of x and y and depends on the surface gradient as
180.2176 -follows:</p>
180.2177 -
180.2178 -<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p>
180.2179 -
180.2180 -<p class="filterformula">Z (x,y) = surfaceScale *  A<sub>in</sub>(x,y)</p>
180.2181 -
180.2182 -<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter.
180.2183 -Different filter kernels are used depending on whether the given pixel is on
180.2184 -the interior or an edge. For each case, the formula is:</p>
180.2185 -
180.2186 -<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale *
180.2187 -FACTOR<sub>x</sub> *<br />
180.2188 -           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) +
180.2189 -K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br />
180.2190 -            K <sub>x</sub>(0,1)*I(x-dx,y)   +
180.2191 -K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br />
180.2192 -            K <sub>x</sub>(0,2)*I(x-dx,y+dy) +
180.2193 -K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br />
180.2194 -N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br />
180.2195 -           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) +
180.2196 -K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br />
180.2197 -            K <sub>y</sub>(0,1)*I(x-dx,y)   +
180.2198 -K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br />
180.2199 -            K <sub>y</sub>(0,2)*I(x-dx,y+dy) +
180.2200 -K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br />
180.2201 -N<sub>z</sub> (x,y) = 1.0<br />
180.2202 -<br />
180.2203 -N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) /
180.2204 -Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p>
180.2205 -
180.2206 -<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g.,
180.2207 -<code>I(x-dx,y-dy)</code>), represent deltas relative to a given
180.2208 -<code>(x,y)</code> position for the purpose of estimating the slope of the
180.2209 -surface at that point. These deltas are determined by the value (explicit or
180.2210 -implicit) of attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p>
180.2211 -
180.2212 -<table summary="feDiffuseLighting formulas" border="1">
180.2213 -  <colgroup><col width="33.3%" /><col width="33.3%" /><col width="*"
180.2214 -  /></colgroup>
180.2215 -  <tbody>
180.2216 -    <tr>
180.2217 -      <td><p>Top/left corner:</p>
180.2218 -
180.2219 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
180.2220 -        K<sub>x</sub> =<br />
180.2221 -            |  0  0  0 |<br />
180.2222 -            |  0 -2  2 |<br />
180.2223 -            |  0 -1  1 |<br />
180.2224 -        <br />
180.2225 -        FACTOR<sub>y</sub>=2/(3*dy)<br />
180.2226 -        K<sub>y</sub> =  <br />
180.2227 -            |  0  0  0 |<br />
180.2228 -            |  0 -2 -1 |<br />
180.2229 -            |  0  2  1 |</p>
180.2230 -      </td>
180.2231 -      <td><p>Top row:</p>
180.2232 -
180.2233 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br />
180.2234 -        K<sub>x</sub> =<br />
180.2235 -            |  0  0  0 |<br />
180.2236 -            | -2  0  2 |<br />
180.2237 -            | -1  0  1 |<br />
180.2238 -        <br />
180.2239 -        FACTOR<sub>y</sub>=1/(2*dy)<br />
180.2240 -        K<sub>y</sub> =  <br />
180.2241 -            |  0  0  0 |<br />
180.2242 -            | -1 -2 -1 |<br />
180.2243 -            |  1  2  1 |</p>
180.2244 -      </td>
180.2245 -      <td><p>Top/right corner:</p>
180.2246 -
180.2247 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
180.2248 -        K<sub>x</sub> =<br />
180.2249 -            |  0  0  0 |<br />
180.2250 -            | -2  2  0 |<br />
180.2251 -            | -1  1  0 |<br />
180.2252 -        <br />
180.2253 -        FACTOR<sub>y</sub>=2/(3*dy)<br />
180.2254 -        K<sub>y</sub> =  <br />
180.2255 -            |  0  0  0 |<br />
180.2256 -            | -1 -2  0 |<br />
180.2257 -            |  1  2  0 |</p>
180.2258 -      </td>
180.2259 -    </tr>
180.2260 -    <tr>
180.2261 -      <td><p>Left column:</p>
180.2262 -
180.2263 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br />
180.2264 -        K<sub>x</sub> =<br />
180.2265 -            | 0 -1  1 |<br />
180.2266 -            | 0 -2  2 |<br />
180.2267 -            | 0 -1  1 |<br />
180.2268 -        <br />
180.2269 -        FACTOR<sub>y</sub>=1/(3*dy)<br />
180.2270 -        K<sub>y</sub> =  <br />
180.2271 -            |  0 -2 -1 |<br />
180.2272 -            |  0  0  0 |<br />
180.2273 -            |  0  2  1 |</p>
180.2274 -      </td>
180.2275 -      <td><p>Interior pixels:</p>
180.2276 -
180.2277 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br />
180.2278 -        K<sub>x</sub> =<br />
180.2279 -            | -1  0  1 |<br />
180.2280 -            | -2  0  2 |<br />
180.2281 -            | -1  0  1 |<br />
180.2282 -        <br />
180.2283 -        FACTOR<sub>y</sub>=1/(4*dy)<br />
180.2284 -        K<sub>y</sub> =  <br />
180.2285 -            | -1 -2 -1 |<br />
180.2286 -            |  0  0  0 |<br />
180.2287 -            |  1  2  1 |</p>
180.2288 -      </td>
180.2289 -      <td><p>Right column:</p>
180.2290 -
180.2291 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br />
180.2292 -        K<sub>x</sub> =<br />
180.2293 -            | -1  1  0|<br />
180.2294 -            | -2  2  0|<br />
180.2295 -            | -1  1  0|<br />
180.2296 -        <br />
180.2297 -        FACTOR<sub>y</sub>=1/(3*dy)<br />
180.2298 -        K<sub>y</sub> =  <br />
180.2299 -            | -1 -2  0 |<br />
180.2300 -            |  0  0  0 |<br />
180.2301 -            |  1  2  0 |</p>
180.2302 -      </td>
180.2303 -    </tr>
180.2304 -    <tr>
180.2305 -      <td><p>Bottom/left corner:</p>
180.2306 -
180.2307 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
180.2308 -        K<sub>x</sub> =<br />
180.2309 -            | 0 -1  1 |<br />
180.2310 -            | 0 -2  2 |<br />
180.2311 -            | 0  0  0 |<br />
180.2312 -        <br />
180.2313 -        FACTOR<sub>y</sub>=2/(3*dy)<br />
180.2314 -        K<sub>y</sub> =  <br />
180.2315 -            |  0 -2 -1 |<br />
180.2316 -            |  0  2  1 |<br />
180.2317 -            |  0  0  0 |</p>
180.2318 -      </td>
180.2319 -      <td><p>Bottom row:</p>
180.2320 -
180.2321 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br />
180.2322 -        K<sub>x</sub> =<br />
180.2323 -            | -1  0  1 |<br />
180.2324 -            | -2  0  2 |<br />
180.2325 -            |  0  0  0 |<br />
180.2326 -        <br />
180.2327 -        FACTOR<sub>y</sub>=1/(2*dy)<br />
180.2328 -        K<sub>y</sub> =  <br />
180.2329 -            | -1 -2 -1 |<br />
180.2330 -            |  1  2  1 |<br />
180.2331 -            |  0  0  0 |</p>
180.2332 -      </td>
180.2333 -      <td><p>Bottom/right corner:</p>
180.2334 -
180.2335 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br />
180.2336 -        K<sub>x</sub> =<br />
180.2337 -            | -1  1  0 |<br />
180.2338 -            | -2  2  0 |<br />
180.2339 -            |  0  0  0 |<br />
180.2340 -        <br />
180.2341 -        FACTOR<sub>y</sub>=2/(3*dy)<br />
180.2342 -        K<sub>y</sub> =  <br />
180.2343 -            | -1 -2  0 |<br />
180.2344 -            |  1  2  0 |<br />
180.2345 -            |  0  0  0 |</p>
180.2346 -      </td>
180.2347 -    </tr>
180.2348 -  </tbody>
180.2349 -</table>
180.2350 -
180.2351 -<p>L, the unit vector from the image sample to the light, is calculated as
180.2352 -follows:</p>
180.2353 -
180.2354 -<p>For Infinite light sources it is constant:</p>
180.2355 -
180.2356 -<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br />
180.2357 -L<sub>y</sub> = sin(azimuth)*cos(elevation)<br />
180.2358 -L<sub>z</sub> = sin(elevation)</p>
180.2359 -
180.2360 -<p>For Point and spot lights it is a function of position:</p>
180.2361 -
180.2362 -<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br />
180.2363 -L<sub>y</sub> = Light<sub>y</sub> - y<br />
180.2364 -L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br />
180.2365 -<br />
180.2366 -L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>,
180.2367 -L<sub>y</sub>, L<sub>z</sub>)</p>
180.2368 -
180.2369 -<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the
180.2370 -input light position.</p>
180.2371 -
180.2372 -<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a
180.2373 -function of position in the spot light case only:</p>
180.2374 -
180.2375 -<p class="filterformula">L<sub>r</sub> =
180.2376 -Light<sub>r</sub>*pow((-L.S),specularExponent)<br />
180.2377 -L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br />
180.2378 -L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p>
180.2379 -
180.2380 -<p>where S is the unit vector pointing from the light to the point
180.2381 -(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p>
180.2382 -
180.2383 -<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br />
180.2384 -S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br />
180.2385 -S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br />
180.2386 -<br />
180.2387 -S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>,
180.2388 -S<sub>y</sub>, S<sub>z</sub>)</p>
180.2389 -
180.2390 -<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> =
180.2391 -L<sub>b</sub> = 0). If <a>'feSpotLight/limitingConeAngle'</a> is specified, -L.S &lt; cos(limitingConeAngle) also indicates that no light is present.</p>
180.2392 -
180.2393 -<div class="adef-list">
180.2394 -<p><em>Attribute definitions:</em></p>
180.2395 -<dl>
180.2396 -  <dt id="feDiffuseLightingSurfaceScaleAttribute"><span
180.2397 -  class="adef">surfaceScale</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.2398 -    <dd>height of surface when A<sub>in</sub> = 1.<br />
180.2399 -      If the attribute is not specified, then the effect is as if a value of
180.2400 -      <span class="attr-value">1</span> were specified.<br />
180.2401 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2402 -  <dt id="feDiffuseLightingDiffuseConstantAttribute"><span
180.2403 -  class="adef">diffuseConstant</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.2404 -    <dd>kd in Phong lighting model. In SVG, this can be any non-negative
180.2405 -      number.<br />
180.2406 -      If the attribute is not specified, then the effect is as if a value of
180.2407 -      <span class="attr-value">1</span> were specified.<br />
180.2408 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2409 -  <dt id="feDiffuseLightingKernelUnitLengthAttribute"><span
180.2410 -  class="adef">kernelUnitLength</span> = "<span
180.2411 -  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
180.2412 -    <dd>The first number is the &lt;dx&gt; value. The second number is the
180.2413 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
180.2414 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
180.2415 -      current filter units (i.e., units as determined by the value of
180.2416 -      attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and
180.2417 -      <code>dy</code>, respectively, in the <a
180.2418 -      href="#SurfaceNormalCalculations">surface normal calculation
180.2419 -      formulas</a>. By specifying value(s) for <span
180.2420 -      class="attr-name">kernelUnitLength</span>, the kernel becomes defined
180.2421 -      in a scalable, abstract coordinate system. If <span
180.2422 -      class="attr-name">kernelUnitLength</span> is not specified, the
180.2423 -      <code>dx</code> and <code>dy</code> values should represent very small
180.2424 -      deltas relative to a given <code>(x,y)</code> position, which might be
180.2425 -      implemented in some cases as one pixel in the intermediate image
180.2426 -      offscreen bitmap, which is a pixel-based coordinate system, and thus
180.2427 -      potentially not scalable. For some level of consistency across display
180.2428 -      media and user agents, it is necessary that a value be provided for at
180.2429 -      least one of <a>'filter/filterRes'</a> and <span
180.2430 -      class="attr-name">kernelUnitLength</span>. Discussion of intermediate
180.2431 -      images are in the <a href="#Introduction">Introduction</a> and in the
180.2432 -      description of attribute <a>'filter/filterRes'</a>.<br />
180.2433 -      If a negative or zero value is specified the default value will be used
180.2434 -      instead. <br />
180.2435 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2436 -</dl>
180.2437 -</div>
180.2438 -
180.2439 -<p>The light source is defined by one of the child elements <a>'feDistantLight'</a>, 
180.2440 -<a>'fePointLight'</a> or <a>'feSpotLight'</a>. The light color is specified
180.2441 -by property <a>'lighting-color'</a>.</p>
180.2442 -
180.2443 -<h2 id="feDisplacementMapElement">Filter primitive <span class="element-name">'feDisplacementMap'</span></h2>
180.2444 -
180.2445 -<edit:elementsummary name='feDisplacementMap'/>
180.2446 -
180.2447 -<p>This filter primitive uses the pixels values from the image from <a>'feDisplacementMap/in2'</a>
180.2448 -to spatially displace the image from <a>'in'</a>.
180.2449 -This is the transformation to be performed:</p>
180.2450 -
180.2451 -<pre>	P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5))
180.2452 -	</pre>
180.2453 -
180.2454 -<p>where P(x,y) is the input image, <a>'in'</a>, and
180.2455 -P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of
180.2456 -the channel designated by the <a>'feDisplacementMap/xChannelSelector'</a> and
180.2457 -<a>'feDisplacementMap/yChannelSelector'</a>. For example, to use the R component of <a>'feDisplacementMap/in2'</a>
180.2458 -to control displacement in x and the G component of Image2 to control
180.2459 -displacement in y, set <a>'feDisplacementMap/xChannelSelector'</a> to <span class="attr-value">"R"</span> and
180.2460 -<a>'feDisplacementMap/yChannelSelector'</a> to <span class="attr-value">"G"</span>.</p>
180.2461 -
180.2462 -<p>The displacement map, <a>'feDisplacementMap/in2'</a>, defines the inverse of the mapping
180.2463 -performed.</p>
180.2464 -
180.2465 -<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a>'feDisplacementMap/in2'</a> are performed using non-premultiplied color values. If the image from <a>'feDisplacementMap/in2'</a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p>
180.2466 -
180.2467 -<p>This filter can have arbitrary non-localized effect on the input which
180.2468 -might require substantial buffering in the processing pipeline. However with
180.2469 -this formulation, any intermediate buffering needs can be determined by
180.2470 -<a>'feDisplacementMap/scale'</a> which represents the maximum range of displacement in either x
180.2471 -or y.</p>
180.2472 -
180.2473 -<p>When applying this filter, the source pixel location will often lie
180.2474 -between several source pixels. In this case it is recommended that high
180.2475 -quality viewers apply an interpolent on the surrounding pixels, for example
180.2476 -bilinear or bicubic, rather than simply selecting the nearest source pixel.
180.2477 -Depending on the speed of the available interpolents, this choice may be
180.2478 -affected by the <a>'image-rendering'</a> property
180.2479 -setting.</p>
180.2480 -
180.2481 -<p>The <a>'color-interpolation-filters'</a> property only applies to the 
180.2482 -  <a>'feDisplacementMap/in2'</a> source image and does not apply to the <a>'in'</a> source image.
180.2483 -  The <a>'in'</a> source image must remain in its current color space.
180.2484 -</p>
180.2485 -
180.2486 -<div class="adef-list">
180.2487 -<p><em>Attribute definitions:</em></p>
180.2488 -<dl>
180.2489 -  <dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span>
180.2490 -  = "<em><a>&lt;number&gt;</a></em>"</dt>
180.2491 -    <dd>Displacement scale factor. The amount is expressed in the coordinate
180.2492 -      system established by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.2493 -      element.<br />
180.2494 -      When the value of this attribute is <span class="attr-value">0</span>,
180.2495 -      this operation has no effect on the source image.<br />
180.2496 -      <p>The <a>lacuna value</a> for <a>'feDisplacementMap/scale'</a> is <span class="attr-value">0</span>.</p>
180.2497 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2498 -  <dt id="feDisplacementMapXChannelSelectorAttribute"><span
180.2499 -  class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt>
180.2500 -    <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the x-axis.
180.2501 -    The <a>lacuna value</a> for <a>'xChannelSelector'</a> is <span class="attr-value">A</span>.
180.2502 -    <br />
180.2503 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2504 -  <dt id="feDisplacementMapYChannelSelectorAttribute"><span
180.2505 -  class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt>
180.2506 -    <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the y-axis.
180.2507 -    The <a>lacuna value</a> for <a>'yChannelSelector'</a> is <span class="attr-value">A</span>.
180.2508 -    <br />
180.2509 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2510 -  <dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> =
180.2511 -  "<em>(see <a>'in'</a> attribute)</em>"</dt>
180.2512 -    <dd>The second input image, which is used to displace the pixels in the
180.2513 -      image from attribute <a>'in'</a>. This attribute can take on the same
180.2514 -      values as the <a>'in'</a> attribute.<br />
180.2515 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2516 -</dl>
180.2517 -</div>
180.2518 -
180.2519 -<h2 id="feFloodElement">Filter primitive <span
180.2520 -class="element-name">'feFlood'</span></h2>
180.2521 -
180.2522 -<edit:elementsummary name='feFlood'/>
180.2523 -
180.2524 -<p>This filter primitive creates a rectangle filled with the color and
180.2525 -opacity values from properties <span class="prop-name">'flood-color'</span>
180.2526 -and <span class="prop-name">'flood-opacity'</span>. The rectangle is as large
180.2527 -as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>
180.2528 -established by the <span class="element-name">'feFlood'</span> element.</p>
180.2529 -
180.2530 -<div class="adef-list">
180.2531 -  </div>
180.2532 -
180.2533 -<p>The <span class="prop-name">'flood-color'</span> property indicates what
180.2534 -color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter
180.2535 -primitive subregion</a>. The keyword <span
180.2536 -class="attr-value">currentColor</span> and ICC colors can be specified in the
180.2537 -same manner as within a &lt;paint&gt; specification for the <span
180.2538 -class="prop-name">'fill'</span> and <span class="prop-name">'stroke'</span>
180.2539 -properties.</p>
180.2540 -
180.2541 -<div class="propdef">
180.2542 -<dl>
180.2543 -  <dt id="FloodColorProperty"><span class="propdef-title prop-name">'flood-color'</span></dt>
180.2544 -    <dd>
180.2545 -      <table summary="flood-color property" class="propinfo" cellspacing="0"
180.2546 -      cellpadding="0">
180.2547 -        <tbody>
180.2548 -          <tr valign="baseline">
180.2549 -            <td><em>Value:</em>  </td>
180.2550 -            <td>currentColor |<br />
180.2551 -              <a>&lt;color&gt;</a>
180.2552 -              [<a>&lt;icccolor&gt;</a>] |<br />
180.2553 -              <a class="noxref"
180.2554 -              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
180.2555 -              class="value-inst-inherit noxref">inherit</span></a></td>
180.2556 -          </tr>
180.2557 -          <tr valign="baseline">
180.2558 -            <td><em>Initial:</em>  </td>
180.2559 -            <td>black</td>
180.2560 -          </tr>
180.2561 -          <tr valign="baseline">
180.2562 -            <td><em>Applies to:</em>  </td>
180.2563 -            <td><a href="#feFloodElement"><span
180.2564 -              class="element-name">'feFlood'</span></a> and <a
180.2565 -              href="#feDropShadowElement"><span
180.2566 -              class="element-name">'feDropShadow'</span></a> elements</td>
180.2567 -          </tr>
180.2568 -          <tr valign="baseline">
180.2569 -            <td><em>Inherited:</em>  </td>
180.2570 -            <td>no</td>
180.2571 -          </tr>
180.2572 -          <tr valign="baseline">
180.2573 -            <td><em>Percentages:</em>  </td>
180.2574 -            <td>N/A</td>
180.2575 -          </tr>
180.2576 -          <tr valign="baseline">
180.2577 -            <td><em>Media:</em>  </td>
180.2578 -            <td>visual</td>
180.2579 -          </tr>
180.2580 -          <tr valign="baseline">
180.2581 -            <td><em>Animatable:</em>  </td>
180.2582 -            <td>yes</td>
180.2583 -          </tr>
180.2584 -        </tbody>
180.2585 -      </table>
180.2586 -    </dd>
180.2587 -</dl>
180.2588 -</div>
180.2589 -
180.2590 -<p>The <span class="prop-name">'flood-opacity'</span> property defines the
180.2591 -opacity value to use across the entire <a
180.2592 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
180.2593 -
180.2594 -<div class="propdef">
180.2595 -<dl>
180.2596 -  <dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">'flood-opacity'</span></dt>
180.2597 -    <dd>
180.2598 -      <table summary="flood-opacity property" class="propinfo"
180.2599 -      cellspacing="0" cellpadding="0">
180.2600 -        <tbody>
180.2601 -          <tr valign="baseline">
180.2602 -            <td><em>Value:</em>  </td>
180.2603 -            <td>&lt;opacity-value&gt; | <a class="noxref"
180.2604 -              href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span
180.2605 -              class="value-inst-inherit noxref">inherit</span></a></td>
180.2606 -          </tr>
180.2607 -          <tr valign="baseline">
180.2608 -            <td><em>Initial:</em>  </td>
180.2609 -            <td>1</td>
180.2610 -          </tr>
180.2611 -          <tr valign="baseline">
180.2612 -            <td><em>Applies to:</em>  </td>
180.2613 -            <td><a href="#feFloodElement"><span
180.2614 -              class="element-name">'feFlood'</span></a> and <a
180.2615 -              href="#feDropShadowElement"><span
180.2616 -              class="element-name">'feDropShadow'</span></a> elements</td>
180.2617 -          </tr>
180.2618 -          <tr valign="baseline">
180.2619 -            <td><em>Inherited:</em>  </td>
180.2620 -            <td>no</td>
180.2621 -          </tr>
180.2622 -          <tr valign="baseline">
180.2623 -            <td><em>Percentages:</em>  </td>
180.2624 -            <td>N/A</td>
180.2625 -          </tr>
180.2626 -          <tr valign="baseline">
180.2627 -            <td><em>Media:</em>  </td>
180.2628 -            <td>visual</td>
180.2629 -          </tr>
180.2630 -          <tr valign="baseline">
180.2631 -            <td><em>Animatable:</em>  </td>
180.2632 -            <td>yes</td>
180.2633 -          </tr>
180.2634 -        </tbody>
180.2635 -      </table>
180.2636 -    </dd>
180.2637 -</dl>
180.2638 -</div>
180.2639 -
180.2640 -<h2 id="feGaussianBlurElement">Filter primitive <span
180.2641 -class="element-name">'feGaussianBlur'</span></h2>
180.2642 -
180.2643 -<edit:elementsummary name='feGaussianBlur'/>
180.2644 -
180.2645 -<p>This filter primitive performs a Gaussian blur on the input image.</p>
180.2646 -
180.2647 -<p>The Gaussian blur kernel is an approximation of the normalized
180.2648 -convolution:</p>
180.2649 -
180.2650 -<p class="filterformula">G(x,y) = H(x)I(y)</p>
180.2651 -<p>where 
180.2652 -<span >H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span>
180.2653 -</p>
180.2654 -<p>and</p> 
180.2655 -<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p>
180.2656 -<p>with 's' being the standard deviation in the x direction
180.2657 -and 't' being the standard deviation in the y direction, as specified by <a
180.2658 -href="#feGaussianBlurStdDeviationAttribute"><span
180.2659 -class="attr-name">stdDeviation</span></a>.</p>
180.2660 -
180.2661 -<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span
180.2662 -class="attr-name">stdDeviation</span></a> can be either one or two numbers.
180.2663 -If two numbers are provided, the first number represents a standard deviation
180.2664 -value along the x-axis of the current coordinate system and the second value
180.2665 -represents a standard deviation in Y. If one number is provided, then that
180.2666 -value is used for both X and Y.</p>
180.2667 -
180.2668 -<p>Even if only one value is provided for <a
180.2669 -href="#feGaussianBlurStdDeviationAttribute"><span
180.2670 -class="attr-name">stdDeviation</span></a>, this can be implemented as a
180.2671 -separable convolution.</p>
180.2672 -
180.2673 -<p>For larger values of 's' (s &gt;= 2.0), an approximation can be used:
180.2674 -Three successive box-blurs build a piece-wise quadratic convolution kernel,
180.2675 -which approximates the Gaussian kernel to within roughly 3%.</p>
180.2676 -
180.2677 -<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p>
180.2678 -
180.2679 -<p>... if d is odd, use three box-blurs of size 'd', centered on the output
180.2680 -pixel.</p>
180.2681 -
180.2682 -<p>... if d is even, two box-blurs of size 'd' (the first one centered on the
180.2683 -pixel boundary between the output pixel and the one to the left, the second
180.2684 -one centered on the pixel boundary between the output pixel and the one to
180.2685 -the right) and one box blur of size 'd+1' centered on the output pixel.</p>
180.2686 -
180.2687 -<p>Frequently this operation will take place on alpha-only images, such as
180.2688 -that produced by the built-in input, <a href="#SourceAlpha"><span
180.2689 -class="attr-value">SourceAlpha</span></a>. The implementation may notice this
180.2690 -and optimize the single channel case. If the input has infinite extent and is
180.2691 -constant, this operation has no effect. If the input has infinite extent and
180.2692 -is a tile, the filter is evaluated with periodic boundary conditions.</p>
180.2693 -
180.2694 -<div class="adef-list">
180.2695 -<p><em>Attribute definitions:</em></p>
180.2696 -<dl>
180.2697 -  <dt id="feGaussianBlurStdDeviationAttribute"><span
180.2698 -  class="adef">stdDeviation</span> =
180.2699 -  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
180.2700 -    <dd>The standard deviation for the blur operation. If two <a>&lt;number&gt;</a>
180.2701 -      s are provided, the first number represents a standard deviation value
180.2702 -      along the x-axis of the coordinate system established by attribute <a>'filter/primitiveUnits'</a> on the <a
180.2703 -      href="#FilterElement"><span class="element-name">'filter'</span></a>
180.2704 -      element. The second value represents a standard deviation in Y. If one
180.2705 -      number is provided, then that value is used for both X and Y.<br />
180.2706 -      A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br />
180.2707 -      If the attribute is not specified, then the effect is as if a value of
180.2708 -      <span class="attr-value">0</span> were specified.<br />
180.2709 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2710 -</dl>
180.2711 -</div>
180.2712 -
180.2713 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
180.2714 -use of the <a>'feGaussianBlur'</a> filter primitive
180.2715 -to create a drop shadow effect.</p>
180.2716 -
180.2717 -<h2 id="feUnsharpMaskElement">Filter primitive <span
180.2718 -class="element-name">'feUnsharpMask'</span></h2>
180.2719 -
180.2720 -<edit:elementsummary name='feUnsharpMask'/>
180.2721 -
180.2722 -<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p>
180.2723 -
180.2724 -<p>The filter first does a <a>'feGaussianBlur'</a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p>
180.2725 -
180.2726 -<p>
180.2727 -For controlling the result there are three attributes that can be used:
180.2728 -  <ul>
180.2729 -    <li>the <a>'feUnsharpMask/stdDeviation'</a> attribute controls how much to blur the input image</li>
180.2730 -    <li>the <a>'feUnsharpMask/threshold'</a> attribute can be used for controlling when the difference should not be subtracted</li>
180.2731 -    <li>the <a>'feUnsharpMask/amount'</a> attribute specifies an optional multiplier for the difference to subtract</li>
180.2732 -  </ul> 
180.2733 -</p>
180.2734 -
180.2735 -<h2 id="feImageElement">Filter primitive <span
180.2736 -class="element-name">'feImage'</span></h2>
180.2737 -
180.2738 -<edit:elementsummary name='feImage'/>
180.2739 -
180.2740 -<p>This filter primitive refers to a graphic external to this filter element,
180.2741 -which is loaded or rendered into an RGBA raster and becomes the result of the
180.2742 -filter primitive.</p>
180.2743 -
180.2744 -<p>This filter primitive can refer to an external image or can be a reference
180.2745 -to another piece of SVG. It produces an image similar to the built-in image
180.2746 -source <a href="#SourceGraphic"><span
180.2747 -class="attr-value">SourceGraphic</span></a> except that the graphic comes
180.2748 -from an external source.</p>
180.2749 -
180.2750 -<p>If the <span class="attr-name">xlink:href</span> references a stand-alone
180.2751 -image resource such as a JPEG, PNG or SVG file, then the image resource is
180.2752 -rendered according to the behavior of the <span
180.2753 -class="element-name">'image'</span> element; otherwise, the referenced
180.2754 -resource is rendered according to the behavior of the <span
180.2755 -class="element-name">'use'</span> element. In either case, the current user
180.2756 -coordinate system depends on the value of attribute <a>'filter/primitiveUnits'</a> on the <a
180.2757 -href="#FilterElement"><span class="element-name">'filter'</span></a> element.
180.2758 -The processing of the <span class="attr-name">preserveAspectRatio</span>
180.2759 -attribute on the <span class="element-name">'feImage'</span> element is
180.2760 -identical to that of the <a href="struct.html#ImageElement"><span
180.2761 -class="element-name">'image'</span></a> element.</p>
180.2762 -
180.2763 -<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate
180.2764 -system, it is recommended that high quality viewers make use of appropriate
180.2765 -interpolation techniques, for example bilinear or bicubic.</span> Depending on the
180.2766 -speed of the available interpolents, this choice may be affected by the <span
180.2767 -class="prop-name">'image-rendering'</span> property setting.</p>
180.2768 -
180.2769 -<div class="adef-list">
180.2770 -<p><em>Attribute definitions:</em></p>
180.2771 -<dl>
180.2772 -  <dt id="feImageHrefAttribute"><span
180.2773 -  class="adef">xlink:href</span> =
180.2774 -  "<span class="attr-value">&lt;IRI&gt;</span>"</dt>
180.2775 -    <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
180.2776 -      to an image resource or to an element.
180.2777 -      <br />
180.2778 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2779 -   </dl>
180.2780 -</div>
180.2781 -
180.2782 -<h2 id="feMergeElement">Filter primitive <span
180.2783 -class="element-name">'feMerge'</span></h2>
180.2784 -
180.2785 -<edit:elementsummary name='feMerge'/>
180.2786 -<edit:elementsummary name='feMergeNode'/>
180.2787 -
180.2788 -<p>This filter primitive composites input image layers on top of each other
180.2789 -using the <em>over</em> operator with <em>Input1</em> (corresponding to the
180.2790 -first <a href="#feMergeNodeElement"><span
180.2791 -class="element-name">'feMergeNode'</span></a> child element) on the bottom
180.2792 -and the last specified input, <em>InputN</em> (corresponding to the last <a
180.2793 -href="#feMergeNodeElement"><span
180.2794 -class="element-name">'feMergeNode'</span></a> child element), on top.</p>
180.2795 -
180.2796 -<p>Many effects produce a number of intermediate layers in order to create
180.2797 -the final output image. This filter allows us to collapse those into a single
180.2798 -image. Although this could be done by using n-1 Composite-filters, it is more
180.2799 -convenient to have this common operation available in this form, and offers
180.2800 -the implementation some additional flexibility.</p>
180.2801 -
180.2802 -<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements,
180.2803 -each of which has an <a href="#CommonAttributes"><span
180.2804 -class="attr-name">in</span></a> attribute.</p>
180.2805 -
180.2806 -<p>The canonical implementation of feMerge is to render the entire effect
180.2807 -into one RGBA layer, and then render the resulting layer on the output
180.2808 -device. In certain cases (in particular if the output device itself is a
180.2809 -continuous tone device), and since merging is associative, it might be a
180.2810 -sufficient approximation to evaluate the effect one layer at a time and
180.2811 -render each layer individually onto the output device bottom to top.</p>
180.2812 -
180.2813 -<p>If the topmost image input is <a href="#SourceGraphic"><span
180.2814 -class="attr-value">SourceGraphic</span></a> and this <span
180.2815 -class="element-name">'feMerge'</span> is the last filter primitive in the
180.2816 -filter, the implementation is encouraged to render the layers up to that
180.2817 -point, and then render the <a href="#SourceGraphic"><span
180.2818 -class="attr-value">SourceGraphic</span></a> directly from its vector
180.2819 -description on top.</p>
180.2820 -
180.2821 -<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes
180.2822 -use of the <span class="element-name">feMerge</span> filter primitive to
180.2823 -composite two intermediate filter results together.</p>
180.2824 -
180.2825 -<h2 id="feMorphologyElement">Filter primitive <span
180.2826 -class="element-name">'feMorphology'</span></h2>
180.2827 -
180.2828 -<edit:elementsummary name='feMorphology'/>
180.2829 -
180.2830 -<p>This filter primitive performs "fattening" or "thinning" of artwork. It is
180.2831 -particularly useful for fattening or thinning an alpha channel.</p>
180.2832 -
180.2833 -<p>The dilation (or erosion) kernel is a rectangle with a width of
180.2834 -2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the
180.2835 -output pixel is the individual component-wise maximum of the corresponding
180.2836 -R,G,B,A values in the input image's kernel rectangle. In erosion, the output
180.2837 -pixel is the individual component-wise minimum of the corresponding R,G,B,A
180.2838 -values in the input image's kernel rectangle.</p>
180.2839 -
180.2840 -<p>Frequently this operation will take place on alpha-only images, such as
180.2841 -that produced by the built-in input, <a href="#SourceAlpha"><span
180.2842 -class="attr-value">SourceAlpha</span></a>. In that case, the implementation
180.2843 -might want to optimize the single channel case.</p>
180.2844 -
180.2845 -<p>If the input has infinite extent and is constant, this operation has no
180.2846 -effect. If the input has infinite extent and is a tile, the filter is
180.2847 -evaluated with periodic boundary conditions.</p>
180.2848 -
180.2849 -<p>Because <span class="element-name">'feMorphology'</span> operates on
180.2850 -premultipied color values, it will always result in color values less than or
180.2851 -equal to the alpha channel.</p>
180.2852 -
180.2853 -<div class="adef-list">
180.2854 -<p><em>Attribute definitions:</em></p>
180.2855 -<dl>
180.2856 -  <dt id="feMorphologyOperatorAttribute"><span
180.2857 -  class="adef">operator</span> = "<em>erode | dilate</em>"</dt>
180.2858 -    <dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten)
180.2859 -      the source graphic.<br />
180.2860 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2861 -  <dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> =
180.2862 -  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
180.2863 -    <dd>The radius (or radii) for the operation. If two <a>&lt;number&gt;</a>
180.2864 -      s are provided, the first number represents a x-radius and the second
180.2865 -      value represents a y-radius. If one number is provided, then that value
180.2866 -      is used for both X and Y. The values are in the coordinate system
180.2867 -      established by attribute <a>'filter/primitiveUnits'</a> on the <a
180.2868 -      href="#FilterElement"><span class="element-name">'filter'</span></a>
180.2869 -      element.<br />
180.2870 -      A negative or zero value disables the effect of the given filter
180.2871 -      primitive (i.e., the result is a transparent black image).<br />
180.2872 -      If the attribute is not specified, then the effect is as if a value of
180.2873 -      <span class="attr-value">0</span> were specified.<br />
180.2874 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2875 -</dl>
180.2876 -</div>
180.2877 -
180.2878 -<edit:example href="examples/feMorphology.svg" image="yes" link="yes"/>
180.2879 -
180.2880 -<h2 id="feOffsetElement">Filter primitive <span
180.2881 -class="element-name">'feOffset'</span></h2>
180.2882 -
180.2883 -<edit:elementsummary name='feOffset'/>
180.2884 -
180.2885 -<p>This filter primitive offsets the input image relative to its current
180.2886 -position in the image space by the specified vector.</p>
180.2887 -
180.2888 -<p>This is important for effects like drop shadows.</p>
180.2889 -
180.2890 -<p>When applying this filter, the destination location may be offset by a
180.2891 -fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer
180.2892 -should make use of appropriate interpolation techniques, for example bilinear
180.2893 -or bicubic.</span> This is especially recommended for dynamic viewers where this
180.2894 -interpolation provides visually smoother movement of images. For static
180.2895 -viewers this is less of a concern. Close attention should be made to the
180.2896 -<span class="prop-name">'image-rendering'</span> property setting to
180.2897 -determine the authors intent.</p>
180.2898 -
180.2899 -<div class="adef-list">
180.2900 -<p><em>Attribute definitions:</em></p>
180.2901 -<dl>
180.2902 -  <dt id="feOffsetDxAttribute"><span
180.2903 -  class="adef">dx</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.2904 -    <dd>The amount to offset the input graphic along the x-axis. The offset
180.2905 -      amount is expressed in the coordinate system established by attribute
180.2906 -      <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a>
180.2907 -      element.<br />
180.2908 -      If the attribute is not specified, then the effect is as if a value of
180.2909 -      <span class="attr-value">0</span> were specified.<br />
180.2910 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2911 -  <dt id="feOffsetDyAttribute"><span
180.2912 -  class="adef">dy</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.2913 -    <dd>The amount to offset the input graphic along the y-axis. The offset
180.2914 -      amount is expressed in the coordinate system established by attribute
180.2915 -      <a>'filter/primitiveUnits'</a> on the <a
180.2916 -      href="#FilterElement"><span class="element-name">'filter'</span></a>
180.2917 -      element.<br />
180.2918 -      If the attribute is not specified, then the effect is as if a value of
180.2919 -      <span class="attr-value">0</span> were specified.<br />
180.2920 -      <span class="anim-target">Animatable: yes.</span></dd>
180.2921 -</dl>
180.2922 -</div>
180.2923 -
180.2924 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
180.2925 -use of the <span class="element-name">feOffset</span> filter primitive to
180.2926 -offset the drop shadow from the original source graphic.</p>
180.2927 -
180.2928 -<h2 id="feSpecularLightingElement">Filter primitive <span
180.2929 -class="element-name">'feSpecularLighting'</span></h2>
180.2930 -
180.2931 -<edit:elementsummary name='feSpecularLighting'/>
180.2932 -
180.2933 -<p>This filter primitive lights a source graphic using the alpha channel as a
180.2934 -bump map. The resulting image is an RGBA image based on the light color. The
180.2935 -lighting calculation follows the standard specular component of the Phong
180.2936 -lighting model. The resulting image depends on the light color, light
180.2937 -position and surface geometry of the input bump map. The result of the
180.2938 -lighting calculation is added. The filter primitive assumes that the viewer
180.2939 -is at infinity in the z direction (i.e., the unit vector in the eye direction
180.2940 -is (0,0,1) everywhere).</p>
180.2941 -
180.2942 -<p>This filter primitive produces an image which contains the specular
180.2943 -reflection part of the lighting calculation. Such a map is intended to be
180.2944 -combined with a texture using the <em>add</em> term of the
180.2945 -<em>arithmetic</em> <a href="#feCompositeElement"><span
180.2946 -class="element-name">'feComposite'</span></a> method. Multiple light sources
180.2947 -can be simulated by adding several of these light maps before applying it to
180.2948 -the texture image.</p>
180.2949 -
180.2950 -<p>The resulting RGBA image is computed as follows:</p>
180.2951 -
180.2952 -<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H,
180.2953 -specularExponent) * L<sub>r<br />
180.2954 -</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
180.2955 -L<sub>g<br />
180.2956 -</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
180.2957 -L<sub>b<br />
180.2958 -</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p>
180.2959 -
180.2960 -<p>where</p>
180.2961 -<dl>
180.2962 -    <dd>k<sub>s</sub> = specular lighting constant<br />
180.2963 -      N = surface normal unit vector, a function of x and y<br />
180.2964 -      H = "halfway" unit vector between eye unit vector and light unit
180.2965 -      vector<br />
180.2966 -      <br />
180.2967 -      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd>
180.2968 -</dl>
180.2969 -
180.2970 -<p>See <a href="#feDiffuseLighting"><span
180.2971 -class="element-name">'feDiffuseLighting'</span></a> for definition of N and
180.2972 -(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p>
180.2973 -
180.2974 -<p>The definition of H reflects our assumption of the constant eye vector E =
180.2975 -(0,0,1):</p>
180.2976 -
180.2977 -<p class="filterformula">H = (L + E) / Norm(L+E)</p>
180.2978 -
180.2979 -<p>where L is the light unit vector.</p>
180.2980 -
180.2981 -<p>Unlike the <a href="#feDiffuseLighting"><span
180.2982 -class="element-name">'feDiffuseLighting'</span></a>, the <span
180.2983 -class="element-name">'feSpecularLighting'</span> filter produces a non-opaque
180.2984 -image. This is due to the fact that the specular result
180.2985 -(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be
180.2986 -added to the textured image. The alpha channel of the result is the max of
180.2987 -the color components, so that where the specular light is zero, no additional
180.2988 -coverage is added to the image and a fully white highlight will add
180.2989 -opacity.</p>
180.2990 -
180.2991 -<p>The <a href="#feDiffuseLighting"><span
180.2992 -class="element-name">'feDiffuseLighting'</span></a> and <span
180.2993 -class="element-name">'feSpecularLighting'</span> filters will often be
180.2994 -applied together. An implementation may detect this and calculate both maps
180.2995 -in one pass, instead of two.</p>
180.2996 -
180.2997 -<div class="adef-list">
180.2998 -<p><em>Attribute definitions:</em></p>
180.2999 -<dl>
180.3000 -  <dt id="feSpecularLightingSurfaceScaleAttribute"><span
180.3001 -  class="adef">surfaceScale</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3002 -    <dd>height of surface when A<sub>in</sub> = 1.<br />
180.3003 -      If the attribute is not specified, then the effect is as if a value of
180.3004 -      <span class="attr-value">1</span> were specified.<br />
180.3005 -      <span class="anim-target">Animatable: yes.</span></dd>
180.3006 -  <dt id="feSpecularLightingSpecularConstantAttribute"><span
180.3007 -  class="adef">specularConstant</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3008 -    <dd>ks in Phong lighting model. In SVG, this can be any non-negative
180.3009 -      number.<br />
180.3010 -      If the attribute is not specified, then the effect is as if a value of
180.3011 -      <span class="attr-value">1</span> were specified.<br />
180.3012 -      <span class="anim-target">Animatable: yes.</span></dd>
180.3013 -  <dt id="feSpecularLightingSpecularExponentAttribute"><span
180.3014 -  class="adef">specularExponent</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3015 -    <dd>Exponent for specular term, larger is more "shiny". Range 1.0 to
180.3016 -      128.0.<br />
180.3017 -      If the attribute is not specified, then the effect is as if a value of
180.3018 -      <span class="attr-value">1</span> were specified.<br />
180.3019 -      <span class="anim-target">Animatable: yes.</span></dd>
180.3020 -  <dt id="feSpecularLightingKernelUnitLengthAttribute"><span
180.3021 -  class="adef">kernelUnitLength</span> = "<span
180.3022 -  class="attr-value"><a>&lt;number-optional-number&gt;</a></span>"</dt>
180.3023 -    <dd>The first number is the &lt;dx&gt; value. The second number is the
180.3024 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
180.3025 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
180.3026 -      current filter units (i.e., units as determined by the value of
180.3027 -      attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and
180.3028 -      <code>dy</code>, respectively, in the <a
180.3029 -      href="#SurfaceNormalCalculations">surface normal calculation
180.3030 -      formulas</a>. By specifying value(s) for <span
180.3031 -      class="attr-name">kernelUnitLength</span>, the kernel becomes defined
180.3032 -      in a scalable, abstract coordinate system. If <span
180.3033 -      class="attr-name">kernelUnitLength</span> is not specified, the
180.3034 -      <code>dx</code> and <code>dy</code> values should represent very small
180.3035 -      deltas relative to a given <code>(x,y)</code> position, which might be
180.3036 -      implemented in some cases as one pixel in the intermediate image
180.3037 -      offscreen bitmap, which is a pixel-based coordinate system, and thus
180.3038 -      potentially not scalable. For some level of consistency across display
180.3039 -      media and user agents, it is necessary that a value be provided for at
180.3040 -      least one of <span class="attr-name">filterRes</span> and <span
180.3041 -      class="attr-name">kernelUnitLength</span>. Discussion of intermediate
180.3042 -      images are in the <a href="#Introduction">Introduction</a> and in the
180.3043 -      description of attribute <a
180.3044 -      href="#FilterElementFilterResAttribute"><span
180.3045 -      class="attr-name">filterRes</span></a>.<br />
180.3046 -      If a negative or zero value is specified the default value will be used
180.3047 -      instead. <br />
180.3048 -      <span class="anim-target">Animatable: yes.</span></dd>
180.3049 -</dl>
180.3050 -</div>
180.3051 -
180.3052 -<p>The light source is defined by one of the child elements <a
180.3053 -href="#feDistantLightElement"><span
180.3054 -class="element-name">'feDistantLight'</span></a>, <a
180.3055 -href="#fePointLightElement"><span
180.3056 -class="element-name">'fePointLight'</span></a> or <a
180.3057 -href="#feDistantLightElement"><span
180.3058 -class="element-name">'feDistantLight'</span></a>. The light color is
180.3059 -specified by property <a href="#LightingColorProperty"><span
180.3060 -class="prop-name">'lighting-color'</span></a>.</p>
180.3061 -
180.3062 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
180.3063 -use of the <span class="element-name">feSpecularLighting</span> filter
180.3064 -primitive to achieve a highly reflective, 3D glowing effect.</p>
180.3065 -
180.3066 -<h2 id="feTileElement">Filter primitive <span
180.3067 -class="element-name">'feTile'</span></h2>
180.3068 -
180.3069 -<edit:elementsummary name='feTile'/>
180.3070 -
180.3071 -<p>This filter primitive fills a target rectangle with a repeated, tiled
180.3072 -pattern of an input image. 
180.3073 -The target rectangle is as large as the <a
180.3074 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established
180.3075 -by the <span class="element-name">'feTile'</span> element.
180.3076 -</p>
180.3077 -
180.3078 -<p>Typically, the input image has been defined with its own <a
180.3079 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to
180.3080 -define a reference tile. <span class="element-name">'feTile'</span>
180.3081 -replicates the reference tile in both X and Y to completely fill the target
180.3082 -rectangle. The top/left corner of each given tile is at location
180.3083 -<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the
180.3084 -top/left of the input image's filter primitive subregion, <code>width</code>
180.3085 -and <code>height</code> represent the width and height of the input image's
180.3086 -filter primitive subregion, and <code>i</code> and <code>j</code> can be any
180.3087 -integer value. In most cases, the input image will have a smaller filter
180.3088 -primitive subregion than the <span class="element-name">'feTile'</span> in
180.3089 -order to achieve a repeated pattern effect.</p>
180.3090 -
180.3091 -<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled
180.3092 -image to avoid artifacts between tiles, particularly in situations where the
180.3093 -user to device transform includes shear and/or rotation. Unless care is
180.3094 -taken, interpolation can lead to edge pixels in the tile having opacity
180.3095 -values lower or higher than expected due to the interaction of painting
180.3096 -adjacent tiles which each have partial overlap with particular pixels.</p>
180.3097 -
180.3098 -<div class="adef-list">
180.3099 -  </div>
180.3100 -
180.3101 -<h2 id="feTurbulenceElement">Filter primitive <span
180.3102 -class="element-name">'feTurbulence'</span></h2>
180.3103 -
180.3104 -<edit:with element="feTurbulence">
180.3105 -
180.3106 -<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p>
180.3107 -
180.3108 -<p>This filter primitive creates an image using the Perlin turbulence
180.3109 -function. It allows the synthesis of artificial textures like clouds or
180.3110 -marble. For a detailed description the of the Perlin turbulence function, see
180.3111 -"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting
180.3112 -image will fill the entire <a>filter primitive subregion</a> for this filter primitive.</p>
180.3113 -
180.3114 -<p>It is possible to create bandwidth-limited noise by synthesizing only one
180.3115 -octave.</p>
180.3116 -
180.3117 -<p>The C code below shows the exact algorithm used for this filter effect.</p>
180.3118 -
180.3119 -<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of
180.3120 --1 to 1 (the actual result might exceed this range in some cases). To convert
180.3121 -to a color value, use the formula <code>colorValue = ((turbFunctionResult *
180.3122 -255) + 255) / 2</code>, then clamp to the range 0 to 255.</p>
180.3123 -
180.3124 -<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0
180.3125 -to 1 (the actual result might exceed this range in some cases). To convert to
180.3126 -a color value, use the formula <code>colorValue = (turbFunctionResult *
180.3127 -255)</code>, then clamp to the range 0 to 255.</p>
180.3128 -
180.3129 -<p>The following order is used for applying the pseudo random numbers. An
180.3130 -initial seed value is computed based on the <a>'seed'</a> attribute. 
180.3131 -Then the implementation computes the lattice
180.3132 -points for R, then continues getting additional pseudo random numbers
180.3133 -relative to the last generated pseudo random number and computes the lattice
180.3134 -points for G, and so on for B and A.</p>
180.3135 -
180.3136 -<p>The generated color and alpha values are in the color space determined by
180.3137 -the <a>'color-interpolation-filters'</a> property:</p>
180.3138 -<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2].
180.3139 -Algorithm is: r = (a * r) mod m
180.3140 -where a = 16807 and m = 2**31 - 1 = 2147483647
180.3141 -See [Park &amp; Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988
180.3142 -To test: the algorithm should produce the result 1043618065
180.3143 -as the 10,000th generated number if the original seed is 1.
180.3144 -*/
180.3145 -#define RAND_m 2147483647 /* 2**31 - 1 */
180.3146 -#define RAND_a 16807 /* 7**5; primitive root of m */
180.3147 -#define RAND_q 127773 /* m / a */
180.3148 -#define RAND_r 2836 /* m % a */
180.3149 -long setup_seed(long lSeed)
180.3150 -{
180.3151 -  if (lSeed &lt;= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1;
180.3152 -  if (lSeed &gt; RAND_m - 1) lSeed = RAND_m - 1;
180.3153 -  return lSeed;
180.3154 -}
180.3155 -long random(long lSeed)
180.3156 -{
180.3157 -  long result;
180.3158 -  result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q);
180.3159 -  if (result &lt;= 0) result += RAND_m;
180.3160 -  return result;
180.3161 -}
180.3162 -#define BSize 0x100
180.3163 -#define BM 0xff
180.3164 -#define PerlinN 0x1000
180.3165 -#define NP 12 /* 2^PerlinN */
180.3166 -#define NM 0xfff
180.3167 -static uLatticeSelector[BSize + BSize + 2];
180.3168 -static double fGradient[4][BSize + BSize + 2][2];
180.3169 -struct StitchInfo
180.3170 -{
180.3171 -  int nWidth; // How much to subtract to wrap for stitching.
180.3172 -  int nHeight;
180.3173 -  int nWrapX; // Minimum value to wrap.
180.3174 -  int nWrapY;
180.3175 -};
180.3176 -static void init(long lSeed)
180.3177 -{
180.3178 -  double s;
180.3179 -  int i, j, k;
180.3180 -  lSeed = setup_seed(lSeed);
180.3181 -  for(k = 0; k &lt; 4; k++)
180.3182 -  {
180.3183 -    for(i = 0; i &lt; BSize; i++)
180.3184 -    {
180.3185 -      uLatticeSelector[i] = i;
180.3186 -      for (j = 0; j &lt; 2; j++)
180.3187 -        fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize;
180.3188 -      s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1]));
180.3189 -      fGradient[k][i][0] /= s;
180.3190 -      fGradient[k][i][1] /= s;
180.3191 -    }
180.3192 -  }
180.3193 -  while(--i)
180.3194 -  {
180.3195 -    k = uLatticeSelector[i];
180.3196 -    uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize];
180.3197 -    uLatticeSelector[j] = k;
180.3198 -  }
180.3199 -  for(i = 0; i &lt; BSize + 2; i++)
180.3200 -  {
180.3201 -    uLatticeSelector[BSize + i] = uLatticeSelector[i];
180.3202 -    for(k = 0; k &lt; 4; k++)
180.3203 -      for(j = 0; j &lt; 2; j++)
180.3204 -        fGradient[k][BSize + i][j] = fGradient[k][i][j];
180.3205 -  }
180.3206 -}
180.3207 -#define s_curve(t) ( t * t * (3. - 2. * t) )
180.3208 -#define lerp(t, a, b) ( a + t * (b - a) )
180.3209 -double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo)
180.3210 -{
180.3211 -  int bx0, bx1, by0, by1, b00, b10, b01, b11;
180.3212 -  double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v;
180.3213 -  register i, j;
180.3214 -  t = vec[0] + PerlinN;
180.3215 -  bx0 = (int)t;
180.3216 -  bx1 = bx0+1;
180.3217 -  rx0 = t - (int)t;
180.3218 -  rx1 = rx0 - 1.0f;
180.3219 -  t = vec[1] + PerlinN;
180.3220 -  by0 = (int)t;
180.3221 -  by1 = by0+1;
180.3222 -  ry0 = t - (int)t;
180.3223 -  ry1 = ry0 - 1.0f;
180.3224 -  // If stitching, adjust lattice points accordingly.
180.3225 -  if(pStitchInfo != NULL)
180.3226 -  {
180.3227 -    if(bx0 &gt;= pStitchInfo-&gt;nWrapX)
180.3228 -      bx0 -= pStitchInfo-&gt;nWidth;
180.3229 -    if(bx1 &gt;= pStitchInfo-&gt;nWrapX)
180.3230 -      bx1 -= pStitchInfo-&gt;nWidth;
180.3231 -    if(by0 &gt;= pStitchInfo-&gt;nWrapY)
180.3232 -      by0 -= pStitchInfo-&gt;nHeight;
180.3233 -    if(by1 &gt;= pStitchInfo-&gt;nWrapY)
180.3234 -      by1 -= pStitchInfo-&gt;nHeight;
180.3235 -  }
180.3236 -  bx0 &amp;= BM;
180.3237 -  bx1 &amp;= BM;
180.3238 -  by0 &amp;= BM;
180.3239 -  by1 &amp;= BM;
180.3240 -  i = uLatticeSelector[bx0];
180.3241 -  j = uLatticeSelector[bx1];
180.3242 -  b00 = uLatticeSelector[i + by0];
180.3243 -  b10 = uLatticeSelector[j + by0];
180.3244 -  b01 = uLatticeSelector[i + by1];
180.3245 -  b11 = uLatticeSelector[j + by1];
180.3246 -  sx = double(s_curve(rx0));
180.3247 -  sy = double(s_curve(ry0));
180.3248 -  q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1];
180.3249 -  q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1];
180.3250 -  a = lerp(sx, u, v);
180.3251 -  q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1];
180.3252 -  q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1];
180.3253 -  b = lerp(sx, u, v);
180.3254 -  return lerp(sy, a, b);
180.3255 -}
180.3256 -double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY,
180.3257 -          int nNumOctaves, bool bFractalSum, bool bDoStitching,
180.3258 -          double fTileX, double fTileY, double fTileWidth, double fTileHeight)
180.3259 -{
180.3260 -  StitchInfo stitch;
180.3261 -  StitchInfo *pStitchInfo = NULL; // Not stitching when NULL.
180.3262 -  // Adjust the base frequencies if necessary for stitching.
180.3263 -  if(bDoStitching)
180.3264 -  {
180.3265 -    // When stitching tiled turbulence, the frequencies must be adjusted
180.3266 -    // so that the tile borders will be continuous.
180.3267 -    if(fBaseFreqX != 0.0)
180.3268 -    {
180.3269 -      double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth;
180.3270 -      double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth;
180.3271 -      if(fBaseFreqX / fLoFreq &lt; fHiFreq / fBaseFreqX)
180.3272 -        fBaseFreqX = fLoFreq;
180.3273 -      else
180.3274 -        fBaseFreqX = fHiFreq;
180.3275 -    }
180.3276 -    if(fBaseFreqY != 0.0)
180.3277 -    {
180.3278 -      double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight;
180.3279 -      double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight;
180.3280 -      if(fBaseFreqY / fLoFreq &lt; fHiFreq / fBaseFreqY)
180.3281 -        fBaseFreqY = fLoFreq;
180.3282 -      else
180.3283 -        fBaseFreqY = fHiFreq;
180.3284 -    }
180.3285 -    // Set up initial stitch values.
180.3286 -    pStitchInfo = &amp;stitch;
180.3287 -    stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f);
180.3288 -    stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth;
180.3289 -    stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f);
180.3290 -    stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight;
180.3291 -  }
180.3292 -  double fSum = 0.0f;
180.3293 -  double vec[2];
180.3294 -  vec[0] = point[0] * fBaseFreqX;
180.3295 -  vec[1] = point[1] * fBaseFreqY;
180.3296 -  double ratio = 1;
180.3297 -  for(int nOctave = 0; nOctave &lt; nNumOctaves; nOctave++)
180.3298 -  {
180.3299 -    if(bFractalSum)
180.3300 -      fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio);
180.3301 -    else
180.3302 -      fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio);
180.3303 -    vec[0] *= 2;
180.3304 -    vec[1] *= 2;
180.3305 -    ratio *= 2;
180.3306 -    if(pStitchInfo != NULL)
180.3307 -    {
180.3308 -      // Update stitch values. Subtracting PerlinN before the multiplication and
180.3309 -      // adding it afterward simplifies to subtracting it once.
180.3310 -      stitch.nWidth *= 2;
180.3311 -      stitch.nWrapX = 2 * stitch.nWrapX - PerlinN;
180.3312 -      stitch.nHeight *= 2;
180.3313 -      stitch.nWrapY = 2 * stitch.nWrapY - PerlinN;
180.3314 -    }
180.3315 -  }
180.3316 -  return fSum;
180.3317 -}</pre>
180.3318 -
180.3319 -<div class="adef-list">
180.3320 -<p><em>Attribute definitions:</em></p>
180.3321 -<dl>
180.3322 -  <dt id="feTurbulenceBaseFrequencyAttribute"><span
180.3323 -  class="adef">baseFrequency</span> =
180.3324 -  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
180.3325 -    <dd>
180.3326 -		<p>The base frequency (frequencies) parameter(s) for the noise function.
180.3327 -      If two <a>&lt;number&gt;</a>s are provided, the first number represents a base frequency in the X
180.3328 -      direction and the second value represents a base frequency in the Y
180.3329 -      direction. If one number is provided, then that value is used for both
180.3330 -      X and Y.</p>
180.3331 -		<p>The <a>lacuna value</a> for <a>'baseFrequency'</a> is <span class="attr-value">0</span>.</p>
180.3332 -		<p>Negative values are <a>unsupported</a>.</p>
180.3333 -      	<p><span class="anim-target">Animatable: yes.</span></p>
180.3334 -</dd>
180.3335 -  <dt id="feTurbulenceNumOctavesAttribute"><span
180.3336 -  class="adef">numOctaves</span> = "<em><a>&lt;integer&gt;</a></em>"</dt>
180.3337 -    <dd>
180.3338 -		<p>The numOctaves parameter for the noise function.</p>
180.3339 -      	<p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a>lacuna value</a> for <a>'numOctaves'</a> is <span class="attr-value">1</span>.</span></p>
180.3340 -		<p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a>unsupported</a>.</span></p>
180.3341 -      	<p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p>
180.3342 -	</dd>
180.3343 -  <dt id="feTurbulenceSeedAttribute">
180.3344 -  <span class="adef">seed</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3345 -    <dd>
180.3346 -		<p>The starting number for the pseudo random number generator.</p>
180.3347 -		<p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a>lacuna value</a> for <a>'seed'</a> is <span class="attr-value">0</span>.</span></p>
180.3348 -	  	<p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 
180.3349 -	  truncated, i.e. rounded to the closest integer value towards zero.</span></p>
180.3350 -      	<p><span class="anim-target">Animatable: yes.</span></p>
180.3351 -	</dd>
180.3352 -  <dt id="feTurbulenceStitchTilesAttribute"><span
180.3353 -  class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt>
180.3354 -    <dd>
180.3355 -	<p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt
180.3356 -      it made to achieve smooth transitions at the border of tiles which
180.3357 -      contain a turbulence function. Sometimes the result will show clear
180.3358 -      discontinuities at the tile borders.<br />
180.3359 -      If <span class="attr-value">stitchTiles="stitch"</span>, then the user
180.3360 -      agent will automatically adjust baseFrequency-x and baseFrequency-y
180.3361 -      values such that the <a>'feTurbulence'</a> node's width and height (i.e., the
180.3362 -      width and height of the current subregion) contains an integral number
180.3363 -      of the Perlin tile width and height for the first octave. The
180.3364 -      baseFrequency will be adjusted up or down depending on which way has
180.3365 -      the smallest relative (not absolute) change as follows: Given the
180.3366 -      frequency, calculate <code>lowFreq=floor(width*frequency)/width</code>
180.3367 -      and <code>hiFreq=ceil(width*frequency)/width</code>. If
180.3368 -      frequency/lowFreq &lt; hiFreq/frequency then use lowFreq, else use
180.3369 -      hiFreq. While generating turbulence values, generate lattice vectors as
180.3370 -      normal for Perlin Noise, except for those lattice points that lie on
180.3371 -      the right or bottom edges of the active area (the size of the resulting
180.3372 -      tile). In those cases, copy the lattice vector from the opposite edge
180.3373 -      of the active area.</p>
180.3374 -	  <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a>lacuna value</a> for <a>'stitchTiles'</a> attribute is <span class="attr-value">noStitch</span>.</span></p>
180.3375 -      <p><span class="anim-target">Animatable: yes.</span></p>
180.3376 -	</dd>
180.3377 -  <dt id="feTurbulenceTypeAttribute">
180.3378 -  <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt>
180.3379 -    <dd>
180.3380 -		<p>Indicates whether the filter primitive should perform a noise or
180.3381 -      turbulence function.</p>
180.3382 -		<p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a>lacuna value</a> for <a>'type'</a> attribute is <span class="attr-value">turbulence</span>.</span></p>
180.3383 -      	<p><span class="anim-target">Animatable: yes.</span></p>
180.3384 -	</dd>
180.3385 -</dl>
180.3386 -</div>
180.3387 -
180.3388 -<edit:example href="examples/feTurbulence.svg" image="yes" link="yes"/>
180.3389 -</edit:with>
180.3390 -
180.3391 -<h2 id="feDropShadowElement">Filter primitive <span
180.3392 -class="element-name">'feDropShadow'</span></h2>
180.3393 -
180.3394 -<edit:elementsummary name='feDropShadow'/>
180.3395 -
180.3396 -<p>This filter creates a drop shadow of the input image. It is a shorthand
180.3397 -filter, and is defined in terms of combinations of other <a>filter primitives</a>.
180.3398 -The expectation is that it can be optimized more easily by
180.3399 -implementations.</p>
180.3400 -
180.3401 -<p>The result of a <a>'feDropShadow'</a> filter
180.3402 -primitive is equivalent to the following: 
180.3403 -
180.3404 -<pre class="examplesource">
180.3405 -  &lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt; 
180.3406 -  &lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt; 
180.3407 -  &lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt; 
180.3408 -  &lt;feComposite in2="offsetblur" operator="in"/&gt; 
180.3409 -  &lt;feMerge&gt; 
180.3410 -    &lt;feMergeNode/&gt;
180.3411 -    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt; 
180.3412 -  &lt;/feMerge&gt;
180.3413 -</pre>
180.3414 -</p>
180.3415 -
180.3416 -<p>
180.3417 -The above divided into steps:
180.3418 -<ol>
180.3419 -  <li>Take the alpha channel of the input to the <a>'feDropShadow'</a> filter primitive and the <a>'feDropShadow/stdDeviation'</a> on the <a>'feDropShadow'</a> and do processing as if the
180.3420 -    following <a>'feGaussianBlur'</a> was applied: 
180.3421 -    <pre class="examplesource">	&lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt;</pre>
180.3422 -    <br />
180.3423 -  </li>
180.3424 -  <li>Offset the result of step 1 by <a>'feDropShadow/dx'</a> and <a>'feDropShadow/dy'</a> as
180.3425 -    specified on the <a>'feDropShadow'</a>
180.3426 -    element, equivalent to applying an <a>'feOffset'</a> with these parameters: 
180.3427 -    <pre class="examplesource">	&lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt;</pre>
180.3428 -    <br />
180.3429 -  </li>
180.3430 -  <li>Do processing as if an <a>'feFlood'</a> element with <a>'flood-color'</a> and 
180.3431 -	<a>'flood-opacity'</a> as specified on the <a>'feDropShadow'</a> was applied: 
180.3432 -    <pre class="examplesource">	&lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt;</pre>
180.3433 -    <br />
180.3434 -  </li>
180.3435 -  <li>Composite the result of the <a href="#feFloodElement"><span
180.3436 -    class="element-name">'feFlood'</span></a> in step 3 with the result of
180.3437 -    the <a href="#feOffsetElement"><span
180.3438 -    class="element-name">'feOffset'</span></a> in step 2 as if an <a>'feComposite'</a> filter primitive with <a
180.3439 -    href="#feCompositeOperatorAttribute"><span
180.3440 -    class="attr-name">operator</span></a>='in' was applied: 
180.3441 -    <pre class="examplesource">	&lt;feComposite in2="offsetblur" operator="in"/&gt;</pre>
180.3442 -    <br />
180.3443 -  </li>
180.3444 -  <li>Finally merge the result of the previous step, doing processing as if
180.3445 -    the following <a>'feMerge'</a> was performed: 
180.3446 -    <pre class="examplesource">	&lt;feMerge&gt;
180.3447 -	    &lt;feMergeNode/&gt;
180.3448 -	    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt;
180.3449 -	&lt;/feMerge&gt;</pre>
180.3450 -  </li>
180.3451 -</ol>
180.3452 -</p>
180.3453 -
180.3454 -<p class="note implementation">Note that while the definition of the <span
180.3455 -class="element-name">'feDropShadow'</span> filter primitive says that it can
180.3456 -be expanded into an equivalent tree it is not required that it is implemented
180.3457 -like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately.
180.3458 -</p> 
180.3459 -
180.3460 -<p>Beyond the DOM interface <a
180.3461 -href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way
180.3462 -of accessing the internals of the <a>'feDropShadow'</a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the
180.3463 -filter primitive is implemented as an equivalent tree then that tree must not
180.3464 -be exposed to the DOM.</span> </p>
180.3465 -
180.3466 -<div class="adef-list">
180.3467 -<p><em>Attribute definitions:</em></p>
180.3468 -<dl>
180.3469 -  <dt id="feDropShadowDxAttribute">
180.3470 -  <span class="adef">dx</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3471 -    <dd>
180.3472 -		<p>The x offset of the drop shadow.</p> 
180.3473 -		<p>The <a>lacuna value</a> for <a>'feDropShadow/dx'</a> is <span class="attr-value">2</span>.</p> 
180.3474 -		<p>This attribute is then forwarded to the <a>'feOffset/dx'</a> attribute of the internal <a>'feOffset'</a> element.</p>
180.3475 -		<p><span class="anim-target">Animatable: yes.</span></p>
180.3476 -	</dd>
180.3477 -  <dt id="feDropShadowDyAttribute">
180.3478 -  <span class="adef">dy</span> = "<em><a>&lt;number&gt;</a></em>"</dt>
180.3479 -    <dd>
180.3480 -		<p>The y offset of the drop shadow.</p>
180.3481 -		<p>The <a>lacuna value</a> for <a>'feDropShadow/dy'</a> is <span class="attr-value">2</span>. </p>
180.3482 -		<p>This attribute is then forwarded to the <a>'feOffset/dy'</a> attribute of the internal <a>'feOffset'</a> element.</p>
180.3483 -		<p><span class="anim-target">Animatable: yes.</span></p>
180.3484 -	</dd>
180.3485 -  <dt id="feDropShadowStdDeviationAttribute"><span
180.3486 -  class="adef">stdDeviation</span> =
180.3487 -  "<em><a>&lt;number-optional-number&gt;</a></em>"</dt>
180.3488 -    <dd>
180.3489 -		<p>The standard deviation for the blur operation in the drop shadow.</p>
180.3490 -		<p>The <a>lacuna value</a> for <a>'feDropShadow/stdDeviation'</a> is <span class="attr-value">2</span>.</p> 
180.3491 -		<p>This attribute is then forwarded to the <a>'feGaussianBlur/stdDeviation'</a> attribute of the internal
180.3492 -			<a>'feGaussianBlur'</a> element.</p>
180.3493 -		<p><span class="anim-target">Animatable: yes.</span></p>
180.3494 -	</dd>
180.3495 -</dl>
180.3496 -</div>
180.3497 -
180.3498 -<div class="note">
180.3499 -<h2 id="feDiffuseSpecularElement">Filter primitive <span
180.3500 -class="element-name">'feDiffuseSpecular'</span></h2>
180.3501 -The SVG WG is looking at providing a shorthand for diffuse+specular.
180.3502 -</div>
180.3503 -
180.3504 -<div class="note">
180.3505 -<h2 id="feCustomElement">Filter primitive <span
180.3506 -class="element-name">'feCustom'</span></h2>
180.3507 -The SVG WG is looking to add a filter primitive that allows programmatic access
180.3508 -to the pixel data for a filter, e.g via OpenCL.
180.3509 -</div>
180.3510 -
180.3511 -<h2 id="RelaxNG">RelaxNG Schema for Filter Effects 1.0</h2>
180.3512 -
180.3513 -<p>The schema for Filter Effects 1.0 is written in <a
180.3514 -href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a>
180.3515 -[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses
180.3516 -the datatypes from <a
180.3517 -href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part
180.3518 -2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and
180.3519 -modularity to be much more naturally expressed than using DTD syntax. The
180.3520 -RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas,
180.3521 -or combined with other schemas in other languages into a multi-namespace,
180.3522 -multi-grammar schema using <a
180.3523 -href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation
180.3524 -Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p>
180.3525 -
180.3526 -<p>Unlike a DTD, the schema used for validation is not hardcoded into the
180.3527 -document instance. There is no equivalent to the DOCTYPE declaration. Simply
180.3528 -point your editor or other validation tool to the IRI of the schema (or your
180.3529 -local cached copy, as you prefer).</p>
180.3530 -
180.3531 -<p>
180.3532 -The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 
180.3533 -</p>
180.3534 -
180.3535 -<h2 id="DOMInterfaces">DOM interfaces</h2>
180.3536 -<div class="note">
180.3537 -The interfaces below will be made available in a IDL file for an upcoming draft.
180.3538 -</div>
180.3539 -
180.3540 -<!-- AUTO-GENERATED DOM INTERFACES GO HERE --> 
180.3541 -
180.3542 -<h2 id="DOMInterfaces">DOM interfaces</h2>
180.3543 -
180.3544 -<h3 id="InterfaceImageData">Interface ImageData</h3>
180.3545 -
180.3546 -<edit:interface name='::svg::ImageData'/>
180.3547 -
180.3548 -<h3 id="InterfaceSVGFilterElement">Interface SVGFilterElement</h3>
180.3549 -
180.3550 -<edit:with element='filter'>
180.3551 -<edit:interface name='::svg::SVGFilterElement'/>
180.3552 -</edit:with>
180.3553 -
180.3554 -<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">Interface SVGFilterPrimitiveStandardAttributes</h3>
180.3555 -
180.3556 -<edit:with element='feTile'>
180.3557 -<edit:interface name='::svg::SVGFilterPrimitiveStandardAttributes'/>
180.3558 -</edit:with>
180.3559 -
180.3560 -<h3 id="InterfaceSVGFEBlendElement">Interface SVGFEBlendElement</h3>
180.3561 -
180.3562 -<edit:with element='feBlend'>
180.3563 -<edit:interface name='::svg::SVGFEBlendElement'/>
180.3564 -</edit:with>
180.3565 -
180.3566 -<h3 id="InterfaceSVGFEColorMatrixElement">Interface SVGFEColorMatrixElement</h3>
180.3567 -
180.3568 -<edit:with element='feColorMatrix'>
180.3569 -<edit:interface name='::svg::SVGFEColorMatrixElement'/>
180.3570 -</edit:with>
180.3571 -
180.3572 -<h3 id="InterfaceSVGFEComponentTransferElement">Interface SVGFEComponentTransferElement</h3>
180.3573 -
180.3574 -<edit:with element='feComponentTransfer'>
180.3575 -<edit:interface name='::svg::SVGFEComponentTransferElement'/>
180.3576 -</edit:with>
180.3577 -
180.3578 -<h3 id="InterfaceSVGComponentTransferFunctionElement">Interface SVGComponentTransferFunctionElement</h3>
180.3579 -
180.3580 -<edit:with element='feFuncR'>
180.3581 -<edit:interface name='::svg::SVGComponentTransferFunctionElement'/>
180.3582 -</edit:with>
180.3583 -
180.3584 -<h3 id="InterfaceSVGFEFuncRElement">Interface SVGFEFuncRElement</h3>
180.3585 -
180.3586 -<edit:with element='feFuncR'>
180.3587 -<edit:interface name='::svg::SVGFEFuncRElement'/>
180.3588 -</edit:with>
180.3589 -
180.3590 -<h3 id="InterfaceSVGFEFuncGElement">Interface SVGFEFuncGElement</h3>
180.3591 -
180.3592 -<edit:with element='feFuncG'>
180.3593 -<edit:interface name='::svg::SVGFEFuncGElement'/>
180.3594 -</edit:with>
180.3595 -
180.3596 -<h3 id="InterfaceSVGFEFuncBElement">Interface SVGFEFuncBElement</h3>
180.3597 -
180.3598 -<edit:with element='feFuncB'>
180.3599 -<edit:interface name='::svg::SVGFEFuncBElement'/>
180.3600 -</edit:with>
180.3601 -
180.3602 -<h3 id="InterfaceSVGFEFuncAElement">Interface SVGFEFuncAElement</h3>
180.3603 -
180.3604 -<edit:with element='feFuncA'>
180.3605 -<edit:interface name='::svg::SVGFEFuncAElement'/>
180.3606 -</edit:with>
180.3607 -
180.3608 -<h3 id="InterfaceSVGFECompositeElement">Interface SVGFECompositeElement</h3>
180.3609 -
180.3610 -<edit:with element='feComposite'>
180.3611 -<edit:interface name='::svg::SVGFECompositeElement'/>
180.3612 -</edit:with>
180.3613 -
180.3614 -<h3 id="InterfaceSVGFEConvolveMatrixElement">Interface SVGFEConvolveMatrixElement</h3>
180.3615 -
180.3616 -<edit:with element='feConvolveMatrix'>
180.3617 -<edit:interface name='::svg::SVGFEConvolveMatrixElement'/>
180.3618 -</edit:with>
180.3619 -
180.3620 -<h3 id="InterfaceSVGFEDiffuseLightingElement">Interface SVGFEDiffuseLightingElement</h3>
180.3621 -
180.3622 -<edit:with element='feDiffuseLighting'>
180.3623 -<edit:interface name='::svg::SVGFEDiffuseLightingElement'/>
180.3624 -</edit:with>
180.3625 -
180.3626 -<h3 id="InterfaceSVGFEDistantLightElement">Interface SVGFEDistantLightElement</h3>
180.3627 -
180.3628 -<edit:with element='feDistantLight'>
180.3629 -<edit:interface name='::svg::SVGFEDistantLightElement'/>
180.3630 -</edit:with>
180.3631 -
180.3632 -<h3 id="InterfaceSVGFEPointLightElement">Interface SVGFEPointLightElement</h3>
180.3633 -
180.3634 -<edit:with element='fePointLight'>
180.3635 -<edit:interface name='::svg::SVGFEPointLightElement'/>
180.3636 -</edit:with>
180.3637 -
180.3638 -<h3 id="InterfaceSVGFESpotLightElement">Interface SVGFESpotLightElement</h3>
180.3639 -
180.3640 -<edit:with element='feSpotLight'>
180.3641 -<edit:interface name='::svg::SVGFESpotLightElement'/>
180.3642 -</edit:with>
180.3643 -
180.3644 -<h3 id="InterfaceSVGFEDisplacementMapElement">Interface SVGFEDisplacementMapElement</h3>
180.3645 -
180.3646 -<edit:with element='feDisplacementMap'>
180.3647 -<edit:interface name='::svg::SVGFEDisplacementMapElement'/>
180.3648 -</edit:with>
180.3649 -
180.3650 -<h3 id="InterfaceSVGFEFloodElement">Interface SVGFEFloodElement</h3>
180.3651 -
180.3652 -<edit:with element='feFlood'>
180.3653 -<edit:interface name='::svg::SVGFEFloodElement'/>
180.3654 -</edit:with>
180.3655 -
180.3656 -<h3 id="InterfaceSVGFEGaussianBlurElement">Interface SVGFEGaussianBlurElement</h3>
180.3657 -
180.3658 -<edit:with element='feGaussianBlur'>
180.3659 -<edit:interface name='::svg::SVGFEGaussianBlurElement'/>
180.3660 -</edit:with>
180.3661 -
180.3662 -<h3 id="InterfaceSVGFEImageElement">Interface SVGFEImageElement</h3>
180.3663 -
180.3664 -<edit:with element='feImage'>
180.3665 -<edit:interface name='::svg::SVGFEImageElement'/>
180.3666 -</edit:with>
180.3667 -
180.3668 -<h3 id="InterfaceSVGFEMergeElement">Interface SVGFEMergeElement</h3>
180.3669 -
180.3670 -<edit:with element='feMerge'>
180.3671 -<edit:interface name='::svg::SVGFEMergeElement'/>
180.3672 -</edit:with>
180.3673 -
180.3674 -<h3 id="InterfaceSVGFEMergeNodeElement">Interface SVGFEMergeNodeElement</h3>
180.3675 -
180.3676 -<edit:with element='feMergeNode'>
180.3677 -<edit:interface name='::svg::SVGFEMergeNodeElement'/>
180.3678 -</edit:with>
180.3679 -
180.3680 -<h3 id="InterfaceSVGFEMorphologyElement">Interface SVGFEMorphologyElement</h3>
180.3681 -
180.3682 -<edit:with element='feMorphology'>
180.3683 -<edit:interface name='::svg::SVGFEMorphologyElement'/>
180.3684 -</edit:with>
180.3685 -
180.3686 -<h3 id="InterfaceSVGFEOffsetElement">Interface SVGFEOffsetElement</h3>
180.3687 -
180.3688 -<edit:with element='feOffset'>
180.3689 -<edit:interface name='::svg::SVGFEOffsetElement'/>
180.3690 -</edit:with>
180.3691 -
180.3692 -<h3 id="InterfaceSVGFESpecularLightingElement">Interface SVGFESpecularLightingElement</h3>
180.3693 -
180.3694 -<edit:with element='feSpecularLighting'>
180.3695 -<edit:interface name='::svg::SVGFESpecularLightingElement'/>
180.3696 -</edit:with>
180.3697 -
180.3698 -<h3 id="InterfaceSVGFETileElement">Interface SVGFETileElement</h3>
180.3699 -
180.3700 -<edit:with element='feTile'>
180.3701 -<edit:interface name='::svg::SVGFETileElement'/>
180.3702 -</edit:with>
180.3703 -
180.3704 -<h3 id="InterfaceSVGFETurbulenceElement">Interface SVGFETurbulenceElement</h3>
180.3705 -
180.3706 -<edit:with element='feTurbulence'>
180.3707 -<edit:interface name='::svg::SVGFETurbulenceElement'/>
180.3708 -</edit:with>
180.3709 -
180.3710 -<h3 id="InterfaceSVGFEDropShadowElement">Interface SVGFEDropShadowElement</h3>
180.3711 -
180.3712 -<edit:with element='feDropShadow'>
180.3713 -<edit:interface name='::svg::SVGFEDropShadowElement'/>
180.3714 -</edit:with>
180.3715 -
180.3716 -<h2 id="references1">References</h2>
180.3717 -<h3 id="normref">Normative References</h3>
180.3718 -<dl>
180.3719 -  <dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt>
180.3720 -    <dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 
180.3721 -		Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie, eds.,
180.3722 -		W3C, 23 April 2009, (Candidate Recommendation) </dd>
180.3723 -
180.3724 -  <dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt>
180.3725 -    <dd><strong>Document Schema Definition Languages (DSDL) — Part 4:
180.3726 -      Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD
180.3727 -      19757-4</strong>, See <a
180.3728 -      href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a>
180.3729 -    </dd>
180.3730 -
180.3731 -  <dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt>
180.3732 -    <dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff,
180.3733 -      SIGGRAPH '84 Conference Proceedings, Association for Computing
180.3734 -      Machinery, Volume 18, Number 3, July 1984. </dd>
180.3735 -  <dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt>
180.3736 -    <dd><strong>Document Schema Definition Languages (DSDL) — Part 2:
180.3737 -      Regular grammar- based validation — RELAX NG. ISO/IEC FDIS
180.3738 -      19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span
180.3739 -      xml:lang="ja" lang="ja" class="rb">æ‘ç”° 真</span> <span
180.3740 -      class="rp">(</span><span class="rt"><span
180.3741 -      class="familyname">Murata</span> M.</span><span
180.3742 -      class="rp">)</span></span>, eds., 12 December 2002. See <a
180.3743 -      href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a>
180.3744 -    </dd>
180.3745 -  <dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt>
180.3746 -    <dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P.
180.3747 -      Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest
180.3748 -      version available at <a
180.3749 -      href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.
180.3750 -      See also <a
180.3751 -      href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing
180.3752 -      XML 1.1 documents with XML Schema 1.0 processors</a>. </dd>
180.3753 -  <dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt>
180.3754 -    <dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>,
180.3755 -      Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a
180.3756 -      href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>
180.3757 -    </dd>
180.3758 -  <dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt>
180.3759 -    <dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>,
180.3760 -      Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a
180.3761 -      href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a>
180.3762 -    </dd>
180.3763 -</dl>
180.3764 -
180.3765 -<h3 id="informref">Informative References</h3>
180.3766 -<dl>
180.3767 -  <dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt>
180.3768 -    <dd><strong>HTML5</strong>, Ian Hickson editor, Google,
180.3769 -      10 June 2008 (Working Draft). See <a
180.3770 -      href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a>
180.3771 -    </dd>
180.3772 -</dl>
180.3773 -
180.3774 -  <h2 id="changes">Changes</h2>
180.3775 -  <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p>
180.3776 -</body>
180.3777 -</html>
   181.1 --- a/master/SVGFilterPrimer.html	Thu Feb 24 10:19:12 2011 +0000
   181.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.3 @@ -1,320 +0,0 @@
   181.4 -<?xml version="1.0" encoding="UTF-8"?>
   181.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
   181.6 -<html xmlns="http://www.w3.org/1999/xhtml"
   181.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
   181.8 -<head>
   181.9 -  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  181.10 -  <title>SVG Filters 1.2, Part 1: Primer</title>
  181.11 -  <link rel="stylesheet" type="text/css" href="style/svg-style.css" />
  181.12 -  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
  181.13 -</head>
  181.14 -
  181.15 -<body>
  181.16 -
  181.17 -<div class="head">
  181.18 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  181.19 -  <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1>
  181.20 -  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  181.21 -  <dl>
  181.22 -    <dt>This version:</dt>
  181.23 -    <dd><edit:thisversion/></dd>
  181.24 -    <dt>Latest version:</dt>
  181.25 -    <dd><edit:latestversion/></dd>
  181.26 -    <dt>Previous version:</dt>
  181.27 -    <dd><edit:previousversion/></dd>
  181.28 -    <dt>Editor:</dt>
  181.29 -    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
  181.30 -    <dt>Authors:</dt>
  181.31 -    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
  181.32 -  </dl>
  181.33 -  <edit:copyright/>
  181.34 -</div>
  181.35 -
  181.36 -<hr/>
  181.37 -
  181.38 -<h2 id="abstract" edit:toc="no">Abstract </h2>
  181.39 -
  181.40 -<p>
  181.41 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  181.42 -</p>
  181.43 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  181.44 -</p>
  181.45 -<p>
  181.46 -This document introduces the features used by SVG filters.
  181.47 -</p>
  181.48 -
  181.49 -<h2 id="status" edit:toc="no">Status of This Document </h2>
  181.50 -
  181.51 -<p><em>This section describes the status of this document at the time of its
  181.52 -publication. Other documents may supersede this document. The latest status
  181.53 -of this document series is maintained at the W3C. </em> </p>
  181.54 -
  181.55 -<p>This document is the first public working draft of this specification. </p>
  181.56 -
  181.57 -<p>This document has been produced by the <a
  181.58 -href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  181.59 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  181.60 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  181.61 -</p>
  181.62 -
  181.63 -<p>We explicitly invite comments on this specification. Please send them to
  181.64 -<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a
  181.65 -href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>).
  181.66 -For comments on the core SVG language, use <a
  181.67 -href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for
  181.68 -issues related to vector graphics on the Web (<a
  181.69 -href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance
  181.70 -of the archiving policy is requested automatically upon first post to either
  181.71 -list. To subscribe to these lists send an email to <a
  181.72 -href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a>
  181.73 -or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with
  181.74 -the word subscribe in the subject line. </p>
  181.75 -
  181.76 -<p>The latest information regarding <a
  181.77 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  181.78 -related to this document is available on the Web. As of this publication, the
  181.79 -SVG Working Group are not aware of any royalty-bearing patents they believe
  181.80 -to be essential to SVG. </p>
  181.81 -<p>Publication of this document does not imply endorsement by the W3C
  181.82 -membership. A list of current W3C Recommendations and other technical
  181.83 -documents can be found at <a
  181.84 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  181.85 -be updated, replaced, or obsoleted by other documents at any time. It is
  181.86 -inappropriate to cite a W3C Working Draft as anything other than a <em>work
  181.87 -in progress</em>." </p>
  181.88 -
  181.89 -<h2 id="howto" edit:toc="no">How to read this document and give feedback </h2>
  181.90 -
  181.91 -<p>This is a primer for the SVG Filter specification. It gives guidelines on
  181.92 -how to use the SVG Filter specification with SVG 1.2. In many cases the
  181.93 -reader will have to be familiar with the <a
  181.94 -href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p>
  181.95 -
  181.96 -<p>
  181.97 -This document is informative.
  181.98 -</p>
  181.99 -
 181.100 -<h2 id="toc" edit:toc="no">Table of Contents</h2>
 181.101 -
 181.102 -<edit:fulltoc/>
 181.103 -
 181.104 -<h2 id="Introduction">Filters in SVG</h2>
 181.105 -
 181.106 -<p>Filter effects are defined by <a>'filter element'</a> elements. To apply a filter effect
 181.107 -to a <a>graphics element</a> or a <a>container element</a>, you set the
 181.108 -value of the <a>'filter property'</a> property on the given element such that
 181.109 -it references the filter effect.</p>
 181.110 -
 181.111 -<p>Each <a>'filter element'</a> element contains a set of
 181.112 -<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter
 181.113 -primitive performs a single fundamental graphical operation (e.g., a blur or
 181.114 -a lighting effect) on one or more inputs, producing a graphical result.
 181.115 -Because most of the filter primitives represent some form of image
 181.116 -processing, in most cases the output from a filter primitive is a single RGBA
 181.117 -image.</p>
 181.118 -
 181.119 -<p>The original source graphic or the result from a filter primitive can be
 181.120 -used as input into one or more other filter primitives. A common application
 181.121 -is to use the source graphic multiple times. For example, a simple filter
 181.122 -could replace one graphic by two by adding a black copy of original source
 181.123 -graphic offset to create a drop shadow. In effect, there are now two layers
 181.124 -of graphics, both with the same original source graphics.</p>
 181.125 -
 181.126 -<p>When applied to <a>container elements</a> such as <a>'g'</a>, the <a>'filter property'</a>
 181.127 -property applies to the contents of the
 181.128 -group as a whole. The group's children do not render to the screen directly;
 181.129 -instead, the graphics commands necessary to render the children are stored
 181.130 -temporarily. Typically, the graphics commands are executed as part of the
 181.131 -processing of the referenced <a>'filter element'</a> element via use of the keywords
 181.132 -<a>SourceGraphic</a> or <a>SourceAlpha</a>.
 181.133 -Filter effects can be applied to <a>container elements</a> with no
 181.134 -content (e.g., an empty <a>'g'</a> element), in which case the
 181.135 -<a>SourceGraphic</a> or <a>SourceAlpha</a> consist of a transparent black
 181.136 -rectangle that is the size of the
 181.137 -<a>filter effects region</a>.</p>
 181.138 -
 181.139 -<p>Sometimes filter primitives result in undefined pixels. For example,
 181.140 -filter primitive <a>'feOffset'</a> can shift an image down and to the
 181.141 -right, leaving undefined pixels at the top and left. In these cases, the
 181.142 -undefined pixels are set to transparent black.</p>
 181.143 -
 181.144 -<h2 id="Example">An example</h2>
 181.145 -
 181.146 -<p>The following shows an example of a filter effect.</p>
 181.147 -
 181.148 -<p><span class="example-ref">Example filters01</span> - introducing filter
 181.149 -effects.</p>
 181.150 -
 181.151 -<edit:example href="examples/filters01.svg" image="yes" link="yes"/>
 181.152 -
 181.153 -<p>The filter effect used in the example above is repeated here with
 181.154 -reference numbers in the left column before each of the six filter
 181.155 -primitives:</p>
 181.156 -
 181.157 -<table summary="filter example with reference numbers">
 181.158 -  <tbody>
 181.159 -    <tr>
 181.160 -      <td valign="top"><pre style="color:black"> 
 181.161 - 
 181.162 -1
 181.163 -2
 181.164 -3
 181.165 - 
 181.166 - 
 181.167 - 
 181.168 - 
 181.169 -4
 181.170 -5
 181.171 - 
 181.172 -6
 181.173 - 
 181.174 - 
 181.175 - </pre>
 181.176 -      </td>
 181.177 -      <td valign="top"><pre>&lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
 181.178 -  &lt;desc&gt;Produces a 3D lighting effect.&lt;/desc&gt;
 181.179 -  &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
 181.180 -  &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
 181.181 -  &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
 181.182 -                      specularExponent="20" lighting-color="#bbbbbb" 
 181.183 -                      result="specOut"&gt;
 181.184 -    &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
 181.185 -  &lt;/feSpecularLighting&gt;
 181.186 -  &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
 181.187 -  &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
 181.188 -               k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
 181.189 -  &lt;feMerge&gt;
 181.190 -    &lt;feMergeNode in="offsetBlur"/&gt;
 181.191 -    &lt;feMergeNode in="litPaint"/&gt;
 181.192 -  &lt;/feMerge&gt;
 181.193 -&lt;/filter&gt;</pre>
 181.194 -      </td>
 181.195 -    </tr>
 181.196 -  </tbody>
 181.197 -</table>
 181.198 -
 181.199 -<p>The following pictures show the intermediate image results from each of
 181.200 -the six filter elements:</p>
 181.201 -
 181.202 -<table summary="filter example intermediate results">
 181.203 -  <tbody>
 181.204 -    <tr>
 181.205 -      <td><p><img width="115" height="70"
 181.206 -        alt="filters01 - original source graphic"
 181.207 -        src="examples/filters01-0.png" /><br />
 181.208 -        Source graphic</p>
 181.209 -      </td>
 181.210 -      <td> </td>
 181.211 -      <td><p><img width="115" height="70"
 181.212 -        alt="filters01 - after filter element 1"
 181.213 -        src="examples/filters01-1.png" /><br />
 181.214 -        After filter primitive 1</p>
 181.215 -      </td>
 181.216 -      <td> </td>
 181.217 -      <td><p><img width="115" height="70"
 181.218 -        alt="filters01 - after filter element 2"
 181.219 -        src="examples/filters01-2.png" /><br />
 181.220 -        After filter primitive 2</p>
 181.221 -      </td>
 181.222 -      <td> </td>
 181.223 -      <td><p><img width="115" height="70"
 181.224 -        alt="filters01 - after filter element 3"
 181.225 -        src="examples/filters01-3.png" /><br />
 181.226 -        After filter primitive 3</p>
 181.227 -      </td>
 181.228 -    </tr>
 181.229 -    <tr>
 181.230 -      <td> </td>
 181.231 -      <td> </td>
 181.232 -      <td></td>
 181.233 -      <td></td>
 181.234 -      <td></td>
 181.235 -      <td></td>
 181.236 -      <td></td>
 181.237 -    </tr>
 181.238 -    <tr>
 181.239 -      <td> </td>
 181.240 -      <td> </td>
 181.241 -      <td><p><img width="115" height="70"
 181.242 -        alt="filters01 - after filter element 4"
 181.243 -        src="examples/filters01-4.png" /><br />
 181.244 -        After filter primitive 4</p>
 181.245 -      </td>
 181.246 -      <td> </td>
 181.247 -      <td><p><img width="115" height="70"
 181.248 -        alt="filters01 - after filter element 5"
 181.249 -        src="examples/filters01-5.png" /><br />
 181.250 -        After filter primitive 5</p>
 181.251 -      </td>
 181.252 -      <td> </td>
 181.253 -      <td><p><img width="115" height="70"
 181.254 -        alt="filters01 - after filter element 6"
 181.255 -        src="examples/filters01-6.png" /><br />
 181.256 -        After filter primitive 6</p>
 181.257 -      </td>
 181.258 -    </tr>
 181.259 -  </tbody>
 181.260 -</table>
 181.261 -<ol>
 181.262 -  <li>Filter primitive <a>'feGaussianBlur'</a> takes input <a>SourceAlpha</a>,
 181.263 -    which is the alpha channel of
 181.264 -    the source graphic. The result is stored in a temporary buffer named
 181.265 -    "blur". Note that "blur" is used as input to both filter primitives 2 and
 181.266 -    3.</li>
 181.267 -  <li>Filter primitive <a>'feOffset'</a> takes buffer "blur", shifts
 181.268 -    the result in a positive direction in both x and y, and creates a new
 181.269 -    buffer named "offsetBlur". The effect is that of a drop shadow.</li>
 181.270 -  <li>Filter primitive <a>'feSpecularLighting'</a>, uses buffer "blur"
 181.271 -    as a model of a surface elevation and generates a lighting effect from a
 181.272 -    single point source. The result is stored in buffer "specOut".</li>
 181.273 -  <li>Filter primitive <a>'feComposite'</a> masks out the result of
 181.274 -    filter primitive 3 by the original source graphics alpha channel so that
 181.275 -    the intermediate result is no bigger than the original source
 181.276 -  graphic.</li>
 181.277 -  <li>Filter primitive <a>'feComposite'</a> composites the result of
 181.278 -    the specular lighting with the original source graphic.</li>
 181.279 -  <li>Filter primitive <a>'feMerge'</a> composites two layers together.
 181.280 -    The lower layer consists of the drop shadow result from filter primitive
 181.281 -    2. The upper layer consists of the specular lighting result from filter
 181.282 -    primitive 5.</li>
 181.283 -</ol>
 181.284 -
 181.285 -<h2 id="feGaussianBlurElement">Filter primitive <span
 181.286 -class="element-name">'feGaussianBlur'</span></h2>
 181.287 -
 181.288 -<p>
 181.289 -  The <a>'feGaussianBlur'</a> filter primitive can be used to create blur effects.
 181.290 -  Below is an example where the blur is applied only in one direction, which can
 181.291 -  give better performance in some <a>user agents</a>. 
 181.292 -  <edit:example href="examples/feGaussianBlur-stdDeviation-00.svg" image="yes" link="yes"/>
 181.293 -</p>
 181.294 -
 181.295 -<p>The blur filter can also be used for creating the impression of something being in motion, as in this example.
 181.296 -  <edit:example href="examples/feGaussianBlur-motion-00.svg" image="yes" link="yes"/>
 181.297 -</p>
 181.298 -
 181.299 -<h2 id="references">References </h2>
 181.300 -<dl>
 181.301 -  <dt id="SVG12Full">SVG12</dt>
 181.302 -    <dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>,
 181.303 -      Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a
 181.304 -      href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a>
 181.305 -    </dd>
 181.306 -  <dt id="SVG12Requirements">SVG12Reqs</dt>
 181.307 -    <dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor,
 181.308 -      W3C, 22 April 2002 (Working Draft). See <a
 181.309 -      href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a>
 181.310 -    </dd>
 181.311 -  <dt id="SVGFilterRequirements">SVGFilterReqs</dt>
 181.312 -    <dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007
 181.313 -      (Working Draft). See <a
 181.314 -      href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a>
 181.315 -    </dd>
 181.316 -  <dt id="SVG12Filter">SVG12Filters</dt>
 181.317 -    <dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a
 181.318 -      href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a>
 181.319 -    </dd>
 181.320 -</dl>
 181.321 -
 181.322 -</body>
 181.323 -</html>
   182.1 --- a/master/SVGFilterReqs.html	Thu Feb 24 10:19:12 2011 +0000
   182.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.3 @@ -1,305 +0,0 @@
   182.4 -<?xml version="1.0" encoding="UTF-8"?>
   182.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
   182.6 -<html xmlns="http://www.w3.org/1999/xhtml"
   182.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
   182.8 -<head>
   182.9 -  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  182.10 -  <title>SVG Filter Requirements</title>
  182.11 -  <style type="text/css">
  182.12 -
  182.13 -      .designgoals {
  182.14 -       list-style-type: decimal;
  182.15 -      }
  182.16 -
  182.17 -      .req-level1 {
  182.18 -       list-style-type: decimal;
  182.19 -       font-weight: bold;
  182.20 -      }
  182.21 -
  182.22 -      .req-level2 {
  182.23 -       list-style-type: decimal;
  182.24 -       font-weight: normal;
  182.25 -      }
  182.26 -
  182.27 -      .req-level1 li {
  182.28 -       margin-top: 1em;
  182.29 -      }
  182.30 -
  182.31 -      .req-level2 li {
  182.32 -       margin-top: 0em;
  182.33 -      }
  182.34 -
  182.35 -      .label {
  182.36 -       margin-top: 1em;
  182.37 -      }
  182.38 -
  182.39 -      .comment {
  182.40 -       background: #ffffaa;
  182.41 -      }
  182.42 -
  182.43 -      .svgversion {
  182.44 -       color: #336633;
  182.45 -       font-weight: bold;
  182.46 -      }
  182.47 -
  182.48 -      .term {
  182.49 -       font-weight: bold;
  182.50 -       color: #aa3333;
  182.51 -      }
  182.52 -
  182.53 -      .issue {
  182.54 -       color: #ff0000;
  182.55 -      }
  182.56 -
  182.57 -    </style>
  182.58 -  <link type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/base" />
  182.59 -</head>
  182.60 -
  182.61 -<body>
  182.62 -
  182.63 -<div class="head">
  182.64 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  182.65 -  <h1 id="pagetitle">SVG Filter Requirements</h1>
  182.66 -  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  182.67 -  <dl>
  182.68 -    <dt>This version:</dt>
  182.69 -    <dd><edit:thisversion/></dd>
  182.70 -    <dt>Latest version:</dt>
  182.71 -    <dd><edit:latestversion/></dd>
  182.72 -    <dt>Previous version:</dt>
  182.73 -    <dd><edit:previousversion/></dd>
  182.74 -    <dt>Editor:</dt>
  182.75 -    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
  182.76 -    <dt>Authors:</dt>
  182.77 -    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
  182.78 -  </dl>
  182.79 -  <edit:copyright/>
  182.80 -</div>
  182.81 -
  182.82 -<hr/>
  182.83 -
  182.84 -<h2 id="sec-abstract" edit:toc="no">Abstract</h2>
  182.85 -
  182.86 -<p>This document lists the design principles and requirements for the
  182.87 -creation of a SVG specification related to filters. </p>
  182.88 -
  182.89 -<h2 id="sec-status" edit:toc="no">Status of this Document</h2>
  182.90 -
  182.91 -<p>This is a W3C Working Draft for review by W3C Members and other interested
  182.92 -parties. It is a draft document and may be updated, replaced or made obsolete
  182.93 -by other documents at any time. It is inappropriate to use W3C Working Drafts
  182.94 -as reference material or to cite them as other than "work in progress". A
  182.95 -list of current W3C Recommendations and other technical documents, including
  182.96 -Working Drafts and Notes, can be found at <a
  182.97 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p>
  182.98 -
  182.99 -<p>This is the first release of the SVG Filter Requirements. It is expected
 182.100 -that this document will progress through a number of working drafts,
 182.101 -including "Last Call", before being published in final form. </p>
 182.102 -
 182.103 -<p>This document was developed by the <a
 182.104 -href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG)
 182.105 -working group as part of the W3C <a
 182.106 -href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors
 182.107 -of this document are the SVG Working Group members. </p>
 182.108 -
 182.109 -<p>Feedback on this document should be sent to the email list <a
 182.110 -href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This
 182.111 -is an archived public list specific to the issues of SVG Filters. Public
 182.112 -discussion of issues related to vector graphics on the Web and SVG in
 182.113 -particular takes place on the <a href="mailto:www-svg@w3.org">the public
 182.114 -mailing list of the SVG Working Group</a> (<a
 182.115 -href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To
 182.116 -subscribe send an email to <code>www-svg-request@w3.org</code> with the word
 182.117 -<code>subscribe</code> in the subject line. </p>
 182.118 -
 182.119 -<p>The latest information regarding <a rel="disclosures"
 182.120 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
 182.121 -related to this document is available on the Web. As of this publication, the
 182.122 -SVG Working Group are not aware of any royalty-bearing patents they believe
 182.123 -to be essential to SVG. </p>
 182.124 -
 182.125 -<p><em>This section represents the status of this document at the time this
 182.126 -version was published. It will become outdated if and when a new version is
 182.127 -published. The latest status is maintained at the W3C. </em> </p>
 182.128 -
 182.129 -<h2 id="toc" edit:toc="no">Table of Contents</h2>
 182.130 -
 182.131 -<edit:fulltoc/>
 182.132 -
 182.133 -<div class="div1">
 182.134 -<h2 id="sec-introduction">Introduction </h2>
 182.135 -
 182.136 -<p>The 
 182.137 -<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C
 182.138 -recommendation that describes two-dimensional graphics in XML. </p>
 182.139 -</div>
 182.140 -
 182.141 -<div class="div1">
 182.142 -<h2 id="sec-terminology">Terminology </h2>
 182.143 -
 182.144 -<p>The following key words and phrases used throughout this document are
 182.145 -defined here for clarity. The terms Must, Should, and May are used to specify
 182.146 -the extent to which an item is a requirement for the SVG working group in
 182.147 -defining SVGP. These recommendations should not be mistaken as a guide to
 182.148 -implementors. </p>
 182.149 -<ol>
 182.150 -  <li><b>'Must'</b> means that the item is an absolute requirement. </li>
 182.151 -  <li><b>'Should'</b> means that there may exist valid reasons in particular
 182.152 -    circumstances to ignore the item, but the full implications must be
 182.153 -    understood and carefully weighed before choosing a different course. </li>
 182.154 -  <li><b>'May' </b> means that item will be considered, but further
 182.155 -    examination is needed to determine if the item should be treated as a
 182.156 -    requirement. </li>
 182.157 -  <li><b>'SVG' </b> refers to SVG in general without reference to any version
 182.158 -    or profile. </li>
 182.159 -  <li><b>'SVG 1.0' </b> refers to the original SVG specification. </li>
 182.160 -  <li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li>
 182.161 -  <li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to
 182.162 -    reference this specification. </li>
 182.163 -  <li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for
 182.164 -    filtering. </li>
 182.165 -</ol>
 182.166 -</div>
 182.167 -
 182.168 -<div class="div1">
 182.169 -<h2 id="sec-usage">Usage Scenarios </h2>
 182.170 -
 182.171 -<p>The following usage scenarios illustrate some of the ways in which SVG
 182.172 -Filters might be used for various applications. </p>
 182.173 -
 182.174 -<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to
 182.175 -produce drop shadows. </p>
 182.176 -<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p>
 182.177 -</div>
 182.178 -
 182.179 -<div class="div1">
 182.180 -<h2 id="sec-features">Special Filter Considerations</h2>
 182.181 -
 182.182 -<p><b>Memory and processor requirements</b> A filter effect may require
 182.183 -significant memory or processing resources. </p>
 182.184 -</div>
 182.185 -
 182.186 -<div class="div1">
 182.187 -<h2 id="sec-requirements">Requirements</h2>
 182.188 -<ol class="req-level1">
 182.189 -  <li>General Requirements 
 182.190 -    <ol class="req-level2">
 182.191 -      <li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid
 182.192 -        SVGF filter. </li>
 182.193 -      <li>Conformance criteria for SVGF <span class="term">must</span> be
 182.194 -        produced. The criteria <span class="term">should</span> be separated
 182.195 -        into sections relevant to particular application types (eg. SVG
 182.196 -        files/document fragments, SVG generators, SVG viewers, SVG printers,
 182.197 -        etc.) </li>
 182.198 -      <li>Software or documents <span class="term">must</span> pass the
 182.199 -        relevant criteria to be able to claim conformance to the particular
 182.200 -        application type. </li>
 182.201 -      <li>A conformance test suite <span class="term">must</span> be
 182.202 -        developed for SVGF. The test suite must be made publicly available.
 182.203 -        Conformance test suites for other uses of SVGF (e.g. prepress
 182.204 -        guidelines) <span class="term">may</span> be developed. </li>
 182.205 -      <li>A specification referencing SVGF <span class="term">may</span>
 182.206 -        declare that 'enableBackground' is not supported when used in
 182.207 -        conjunction with that specification. If so, then support for
 182.208 -        'backgroundAlpha' and 'backgroundImage' <span
 182.209 -        class="term">must</span> be excluded as well. </li>
 182.210 -      <li>A specification referencing SVGF <span class="term">must</span>
 182.211 -        declare if animations applies when a 'filter' chain is in its scope.
 182.212 -      </li>
 182.213 -    </ol>
 182.214 -  </li>
 182.215 -  <li>Scripting 
 182.216 -    <ol class="req-level2">
 182.217 -      <li>A dynamic SVGF viewer <span class="term">must</span> support the
 182.218 -        SVGF scripting feature set. </li>
 182.219 -    </ol>
 182.220 -  </li>
 182.221 -  <li>Animation 
 182.222 -    <ol class="req-level2">
 182.223 -      <li>A dynamic SVGF viewer <span class="term">must</span> support animation of all
 182.224 -        properties listed as animatable. </li>
 182.225 -    </ol>
 182.226 -  </li>
 182.227 -</ol>
 182.228 -</div>
 182.229 -
 182.230 -<div class="div1">
 182.231 -<h2 id="sec-references">References</h2>
 182.232 -<dl class="references">
 182.233 -  <dt class="label" id="ref-svg">SVG 1.1</dt>
 182.234 -    <dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon
 182.235 -      Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003
 182.236 -      (Recommendation). See <a
 182.237 -      href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd>
 182.238 -  <dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0
 182.239 -  Requirements</dt>
 182.240 -    <dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor,
 182.241 -      W3C, 22 April 2002. See <a
 182.242 -      href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a>
 182.243 -    </dd>
 182.244 -  <dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt>
 182.245 -    <dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin,
 182.246 -      editor, W3C, 14 January 2003 (Recommendation). See <a
 182.247 -      href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a>
 182.248 -    </dd>
 182.249 -</dl>
 182.250 -</div>
 182.251 -<hr class="xhtml" />
 182.252 -
 182.253 -<h2 id="sec-authorlist">Author List</h2>
 182.254 -
 182.255 -<p>The authors of this specification are the participants of the W3C SVG
 182.256 -Working Group.</p>
 182.257 -<dl>
 182.258 -  <dt>Authors:</dt>
 182.259 -    <dd><ul>
 182.260 -        <li>Ola Andersson, ZOOMON AB</li>
 182.261 -        <li>Henric Axelsson, Ericsson AB</li>
 182.262 -        <li>Phil Armstrong, Corel Corporation</li>
 182.263 -        <li>Robin Berjon, Expway</li>
 182.264 -        <li>Benoît Bézaire, Corel Corporation</li>
 182.265 -        <li>Craig Brown, Canon Information Systems Research Australia</li>
 182.266 -        <li>Mike Bultrowicz, Savage Software</li>
 182.267 -        <li>Tolga Capin, Nokia Inc.</li>
 182.268 -        <li>Mathias Larsson Carlander, Ericsson AB</li>
 182.269 -        <li>Jakob Cederquist, ZOOMON AB</li>
 182.270 -        <li>Charilaos Christopoulos, Ericsson AB</li>
 182.271 -        <li>Lee Cole, Quark</li>
 182.272 -        <li>Don Cone, America Online Inc.</li>
 182.273 -        <li>Alex Danilo, Canon Information Systems Research Australia</li>
 182.274 -        <li>Thomas DeWeese, Eastman Kodak</li>
 182.275 -        <li>Jon Ferraiolo, Adobe Systems Inc.</li>
 182.276 -        <li>Darryl Fuller, Schema Software</li>
 182.277 -        <li>藤沢 淳 (FUJISAWA Jun), Canon</li>
 182.278 -        <li>Rick Graham, BitFlash</li>
 182.279 -        <li>Vincent Hardy, Sun Microsystems Inc.</li>
 182.280 -        <li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li>
 182.281 -        <li>Lofton Henderson, OASIS</li>
 182.282 -        <li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li>
 182.283 -        <li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li>
 182.284 -        <li>Christophe Jolif, ILOG S.A.</li>
 182.285 -        <li>Lee Klosterman, Hewlett-Packard</li>
 182.286 -        <li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li>
 182.287 -        <li>Thierry Kormann, ILOG S.A.</li>
 182.288 -        <li>Yuri Khramov, Schema Software</li>
 182.289 -        <li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li>
 182.290 -        <li>Philip Mansfield, Schema Software</li>
 182.291 -        <li>Peter Mierau, Adobe Systems Inc.</li>
 182.292 -        <li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li>
 182.293 -        <li>Luc Minnebo, Agfa-Gevaert N.V.</li>
 182.294 -        <li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li>
 182.295 -        <li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li>
 182.296 -        <li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li>
 182.297 -        <li>Brad Sipes, ZOOMON AB</li>
 182.298 -        <li>Peter Sorotokin, Adobe Systems Inc.</li>
 182.299 -        <li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li>
 182.300 -        <li>Rick Yardumian, Canon Development Americas</li>
 182.301 -        <li>Charles Ying, Openwave Systems, Inc.</li>
 182.302 -      </ul>
 182.303 -    </dd>
 182.304 -</dl>
 182.305 -</body>
 182.306 -<!-- SVG Printing Requirements Document -->
 182.307 -<!-- $Id$ -->
 182.308 -</html>
   183.1 --- a/master/definitions-primer.xml	Thu Feb 24 10:19:12 2011 +0000
   183.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.3 @@ -1,11 +0,0 @@
   183.4 -<!-- Definitions file for SVG Filters 1.2 Primer -->
   183.5 -
   183.6 -<definitions xmlns='http://mcc.id.au/ns/local'>
   183.7 -
   183.8 -  <import
   183.9 -    href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/'
  183.10 -    cvs-href='SVGFilter.html'
  183.11 -    definitions='definitions.xml'
  183.12 -    />
  183.13 -
  183.14 -</definitions>
   184.1 --- a/master/definitions.xml	Thu Feb 24 10:19:12 2011 +0000
   184.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   184.3 @@ -1,467 +0,0 @@
   184.4 -<!-- Definitions file for SVG Filters 1.2 Language -->
   184.5 -
   184.6 -<definitions xmlns='http://mcc.id.au/ns/local'>
   184.7 -
   184.8 -  <import
   184.9 -    href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'
  184.10 -    definitions='../../../../SVG/profiles/1.1F2/master/definitions.xml'
  184.11 -    />
  184.12 -
  184.13 -  <import
  184.14 -    href='http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/'
  184.15 -    definitions='../../../../SVG/profiles/1.2T/master/definitions.xml'
  184.16 -    />
  184.17 -
  184.18 -  <!-- ... elements and element-specific attributes ....................... -->
  184.19 -  <element
  184.20 -      name='feBlend'
  184.21 -      href='#feBlendElement'
  184.22 -      contentmodel='anyof'
  184.23 -      elements='animate, set'
  184.24 -      attributecategories='core, style, presentation, filter primitive'
  184.25 -      attributes='in'
  184.26 -      interfaces='SVGFEBlendElement'>
  184.27 -    <attribute name='in2' href='#feBlendIn2Attribute'/>
  184.28 -    <attribute name='mode' href='#feBlendModeAttribute'/>
  184.29 -  </element>
  184.30 -
  184.31 -  <element
  184.32 -      name='feColorMatrix'
  184.33 -      href='#feColorMatrixElement'
  184.34 -      contentmodel='anyof'
  184.35 -      elements='animate, set'
  184.36 -      attributecategories='core, style, presentation, filter primitive'
  184.37 -      attributes='in'
  184.38 -      interfaces='SVGFEColorMatrixElement'>
  184.39 -    <attribute name='type' href='#feColorMatrixTypeAttribute'/>
  184.40 -    <attribute name='values' href='#feColorMatrixValuesAttribute'/>
  184.41 -  </element>
  184.42 -
  184.43 -  <element
  184.44 -    name='feComponentTransfer'
  184.45 -    href='#feComponentTransferElement'
  184.46 -    contentmodel='anyof'
  184.47 -    elements='feFuncR, feFuncG, feFuncB, feFuncA'
  184.48 -    attributecategories='core, style, presentation, filter primitive'
  184.49 -    attributes='in'
  184.50 -    interfaces='SVGFEComponentTransferElement'/>
  184.51 -
  184.52 -  <element
  184.53 -      name='feComposite'
  184.54 -      href='#feCompositeElement'
  184.55 -      contentmodel='anyof'
  184.56 -      elements='animate, set'
  184.57 -      attributecategories='core, style, presentation, filter primitive'
  184.58 -      attributes='in'
  184.59 -      interfaces='SVGFECompositeElement'>
  184.60 -    <attribute name='in2' href='#feCompositeIn2Attribute'/>
  184.61 -    <attribute name='operator' href='#feCompositeOperatorAttribute'/>
  184.62 -    <attribute name='k1' href='#feCompositeK1Attribute'/>
  184.63 -    <attribute name='k2' href='#feCompositeK2Attribute'/>
  184.64 -    <attribute name='k3' href='#feCompositeK3Attribute'/>
  184.65 -    <attribute name='k4' href='#feCompositeK4Attribute'/>
  184.66 -  </element>
  184.67 -
  184.68 -  <element
  184.69 -      name='feConvolveMatrix'
  184.70 -      href='#feConvolveMatrixElement'
  184.71 -      contentmodel='anyof'
  184.72 -      elements='animate, set'
  184.73 -      attributecategories='core, style, presentation, filter primitive'
  184.74 -      attributes='in'
  184.75 -      interfaces='SVGFEConvolveMatrixElement'>
  184.76 -    <attribute name='order' href='#feConvolveMatrixElementOrderAttribute'/>
  184.77 -    <attribute name='kernelMatrix' href='#feConvolveMatrixElementKernelMatrixAttribute'/>
  184.78 -    <attribute name='divisor' href='#feConvolveMatrixElementDivisorAttribute'/>
  184.79 -    <attribute name='bias' href='#feConvolveMatrixElementBiasAttribute'/>
  184.80 -    <attribute name='targetX' href='#feConvolveMatrixElementTargetXAttribute'/>
  184.81 -    <attribute name='targetY' href='#feConvolveMatrixElementTargetYAttribute'/>
  184.82 -    <attribute name='edgeMode' href='#feConvolveMatrixElementEdgeModeAttribute'/>
  184.83 -    <attribute name='kernelUnitLength' href='#feConvolveMatrixElementKernelUnitLengthAttribute'/>
  184.84 -    <attribute name='preserveAlpha' href='#feConvolveMatrixElementPreserveAlphaAttribute'/>
  184.85 -  </element>
  184.86 -
  184.87 -  <element
  184.88 -      name='feDiffuseLighting'
  184.89 -      href='#feDiffuseLightingElement'
  184.90 -      contentmodel='anyof'
  184.91 -      elementcategories='light source'
  184.92 -      elements='animate, set, animateColor'
  184.93 -      attributecategories='core, style, presentation, filter primitive'
  184.94 -      attributes='in'
  184.95 -      interfaces='SVGFEDiffuseLightingElement'>
  184.96 -    <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute'/>
  184.97 -    <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute'/>
  184.98 -    <attribute name='kernelUnitLength' href='#feDiffuseLightingKernelUnitLengthAttribute'/>
  184.99 -  </element>
 184.100 -
 184.101 -  <element
 184.102 -      name='feDisplacementMap'
 184.103 -      href='#feDisplacementMapElement'
 184.104 -      contentmodel='anyof'
 184.105 -      elements='animate, set'
 184.106 -      attributecategories='core, style, presentation, filter primitive'
 184.107 -      attributes='in'
 184.108 -      interfaces='SVGFEDisplacementMapElement'>
 184.109 -    <attribute name='in2' href='#feDisplacementMapIn2Attribute'/>
 184.110 -    <attribute name='scale' href='#feDisplacementMapScaleAttribute'/>
 184.111 -    <attribute name='xChannelSelector' href='#feDisplacementMapXChannelSelectorAttribute'/>
 184.112 -    <attribute name='yChannelSelector' href='#feDisplacementMapYChannelSelectorAttribute'/>
 184.113 -  </element>
 184.114 -
 184.115 -  <element
 184.116 -      name='feDistantLight'
 184.117 -      href='#feDistantLightElement'
 184.118 -      contentmodel='anyof'
 184.119 -      elements='animate, set'
 184.120 -      attributecategories='core'
 184.121 -      interfaces='SVGFEDistantLightElement'>
 184.122 -    <attribute name='azimuth' href='#feDistantLightAzimuthAttribute'/>
 184.123 -    <attribute name='elevation' href='#feDistantLightElevationAttribute'/>
 184.124 -  </element>
 184.125 -
 184.126 -  <element
 184.127 -    name='feFlood'
 184.128 -    href='#feFloodElement'
 184.129 -    contentmodel='anyof'
 184.130 -    elements='animate, set, animateColor'
 184.131 -    attributecategories='core, style, presentation, filter primitive'
 184.132 -    interfaces='SVGFEFloodElement'/>
 184.133 -
 184.134 -  <element
 184.135 -    name='feFuncR'
 184.136 -    contentmodel='anyof'
 184.137 -    elements='animate, set'
 184.138 -    attributecategories='core, transfer function element'
 184.139 -    interfaces='SVGFEFuncRElement'/>
 184.140 -
 184.141 -  <element
 184.142 -    name='feFuncG'
 184.143 -    contentmodel='anyof'
 184.144 -    elements='animate, set'
 184.145 -    attributecategories='core, transfer function element'
 184.146 -    interfaces='SVGFEFuncGElement'/>
 184.147 -
 184.148 -  <element
 184.149 -    name='feFuncB'
 184.150 -    contentmodel='anyof'
 184.151 -    elements='animate, set'
 184.152 -    attributecategories='core, transfer function element'
 184.153 -    interfaces='SVGFEFuncBElement'/>
 184.154 -
 184.155 -  <element
 184.156 -    name='feFuncA'
 184.157 -    contentmodel='anyof'
 184.158 -    elements='animate, set'
 184.159 -    attributecategories='core, transfer function element'
 184.160 -    interfaces='SVGFEFuncAElement'/>
 184.161 -
 184.162 -  <element
 184.163 -      name='feGaussianBlur'
 184.164 -      href='#feGaussianBlurElement'
 184.165 -      contentmodel='anyof'
 184.166 -      elements='animate, set'
 184.167 -      attributecategories='core, style, presentation, filter primitive'
 184.168 -      attributes='in'
 184.169 -      interfaces='SVGFEGaussianBlurElement'>
 184.170 -    <attribute name='stdDeviation' href='#feGaussianBlurStdDeviationAttribute'/>
 184.171 -  </element>
 184.172 -  
 184.173 -  <element
 184.174 -      name='feUnsharpMask'
 184.175 -      href='#feUnsharpMaskElement'
 184.176 -      contentmodel='anyof'
 184.177 -      elements='animate, set'
 184.178 -      attributecategories='core, style, presentation, filter primitive'
 184.179 -      attributes='in'
 184.180 -      interfaces='SVGFEUnsharpMaskElement'>
 184.181 -    <attribute name='amount' href='#feUnsharpMaskAmountAttribute'/>
 184.182 -    <attribute name='threshold' href='#feUnsharpMaskThresholdAttribute'/>
 184.183 -    <attribute name='stdDeviation' href='#feUnsharpMaskStdDeviationAttribute'/>
 184.184 -  </element>
 184.185 -
 184.186 -  <element
 184.187 -      name='feImage'
 184.188 -      href='#feImageElement'
 184.189 -      contentmodel='anyof'
 184.190 -      elements='animate, set, animateTransform'
 184.191 -      attributecategories='core, style, presentation, filter primitive, xlink'
 184.192 -      attributes='externalResourcesRequired, preserveAspectRatio'
 184.193 -      interfaces='SVGFEImageElement'>
 184.194 -    <attribute name='xlink:href' href='#feImageElementHrefAttribute'/>
 184.195 -  </element>
 184.196 -
 184.197 -  <element
 184.198 -    name='feMerge'
 184.199 -    href='#feMergeElement'
 184.200 -    contentmodel='anyof'
 184.201 -    elements='feMergeNode'
 184.202 -    attributecategories='core, style, presentation, filter primitive'
 184.203 -    interfaces='SVGFEMergeElement'/>
 184.204 -
 184.205 -  <element
 184.206 -      name='feMergeNode'
 184.207 -      href='#feMergeNodeElement'
 184.208 -      contentmodel='anyof'
 184.209 -      elements='animate, set'
 184.210 -      attributecategories='core'
 184.211 -      attributes='in'
 184.212 -      interfaces='SVGFEMergeNodeElement'/>
 184.213 -
 184.214 -  <element
 184.215 -      name='feMorphology'
 184.216 -      href='#feMorphologyElement'
 184.217 -      contentmodel='anyof'
 184.218 -      elements='animate, set'
 184.219 -      attributecategories='core, style, presentation, filter primitive'
 184.220 -      attributes='in'
 184.221 -      interfaces='SVGFEMorphologyElement'>
 184.222 -    <attribute name='operator' href='#feMorphologyOperatorAttribute'/>
 184.223 -    <attribute name='radius' href='#feMorphologyRadiusAttribute'/>
 184.224 -  </element>
 184.225 -
 184.226 -  <element
 184.227 -      name='feOffset'
 184.228 -      href='#feOffsetElement'
 184.229 -      contentmodel='anyof'
 184.230 -      elements='animate, set'
 184.231 -      attributecategories='core, style, presentation, filter primitive'
 184.232 -      attributes='in'
 184.233 -      interfaces='SVGFEOffsetElement'>
 184.234 -    <attribute name='dx' href='#feOffsetDxAttribute'/>
 184.235 -    <attribute name='dy' href='#feOffsetDyAttribute'/>
 184.236 -  </element>
 184.237 -
 184.238 -  <element
 184.239 -      name='fePointLight'
 184.240 -      href='#fePointLightElement'
 184.241 -      contentmodel='anyof'
 184.242 -      elements='animate, set'
 184.243 -      attributecategories='core'
 184.244 -      interfaces='SVGFEPointLightElement'>
 184.245 -    <attribute name='x' href='#fePointLightXAttribute'/>
 184.246 -    <attribute name='y' href='#fePointLightYAttribute'/>
 184.247 -    <attribute name='z' href='#fePointLightZAttribute'/>
 184.248 -  </element>
 184.249 -
 184.250 -  <element
 184.251 -      name='feSpecularLighting'
 184.252 -      href='#feSpecularLightingElement'
 184.253 -      contentmodel='anyof'
 184.254 -      elementcategories='light source'
 184.255 -      elements='animate, set, animateColor'
 184.256 -      attributecategories='core, style, presentation, filter primitive'
 184.257 -      attributes='in'
 184.258 -      interfaces='SVGFESpecularLightingElement'>
 184.259 -    <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute'/>
 184.260 -    <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute'/>
 184.261 -    <attribute name='specularExponent' href='#feSpecularLightingSpecularExponentAttribute'/>
 184.262 -    <attribute name='kernelUnitLength' href='#feSpecularLightingKernelUnitLengthAttribute'/>
 184.263 -  </element>
 184.264 -
 184.265 -  <element
 184.266 -      name='feSpotLight'
 184.267 -      href='#feSpotLightElement'
 184.268 -      contentmodel='anyof'
 184.269 -      elements='animate, set'
 184.270 -      attributecategories='core'
 184.271 -      interfaces='SVGFESpotLightElement'>
 184.272 -    <attribute name='x' href='#feSpotLightXAttribute'/>
 184.273 -    <attribute name='y' href='#feSpotLightYAttribute'/>
 184.274 -    <attribute name='z' href='#feSpotLightZAttribute'/>
 184.275 -    <attribute name='pointsAtX' href='#feSpotLightPointsAtXAttribute'/>
 184.276 -    <attribute name='pointsAtY' href='#feSpotLightPointsAtYAttribute'/>
 184.277 -    <attribute name='pointsAtZ' href='#feSpotLightPointsAtZAttribute'/>
 184.278 -    <attribute name='specularExponent' href='#feSpotLightSpecularExponentAttribute'/>
 184.279 -    <attribute name='limitingConeAngle' href='#feSpotLightLimitingConeAngleAttribute'/>
 184.280 -  </element>
 184.281 -
 184.282 -  <element
 184.283 -    name='feTile'
 184.284 -    href='#feTileElement'
 184.285 -    contentmodel='anyof'
 184.286 -    elements='animate, set'
 184.287 -    attributecategories='core, style, presentation, filter primitive'
 184.288 -    attributes='in'
 184.289 -    interfaces='SVGFETileElement'/>
 184.290 -
 184.291 -  <element
 184.292 -      name='feTurbulence'
 184.293 -      href='#feTurbulenceElement'
 184.294 -      contentmodel='anyof'
 184.295 -      elements='animate, set'
 184.296 -      attributecategories='core, style, presentation, filter primitive'
 184.297 -      interfaces='SVGFETurbulenceElement'>
 184.298 -    <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute'/>
 184.299 -    <attribute name='numOctaves' href='#feTurbulenceNumOctavesAttribute'/>
 184.300 -    <attribute name='seed' href='#feTurbulenceSeedAttribute'/>
 184.301 -    <attribute name='stitchTiles' href='#feTurbulenceStitchTilesAttribute'/>
 184.302 -    <attribute name='type' href='#feTurbulenceTypeAttribute'/>
 184.303 -  </element>
 184.304 -
 184.305 -  <element
 184.306 -      name='filter'
 184.307 -      href='#FilterElement'
 184.308 -      contentmodel='anyof'
 184.309 -      elementcategories='descriptive, filter primitive'
 184.310 -      elements='animate, set'
 184.311 -      attributecategories='core, style, presentation, xlink'
 184.312 -      attributes='externalResourcesRequired'
 184.313 -      interfaces='SVGFilterElement'>
 184.314 -    <attribute name='x' href='#FilterElementXAttribute'/>
 184.315 -    <attribute name='y' href='#FilterElementYAttribute'/>
 184.316 -    <attribute name='width' href='#FilterElementWidthAttribute'/>
 184.317 -    <attribute name='height' href='#FilterElementHeightAttribute'/>
 184.318 -    <attribute name='filterRes' href='#FilterElementFilterResAttribute'/>
 184.319 -    <attribute name='filterUnits' href='#FilterElementFilterUnitsAttribute'/>
 184.320 -    <attribute name='primitiveUnits' href='#FilterElementPrimitiveUnitsAttribute'/>
 184.321 -    <attribute name='xlink:href' href='#FilterElementHrefAttribute'/>
 184.322 -
 184.323 -    <!-- filter margin extensions -->
 184.324 -    <attribute name='mx' href='#FilterElementMxAttribute'/>
 184.325 -    <attribute name='my' href='#FilterElementMyAttribute'/>
 184.326 -    <attribute name='mw' href='#FilterElementMwAttribute'/>
 184.327 -    <attribute name='mh' href='#FilterElementMhAttribute'/>
 184.328 -    <attribute name='filterMarginUnits' href='#FilterElementFilterMarginUnitsAttribute'/>
 184.329 -    <attribute name='primitiveMarginUnits' href='#FilterElementPrimitiveMarginUnitsAttribute'/>
 184.330 -  </element>
 184.331 -
 184.332 -  <element
 184.333 -      name='feDropShadow'
 184.334 -      href='#feDropShadowElement'
 184.335 -      contentmodel='anyof'
 184.336 -      elements='animate, set, animateColor'
 184.337 -      attributecategories='core, style, presentation, filter primitive'
 184.338 -      attributes='in'
 184.339 -      interfaces='SVGFEDropShadowElement'>
 184.340 -    <attribute name='stdDeviation' href='#feDropShadowStdDeviationAttribute'/>
 184.341 -    <attribute name='dx' href='#feDropShadowDxAttribute'/>
 184.342 -    <attribute name='dy' href='#feDropShadowDyAttribute'/>
 184.343 -  </element>
 184.344 -
 184.345 -	<element
 184.346 -			name='feDiffuseSpecular'
 184.347 -      href='#feDiffuseSpecular'
 184.348 -      contentmodel='anyof'
 184.349 -      elements='animate, set, animateColor'
 184.350 -      attributecategories='core, style, presentation, filter primitive'
 184.351 -      attributes='in'
 184.352 -      interfaces='SVGFEDiffuseSpecular'>
 184.353 -  </element>
 184.354 -
 184.355 -	<element
 184.356 -			name='feCustom'
 184.357 -      href='#feCustom'
 184.358 -      contentmodel='anyof'
 184.359 -      elements='animate, set, animateColor'
 184.360 -      attributecategories='core, style, presentation, filter primitive'
 184.361 -      attributes='in'
 184.362 -      interfaces='SVGFECustom'>
 184.363 -  </element>
 184.364 -
 184.365 -  <!-- ... element categories ............................................ -->
 184.366 -  
 184.367 -  <elementcategory name='filter primitives' href='#TermFilterPrimitiveElements' elements='feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence'/>
 184.368 -  <elementcategory name='transfer function element' href='#TermComponentTransferFunctionElement' elements='feFuncR, feFuncG, feFuncB, feFuncA'/>
 184.369 -  
 184.370 -    <!-- ... attributes common to multiple elements ........................ -->
 184.371 -
 184.372 -    <!-- attribute common to most filter primitives (all except feFlood feImage feMerge feTurbulence -->
 184.373 -    <attribute name='in' elements='feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feMorphology, feOffset, feSpecularLighting, feTile' href='#FilterPrimitiveInAttribute'/>
 184.374 -
 184.375 -  <!-- ... attribute categories .......................................... -->
 184.376 -
 184.377 -  <attributecategory
 184.378 -      name='FilterPrimitiveAttributes'
 184.379 -      href='intro.html#TermFilterPrimitiveAttributes'>
 184.380 -    <attribute name='x' href='#FilterPrimitiveXAttribute'/>
 184.381 -    <attribute name='y' href='#FilterPrimitiveYAttribute'/>
 184.382 -    <attribute name='width' href='#FilterPrimitiveWidthAttribute'/>
 184.383 -    <attribute name='height' href='#FilterPrimitiveHeightAttribute'/>
 184.384 -    <attribute name='result' href='#FilterPrimitiveResultAttribute'/>
 184.385 -
 184.386 -    <!-- filter margin extensions -->
 184.387 -    <attribute name='mx' href='#FilterPrimitiveMxAttribute'/>
 184.388 -    <attribute name='my' href='#FilterPrimitiveMyAttribute'/>
 184.389 -    <attribute name='mw' href='#FilterPrimitiveMwAttribute'/>
 184.390 -    <attribute name='mh' href='#FilterPrimitiveMhAttribute'/>
 184.391 -  </attributecategory>
 184.392 -
 184.393 -  <attributecategory
 184.394 -      name='transfer function element'
 184.395 -      href='#TransferFunctionElementAttributes'>
 184.396 -    <attribute name='type' href='#feComponentTransferTypeAttribute'/>
 184.397 -    <attribute name='tableValues' href='#feComponentTransferTableValuesAttribute'/>
 184.398 -    <attribute name='slope' href='#feComponentTransferSlopeAttribute'/>
 184.399 -    <attribute name='intercept' href='#feComponentTransferInterceptAttribute'/>
 184.400 -    <attribute name='amplitude' href='#feComponentTransferAmplitudeAttribute'/>
 184.401 -    <attribute name='exponent' href='#feComponentTransferExponentAttribute'/>
 184.402 -    <attribute name='offset' href='#feComponentTransferOffsetAttribute'/>
 184.403 -  </attributecategory>
 184.404 -
 184.405 -
 184.406 -  <!-- ... properties ..................................................... -->
 184.407 -
 184.408 -  <property name='enable-background' href='#EnableBackgroundProperty'/>
 184.409 -  <property name='filter' href='#FilterProperty'/> 
 184.410 -  <property name='flood-color' href='#FloodColorProperty'/>
 184.411 -  <property name='flood-opacity' href='#FloodOpacityProperty'/>
 184.412 -  <property name='lighting-color' href='#LightingColorProperty'/>
 184.413 -  
 184.414 -  
 184.415 -  <!-- ... interfaces ..................................................... -->
 184.416 -
 184.417 -  <interface name='SVGFilterElement' href='#InterfaceSVGFilterElement'/>
 184.418 -  <interface name='SVGFilterPrimitiveStandardAttributes' href='#InterfaceSVGFilterPrimitiveStandardAttributes'/>
 184.419 -  <interface name='SVGFEBlendElement' href='#InterfaceSVGFEBlendElement'/>
 184.420 -  <interface name='SVGFEColorMatrixElement' href='#InterfaceSVGFEColorMatrixElement'/>
 184.421 -  <interface name='SVGFEComponentTransferElement' href='#InterfaceSVGFEComponentTransferElement'/>
 184.422 -  <interface name='SVGComponentTransferFunctionElement' href='#InterfaceSVGComponentTransferFunctionElement'/>
 184.423 -  <interface name='SVGFEFuncRElement' href='#InterfaceSVGFEFuncRElement'/>
 184.424 -  <interface name='SVGFEFuncGElement' href='#InterfaceSVGFEFuncGElement'/>
 184.425 -  <interface name='SVGFEFuncBElement' href='#InterfaceSVGFEFuncBElement'/>
 184.426 -  <interface name='SVGFEFuncAElement' href='#InterfaceSVGFEFuncAElement'/>
 184.427 -  <interface name='SVGFECompositeElement' href='#InterfaceSVGFECompositeElement'/>
 184.428 -  <interface name='SVGFEConvolveMatrixElement' href='#InterfaceSVGFEConvolveMatrixElement'/>
 184.429 -  <interface name='SVGFEDiffuseLightingElement' href='#InterfaceSVGFEDiffuseLightingElement'/>
 184.430 -  <interface name='SVGFEDistantLightElement' href='#InterfaceSVGFEDistantLightElement'/>
 184.431 -  <interface name='SVGFEPointLightElement' href='#InterfaceSVGFEPointLightElement'/>
 184.432 -  <interface name='SVGFESpotLightElement' href='#InterfaceSVGFESpotLightElement'/>
 184.433 -  <interface name='SVGFEDisplacementMapElement' href='#InterfaceSVGFEDisplacementMapElement'/>
 184.434 -  <interface name='SVGFEFloodElement' href='#InterfaceSVGFEFloodElement'/>
 184.435 -  <interface name='SVGFEGaussianBlurElement' href='#InterfaceSVGFEGaussianBlurElement'/>
 184.436 -  <interface name='SVGFEUnsharpMaskElement' href='#InterfaceSVGFEUnsharpMaskElement'/>
 184.437 -  <interface name='SVGFEImageElement' href='#InterfaceSVGFEImageElement'/>
 184.438 -  <interface name='SVGFEMergeElement' href='#InterfaceSVGFEMergeElement'/>
 184.439 -  <interface name='SVGFEMergeNodeElement' href='#InterfaceSVGFEMergeNodeElement'/>
 184.440 -  <interface name='SVGFEMorphologyElement' href='#InterfaceSVGFEMorphologyElement'/>
 184.441 -  <interface name='SVGFEOffsetElement' href='#InterfaceSVGFEOffsetElement'/>
 184.442 -  <interface name='SVGFESpecularLightingElement' href='#InterfaceSVGFESpecularLightingElement'/>
 184.443 -  <interface name='SVGFETileElement' href='#InterfaceSVGFETileElement'/>
 184.444 -  <interface name='SVGFETurbulenceElement' href='#InterfaceSVGFETurbulenceElement'/>
 184.445 -  <interface name='SVGFEDropShadowElement' href='#InterfaceSVGFEDropShadowElement'/>
 184.446 -  <interface name='ImageData' href='#InterfaceImageData'/>
 184.447 -  
 184.448 -  
 184.449 -  <!-- ... terms (these will be generated later) .......................... -->
 184.450 -  <term name='SourceAlpha' href='#SourceAlpha' class='attr-value'/>
 184.451 -  <term name='SourceGraphic' href='#SourceGraphic' class='attr-value'/>
 184.452 -  <term name='BackgroundImage' href='#BackgroundImage' class='attr-value'/>
 184.453 -  <term name='BackgroundAlpha' href='#BackgroundAlpha' class='attr-value'/>
 184.454 -  <term name='FillPaint' href='#FillPaint' class='attr-value'/>
 184.455 -  <term name='StrokePaint' href='#StrokePaint' class='attr-value'/>
 184.456 -  <term name='source graphic' href='#TermSourceGraphic'/>
 184.457 -  <term name='filter effects region' href='#FilterEffectsRegion'/>
 184.458 -  <term name='filter region' href='#FilterEffectsRegion'/>
 184.459 -  <term name='filter primitive' href='#TermFilterPrimitiveElement'/>
 184.460 -  <term name='filter primitive subregion' href='#FilterPrimitiveSubRegion'/>
 184.461 -  <term name='null filter' href='#TermNullFilter'/>
 184.462 -  <term name='transfer function element' href='#TermTransferFunctionElements'/>
 184.463 -  <term name='transfer function elements' href='#TermTransferFunctionElements'/>
 184.464 -  <term name='filter primitives' href='#TermFilterPrimitiveElements'/>
 184.465 -  <term name='filter primitive elements' href='#TermFilterPrimitiveElements'/>
 184.466 -  <term name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
 184.467 -  
 184.468 -  <!-- ... symbols (surrounded by &lt; and &gt;) .......................... -->
 184.469 -  <symbol name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
 184.470 -</definitions>
   185.1 --- a/master/examples/Forque.svg	Thu Feb 24 10:19:12 2011 +0000
   185.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   185.3 @@ -1,109 +0,0 @@
   185.4 -<?xml version="1.0" standalone="no"?>
   185.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
   185.6 -<svg xmlns="http://www.w3.org/2000/svg">
   185.7 -<defs>
   185.8 -<desc>
   185.9 -Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license.
  185.10 -</desc>
  185.11 -<font id="FORQUE" horiz-adv-x="815" >
  185.12 -<font-face  font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/>
  185.13 -<missing-glyph horiz-adv-x="389" />
  185.14 -<glyph glyph-name=".notdef" horiz-adv-x="389" />
  185.15 -<glyph glyph-name=".null" horiz-adv-x="0" />
  185.16 -<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" />
  185.17 -<glyph glyph-name="space" unicode=" "  horiz-adv-x="389" />
  185.18 -<glyph glyph-bame="tab" unicode="&#x09;" horiz-adv-x="389" />
  185.19 -<glyph glyph-bame="uni00A0" unicode="&#xa0;" horiz-adv-x="389" />
  185.20 -<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" />
  185.21 -<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  185.22 -<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" />
  185.23 -<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" />
  185.24 -<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" />
  185.25 -<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" />
  185.26 -<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" />
  185.27 -<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" />
  185.28 -<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  185.29 -<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  185.30 -<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  185.31 -<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  185.32 -<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" />
  185.33 -<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" />
  185.34 -<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" />
  185.35 -<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" />
  185.36 -<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" />
  185.37 -<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" />
  185.38 -<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" />
  185.39 -<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" />
  185.40 -<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" />
  185.41 -<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" />
  185.42 -<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" />
  185.43 -<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  185.44 -<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" />
  185.45 -<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" />
  185.46 -<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" />
  185.47 -<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  185.48 -<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" />
  185.49 -<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  185.50 -<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" />
  185.51 -<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" />
  185.52 -<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" />
  185.53 -<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  185.54 -<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" />
  185.55 -<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" />
  185.56 -<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" />
  185.57 -<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  185.58 -<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" />
  185.59 -<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" />
  185.60 -<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" />
  185.61 -<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" />
  185.62 -<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" />
  185.63 -<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" />
  185.64 -<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  185.65 -<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  185.66 -<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" />
  185.67 -<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" />
  185.68 -<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" />
  185.69 -<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" />
  185.70 -<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  185.71 -<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" />
  185.72 -<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" />
  185.73 -<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  185.74 -<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" />
  185.75 -<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  185.76 -<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" />
  185.77 -<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" />
  185.78 -<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" />
  185.79 -<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  185.80 -<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" />
  185.81 -<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" />
  185.82 -<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" />
  185.83 -<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  185.84 -<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" />
  185.85 -<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" />
  185.86 -<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" />
  185.87 -<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" />
  185.88 -<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" />
  185.89 -<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" />
  185.90 -<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  185.91 -<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  185.92 -<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" />
  185.93 -<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" />
  185.94 -<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" />
  185.95 -<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" />
  185.96 -<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  185.97 -<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" />
  185.98 -<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" />
  185.99 -<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" />
 185.100 -<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" />
 185.101 -<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" />
 185.102 -<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 185.103 -<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 185.104 -<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 185.105 -<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 185.106 -<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 185.107 -<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 185.108 -<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" />
 185.109 -<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
 185.110 -<glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" />
 185.111 -</font>
 185.112 -</defs></svg> 
   186.1 Binary file master/examples/enable-background-01.png has changed
   187.1 --- a/master/examples/enable-background-01.svg	Thu Feb 24 10:19:12 2011 +0000
   187.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   187.3 @@ -1,89 +0,0 @@
   187.4 -<?xml version="1.0" standalone="no"?>
   187.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   187.6 -  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   187.7 -<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
   187.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   187.9 -  <title>Example enable-background01</title>
  187.10 -  <desc>This test case shows five pictures which illustrate the rules
  187.11 -        for background image processing.</desc>
  187.12 -
  187.13 -  <defs>
  187.14 -    <filter id="ShiftBGAndBlur" 
  187.15 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  187.16 -      <desc>
  187.17 -        This filter discards the SourceGraphic, if any, and just produces
  187.18 -        a result consisting of the BackgroundImage shifted down 125 units
  187.19 -        and then blurred.
  187.20 -      </desc>
  187.21 -      <feOffset in="BackgroundImage" dx="0" dy="125" />
  187.22 -      <feGaussianBlur stdDeviation="8" />
  187.23 -    </filter>
  187.24 -    <filter id="ShiftBGAndBlur_WithSourceGraphic" 
  187.25 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  187.26 -      <desc>
  187.27 -        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
  187.28 -        and then renders the SourceGraphic on top of the shifted/blurred background.
  187.29 -      </desc>
  187.30 -      <feOffset in="BackgroundImage" dx="0" dy="125" />
  187.31 -      <feGaussianBlur stdDeviation="8" result="blur" />
  187.32 -      <feMerge>
  187.33 -        <feMergeNode in="blur"/>
  187.34 -        <feMergeNode in="SourceGraphic"/>
  187.35 -      </feMerge>
  187.36 -    </filter>
  187.37 -  </defs>
  187.38 -
  187.39 -  <g transform="translate(0,0)">
  187.40 -    <desc>The first picture is our reference graphic without filters.</desc>
  187.41 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  187.42 -    <g opacity=".5">
  187.43 -      <circle cx="125" cy="75" r="45" fill="green"/>
  187.44 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  187.45 -    </g>
  187.46 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  187.47 -  </g>
  187.48 -
  187.49 -  <g enable-background="new" transform="translate(270,0)">
  187.50 -    <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
  187.51 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  187.52 -    <g opacity=".5">
  187.53 -      <circle cx="125" cy="75" r="45" fill="green"/>
  187.54 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  187.55 -    </g>
  187.56 -    <g filter="url(#ShiftBGAndBlur)"/>
  187.57 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  187.58 -  </g>
  187.59 -
  187.60 -  <g enable-background="new" transform="translate(540,0)">
  187.61 -    <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
  187.62 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  187.63 -    <g filter="url(#ShiftBGAndBlur)" opacity=".5">
  187.64 -      <circle cx="125" cy="75" r="45" fill="green"/>
  187.65 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  187.66 -    </g>
  187.67 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  187.68 -  </g>
  187.69 -
  187.70 -  <g enable-background="new" transform="translate(810,0)">
  187.71 -    <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
  187.72 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  187.73 -    <g opacity=".5">
  187.74 -      <circle cx="125" cy="75" r="45" fill="green"/>
  187.75 -      <polygon points="160,25 160,125 240,75" fill="blue"
  187.76 -               filter="url(#ShiftBGAndBlur)"/>
  187.77 -    </g>
  187.78 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  187.79 -  </g>
  187.80 -
  187.81 -  <g enable-background="new" transform="translate(1080,0)">
  187.82 -    <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
  187.83 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  187.84 -    <g opacity=".5">
  187.85 -      <circle cx="125" cy="75" r="45" fill="green"/>
  187.86 -      <polygon points="160,25 160,125 240,75" fill="blue"
  187.87 -               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
  187.88 -    </g>
  187.89 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  187.90 -  </g>
  187.91 -</svg>
  187.92 -
   188.1 Binary file master/examples/feBlend.png has changed
   189.1 --- a/master/examples/feBlend.svg	Thu Feb 24 10:19:12 2011 +0000
   189.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   189.3 @@ -1,46 +0,0 @@
   189.4 -<?xml version="1.0"?>
   189.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   189.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   189.7 -<svg width="5cm" height="5cm" viewBox="0 0 500 500"
   189.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   189.9 -  <title>Example feBlend - Examples of feBlend modes</title>
  189.10 -  <desc>Five text strings blended into a gradient,
  189.11 -        with one text string for each of the five feBlend modes.</desc>
  189.12 -  <defs>
  189.13 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  189.14 -            x1="100" y1="0" x2="300" y2="0">
  189.15 -      <stop offset="0" stop-color="#000000" />
  189.16 -      <stop offset=".33" stop-color="#ffffff" />
  189.17 -      <stop offset=".67" stop-color="#ff0000" />
  189.18 -      <stop offset="1" stop-color="#808080" />
  189.19 -    </linearGradient>
  189.20 -    <filter id="Normal">
  189.21 -      <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
  189.22 -    </filter>
  189.23 -    <filter id="Multiply">
  189.24 -      <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
  189.25 -    </filter>
  189.26 -    <filter id="Screen">
  189.27 -      <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
  189.28 -    </filter>
  189.29 -    <filter id="Darken">
  189.30 -      <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/>
  189.31 -    </filter>
  189.32 -    <filter id="Lighten">
  189.33 -      <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
  189.34 -    </filter>
  189.35 -  </defs>
  189.36 -  <rect fill="none" stroke="blue"  
  189.37 -        x="1" y="1" width="498" height="498"/>
  189.38 -  <g enable-background="new" >
  189.39 -    <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" />
  189.40 -    <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" >
  189.41 -      <text x="50" y="90" filter="url(#Normal)" >Normal</text>
  189.42 -      <text x="50" y="180" filter="url(#Multiply)" >Multiply</text>
  189.43 -      <text x="50" y="270" filter="url(#Screen)" >Screen</text>
  189.44 -      <text x="50" y="360" filter="url(#Darken)" >Darken</text>
  189.45 -      <text x="50" y="450" filter="url(#Lighten)" >Lighten</text>
  189.46 -    </g>
  189.47 -  </g>
  189.48 -</svg>
  189.49 -
   190.1 Binary file master/examples/feColorMatrix.png has changed
   191.1 --- a/master/examples/feColorMatrix.svg	Thu Feb 24 10:19:12 2011 +0000
   191.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   191.3 @@ -1,55 +0,0 @@
   191.4 -<?xml version="1.0"?>
   191.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   191.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   191.7 -<svg width="8cm" height="5cm" viewBox="0 0 800 500"
   191.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   191.9 -  <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
  191.10 -  <desc>Five text strings showing the effects of feColorMatrix: 
  191.11 -        an unfiltered text string acting as a reference, 
  191.12 -        use of the feColorMatrix matrix option to convert to grayscale,
  191.13 -        use of the feColorMatrix saturate option,
  191.14 -        use of the feColorMatrix hueRotate option,
  191.15 -        and use of the feColorMatrix luminanceToAlpha option.</desc>
  191.16 -  <defs>
  191.17 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  191.18 -            x1="100" y1="0" x2="500" y2="0">
  191.19 -      <stop offset="0" stop-color="#ff00ff" />
  191.20 -      <stop offset=".33" stop-color="#88ff88" />
  191.21 -      <stop offset=".67" stop-color="#2020ff" />
  191.22 -      <stop offset="1" stop-color="#d00000" />
  191.23 -    </linearGradient>
  191.24 -    <filter id="Matrix" filterUnits="objectBoundingBox" 
  191.25 -            x="0%" y="0%" width="100%" height="100%">
  191.26 -      <feColorMatrix type="matrix" in="SourceGraphic"
  191.27 -           values=".33 .33 .33 0 0 
  191.28 -                   .33 .33 .33 0 0 
  191.29 -                   .33 .33 .33 0 0 
  191.30 -                   .33 .33 .33 0 0"/>
  191.31 -    </filter>
  191.32 -    <filter id="Saturate40" filterUnits="objectBoundingBox" 
  191.33 -            x="0%" y="0%" width="100%" height="100%">
  191.34 -      <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/>
  191.35 -    </filter>
  191.36 -    <filter id="HueRotate90" filterUnits="objectBoundingBox" 
  191.37 -            x="0%" y="0%" width="100%" height="100%">
  191.38 -      <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
  191.39 -    </filter>
  191.40 -    <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
  191.41 -            x="0%" y="0%" width="100%" height="100%">
  191.42 -      <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
  191.43 -      <feComposite in="SourceGraphic" in2="a" operator="in" />
  191.44 -    </filter>
  191.45 -  </defs>
  191.46 -  <rect fill="none" stroke="blue"  
  191.47 -        x="1" y="1" width="798" height="498"/>
  191.48 -  <g font-family="Verdana" font-size="75" 
  191.49 -            font-weight="bold" fill="url(#MyGradient)" >
  191.50 -    <rect x="100" y="0" width="500" height="20" />
  191.51 -    <text x="100" y="90">Unfiltered</text>
  191.52 -    <text x="100" y="190" filter="url(#Matrix)" >Matrix</text>
  191.53 -    <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text>
  191.54 -    <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text>
  191.55 -    <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text>
  191.56 -  </g>
  191.57 -</svg>
  191.58 -
   192.1 Binary file master/examples/feComponentTransfer.png has changed
   193.1 --- a/master/examples/feComponentTransfer.svg	Thu Feb 24 10:19:12 2011 +0000
   193.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   193.3 @@ -1,65 +0,0 @@
   193.4 -<?xml version="1.0"?>
   193.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   193.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   193.7 -<svg width="8cm" height="4cm" viewBox="0 0 800 400"
   193.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   193.9 -  <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
  193.10 -  <desc>Four text strings showing the effects of feComponentTransfer: 
  193.11 -        an identity function acting as a reference, 
  193.12 -        use of the feComponentTransfer table option,
  193.13 -        use of the feComponentTransfer linear option,
  193.14 -        and use of the feComponentTransfer gamma option.</desc>
  193.15 -  <defs>
  193.16 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  193.17 -            x1="100" y1="0" x2="600" y2="0">
  193.18 -      <stop offset="0" stop-color="#ff0000" />
  193.19 -      <stop offset=".33" stop-color="#00ff00" />
  193.20 -      <stop offset=".67" stop-color="#0000ff" />
  193.21 -      <stop offset="1" stop-color="#000000" />
  193.22 -    </linearGradient>
  193.23 -    <filter id="Identity" filterUnits="objectBoundingBox" 
  193.24 -            x="0%" y="0%" width="100%" height="100%">
  193.25 -      <feComponentTransfer>
  193.26 -        <feFuncR type="identity"/>
  193.27 -        <feFuncG type="identity"/>
  193.28 -        <feFuncB type="identity"/>
  193.29 -        <feFuncA type="identity"/>
  193.30 -      </feComponentTransfer>
  193.31 -    </filter>
  193.32 -    <filter id="Table" filterUnits="objectBoundingBox" 
  193.33 -            x="0%" y="0%" width="100%" height="100%">
  193.34 -      <feComponentTransfer>
  193.35 -        <feFuncR type="table" tableValues="0 0 1 1"/>
  193.36 -        <feFuncG type="table" tableValues="1 1 0 0"/>
  193.37 -        <feFuncB type="table" tableValues="0 1 1 0"/>
  193.38 -      </feComponentTransfer>
  193.39 -    </filter>
  193.40 -    <filter id="Linear" filterUnits="objectBoundingBox" 
  193.41 -            x="0%" y="0%" width="100%" height="100%">
  193.42 -      <feComponentTransfer>
  193.43 -        <feFuncR type="linear" slope=".5" intercept=".25"/>
  193.44 -        <feFuncG type="linear" slope=".5" intercept="0"/>
  193.45 -        <feFuncB type="linear" slope=".5" intercept=".5"/>
  193.46 -      </feComponentTransfer>
  193.47 -    </filter>
  193.48 -    <filter id="Gamma" filterUnits="objectBoundingBox" 
  193.49 -            x="0%" y="0%" width="100%" height="100%">
  193.50 -      <feComponentTransfer>
  193.51 -        <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
  193.52 -        <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
  193.53 -        <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
  193.54 -      </feComponentTransfer>
  193.55 -    </filter>
  193.56 -  </defs>
  193.57 -  <rect fill="none" stroke="blue"  
  193.58 -        x="1" y="1" width="798" height="398"/>
  193.59 -  <g font-family="Verdana" font-size="75" 
  193.60 -            font-weight="bold" fill="url(#MyGradient)" >
  193.61 -    <rect x="100" y="0" width="600" height="20" />
  193.62 -    <text x="100" y="90">Identity</text>
  193.63 -    <text x="100" y="190" filter="url(#Table)" >TableLookup</text>
  193.64 -    <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text>
  193.65 -    <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text>
  193.66 -  </g>
  193.67 -</svg>
  193.68 -
   194.1 Binary file master/examples/feComposite.png has changed
   195.1 --- a/master/examples/feComposite.svg	Thu Feb 24 10:19:12 2011 +0000
   195.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   195.3 @@ -1,170 +0,0 @@
   195.4 -<?xml version="1.0"?>
   195.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   195.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   195.7 -<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
   195.8 -     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   195.9 -  <title>Example feComposite - Examples of feComposite operations</title>
  195.10 -  <desc>Four rows of six pairs of overlapping triangles depicting
  195.11 -        the six different feComposite operators under different
  195.12 -        opacity values and different clearing of the background.</desc>
  195.13 -	<defs>
  195.14 -    <desc>Define two sets of six filters for each of the six compositing operators.
  195.15 -          The first set wipes out the background image by flooding with opaque white.
  195.16 -          The second set does not wipe out the background, with the result
  195.17 -          that the background sometimes shines through and is other cases
  195.18 -          is blended into itself (i.e., "double-counting").</desc>
  195.19 -    <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.20 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.21 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  195.22 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.23 -    </filter>
  195.24 -    <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.25 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.26 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  195.27 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.28 -    </filter>
  195.29 -    <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.30 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.31 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  195.32 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.33 -    </filter>
  195.34 -    <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.35 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.36 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  195.37 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.38 -    </filter>
  195.39 -    <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.40 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.41 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  195.42 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.43 -    </filter>
  195.44 -    <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
  195.45 -            x="-5%" y="-5%" width="110%" height="110%">
  195.46 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  195.47 -      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  195.48 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  195.49 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  195.50 -    </filter>
  195.51 -    <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.52 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  195.53 -    </filter>
  195.54 -    <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.55 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  195.56 -    </filter>
  195.57 -    <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.58 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  195.59 -    </filter>
  195.60 -    <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.61 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  195.62 -    </filter>
  195.63 -    <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  195.64 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  195.65 -    </filter>
  195.66 -    <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
  195.67 -            x="-5%" y="-5%" width="110%" height="110%">
  195.68 -      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  195.69 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  195.70 -    </filter>
  195.71 -    <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" />
  195.72 -    <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" />
  195.73 -    <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" />
  195.74 -    <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" />
  195.75 -    <g id="TwoBlueTriangles">
  195.76 -      <use xlink:href="#Blue100"/>
  195.77 -      <use xlink:href="#Blue50"/>
  195.78 -    </g>
  195.79 -    <g id="BlueTriangles">
  195.80 -      <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/>
  195.81 -      <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/>
  195.82 -      <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/>
  195.83 -      <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/>
  195.84 -      <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/>
  195.85 -      <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/>
  195.86 -    </g>
  195.87 -  </defs>
  195.88 -
  195.89 -  <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/>
  195.90 -  <g font-family="Verdana" font-size="40" shape-rendering="crispEdges">
  195.91 -    <desc>Render the examples using the filters that draw on top of
  195.92 -          an opaque white surface, thus obliterating the background.</desc>
  195.93 -    <g enable-background="new">
  195.94 -      <text x="15" y="75">opacity 1.0</text>
  195.95 -      <text x="15" y="115" font-size="27">(with feFlood)</text>
  195.96 -      <text x="15" y="200">opacity 0.5</text>
  195.97 -      <text x="15" y="240" font-size="27">(with feFlood)</text>
  195.98 -      <use xlink:href="#BlueTriangles"/>
  195.99 -      <g transform="translate(275,25)">
 195.100 -        <use xlink:href="#Red100" filter="url(#overFlood)" />
 195.101 -        <use xlink:href="#Red50" filter="url(#overFlood)" />
 195.102 -        <text x="5" y="275">over</text>
 195.103 -      </g>
 195.104 -      <g transform="translate(400,25)">
 195.105 -        <use xlink:href="#Red100" filter="url(#inFlood)" />
 195.106 -        <use xlink:href="#Red50" filter="url(#inFlood)" />
 195.107 -        <text x="35" y="275">in</text>
 195.108 -      </g>
 195.109 -      <g transform="translate(525,25)">
 195.110 -        <use xlink:href="#Red100" filter="url(#outFlood)" />
 195.111 -        <use xlink:href="#Red50" filter="url(#outFlood)" />
 195.112 -        <text x="15" y="275">out</text>
 195.113 -      </g>
 195.114 -      <g transform="translate(650,25)">
 195.115 -        <use xlink:href="#Red100" filter="url(#atopFlood)" />
 195.116 -        <use xlink:href="#Red50" filter="url(#atopFlood)" />
 195.117 -        <text x="10" y="275">atop</text>
 195.118 -      </g>
 195.119 -      <g transform="translate(775,25)">
 195.120 -        <use xlink:href="#Red100" filter="url(#xorFlood)" />
 195.121 -        <use xlink:href="#Red50" filter="url(#xorFlood)" />
 195.122 -        <text x="15" y="275">xor</text>
 195.123 -      </g>
 195.124 -      <g transform="translate(900,25)">
 195.125 -        <use xlink:href="#Red100" filter="url(#arithmeticFlood)" />
 195.126 -        <use xlink:href="#Red50" filter="url(#arithmeticFlood)" />
 195.127 -        <text x="-25" y="275">arithmetic</text>
 195.128 -      </g>
 195.129 -    </g>
 195.130 -    <g transform="translate(0,325)" enable-background="new">
 195.131 -    <desc>Render the examples using the filters that do not obliterate
 195.132 -          the background, thus sometimes causing the background to continue
 195.133 -          to appear in some cases, and in other cases the background
 195.134 -          image blends into itself ("double-counting").</desc>
 195.135 -      <text x="15" y="75">opacity 1.0</text>
 195.136 -      <text x="15" y="115" font-size="27">(without feFlood)</text>
 195.137 -      <text x="15" y="200">opacity 0.5</text>
 195.138 -      <text x="15" y="240" font-size="27">(without feFlood)</text>
 195.139 -      <use xlink:href="#BlueTriangles"/>
 195.140 -      <g transform="translate(275,25)">
 195.141 -        <use xlink:href="#Red100" filter="url(#overNoFlood)" />
 195.142 -        <use xlink:href="#Red50" filter="url(#overNoFlood)" />
 195.143 -        <text x="5" y="275">over</text>
 195.144 -      </g>
 195.145 -      <g transform="translate(400,25)">
 195.146 -        <use xlink:href="#Red100" filter="url(#inNoFlood)" />
 195.147 -        <use xlink:href="#Red50" filter="url(#inNoFlood)" />
 195.148 -        <text x="35" y="275">in</text>
 195.149 -      </g>
 195.150 -      <g transform="translate(525,25)">
 195.151 -        <use xlink:href="#Red100" filter="url(#outNoFlood)" />
 195.152 -        <use xlink:href="#Red50" filter="url(#outNoFlood)" />
 195.153 -        <text x="15" y="275">out</text>
 195.154 -      </g>
 195.155 -      <g transform="translate(650,25)">
 195.156 -        <use xlink:href="#Red100" filter="url(#atopNoFlood)" />
 195.157 -        <use xlink:href="#Red50" filter="url(#atopNoFlood)" />
 195.158 -        <text x="10" y="275">atop</text>
 195.159 -      </g>
 195.160 -      <g transform="translate(775,25)">
 195.161 -        <use xlink:href="#Red100" filter="url(#xorNoFlood)" />
 195.162 -        <use xlink:href="#Red50" filter="url(#xorNoFlood)" />
 195.163 -        <text x="15" y="275">xor</text>
 195.164 -      </g>
 195.165 -      <g transform="translate(900,25)">
 195.166 -        <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" />
 195.167 -        <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" />
 195.168 -        <text x="-25" y="275">arithmetic</text>
 195.169 -      </g>
 195.170 -    </g>
 195.171 -  </g>
 195.172 -</svg>
 195.173 -
   196.1 --- a/master/examples/feDropShadow.svg	Thu Feb 24 10:19:12 2011 +0000
   196.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   196.3 @@ -1,55 +0,0 @@
   196.4 -<?xml version="1.0"?>
   196.5 -<svg viewBox="0 0 800 400"
   196.6 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   196.7 -  <title>Example feDropShadow - Examples of feDropShadow operations</title>
   196.8 -  <desc>Four text strings showing the effects of feComponentTransfer: 
   196.9 -        an identity function acting as a reference, 
  196.10 -        use of the feComponentTransfer table option,
  196.11 -        use of the feComponentTransfer linear option,
  196.12 -        and use of the feComponentTransfer gamma option.</desc>
  196.13 -  <defs>
  196.14 -    <filter id="feDropShadowEquiv1">
  196.15 -		<feGaussianBlur stdDeviation="3"/>
  196.16 -		<feOffset dx="3" dy="3" result="offsetblur"/>
  196.17 -		<feFlood flood-color="#720"/>
  196.18 -		<feComposite in2="offsetblur" operator="in"/>
  196.19 -		<feMerge>
  196.20 -			<feMergeNode/>
  196.21 -			<feMergeNode in="SourceGraphic"/>
  196.22 -		</feMerge>
  196.23 -    </filter>
  196.24 -    <filter id="feDropShadowEquiv2">
  196.25 -		<feGaussianBlur stdDeviation="2"/>
  196.26 -		<feOffset dx="2" dy="2" result="offsetblur"/>
  196.27 -		<feFlood/>
  196.28 -		<feComposite in2="offsetblur" operator="in"/>
  196.29 -		<feMerge>
  196.30 -			<feMergeNode/>
  196.31 -			<feMergeNode in="SourceGraphic"/>
  196.32 -		</feMerge>
  196.33 -    </filter>
  196.34 -	<filter id="feDropShadow1">
  196.35 -		<feDropShadow stdDeviation="3" flood-color="#720"/>
  196.36 -	</filter>
  196.37 -	<filter id="feDropShadow2">
  196.38 -		<feDropShadow/>
  196.39 -	</filter>
  196.40 -  </defs>
  196.41 -  <rect fill="none" stroke="blue"  
  196.42 -        x="1" y="1" width="798" height="398"/>
  196.43 -  <g font-family="Verdana" font-size="30">
  196.44 -    <g transform="translate(0,100)">
  196.45 -		<text x="210" text-anchor="middle" y="0">Reference</text>
  196.46 -		<rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/>
  196.47 -		<text x="100" y="90" filter="url(#feDropShadowEquiv1)" >feDropShadow</text>
  196.48 -		<text x="100" y="140" filter="url(#feDropShadowEquiv2)" >feDropShadow</text>
  196.49 -    </g>
  196.50 -    <g transform="translate(300,100)">
  196.51 -		<text x="210" text-anchor="middle" y="0">Actual</text>
  196.52 -		<rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/>
  196.53 -		<text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text>
  196.54 -		<text x="100" y="140" filter="url(#feDropShadow2)">feDropShadow</text>
  196.55 -	</g>
  196.56 -  </g>
  196.57 -</svg>
  196.58 -
   197.1 Binary file master/examples/feGaussianBlur-motion-00.png has changed
   198.1 --- a/master/examples/feGaussianBlur-motion-00.svg	Thu Feb 24 10:19:12 2011 +0000
   198.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   198.3 @@ -1,15 +0,0 @@
   198.4 -<?xml version="1.0" encoding="UTF-8"?>
   198.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
   198.6 -  <defs>
   198.7 -    <filter id="motionblur" filterUnits="userSpaceOnUse">
   198.8 -      <feGaussianBlur stdDeviation="5 0"/>
   198.9 -    </filter>
  198.10 -    <symbol id="crow" viewBox="0 0 197 190">
  198.11 -      <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/>
  198.12 -    </symbol>
  198.13 -  </defs>
  198.14 -  
  198.15 -  <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/>
  198.16 -  <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/>
  198.17 -   
  198.18 -</svg>
   199.1 Binary file master/examples/feGaussianBlur-stdDeviation-00.png has changed
   200.1 --- a/master/examples/feGaussianBlur-stdDeviation-00.svg	Thu Feb 24 10:19:12 2011 +0000
   200.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   200.3 @@ -1,38 +0,0 @@
   200.4 -<?xml version="1.0" encoding="UTF-8"?>
   200.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
   200.6 -  <defs>
   200.7 -    <font-face font-family="FORQUE">
   200.8 -      <font-face-src>
   200.9 -        <font-face-uri xlink:href="Forque.svg#FORQUE"/>
  200.10 -      </font-face-src>
  200.11 -    </font-face>
  200.12 -    <style>
  200.13 -      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
  200.14 -      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
  200.15 -      #bx { filter: url(#blurX) }
  200.16 -      #by { filter: url(#blurY) }
  200.17 -      #header { filter: url(#ds); fill: white; text-decoration: underline }
  200.18 -      #attribution { font-size: 6px }
  200.19 -      :root { background: green; fill: white }
  200.20 -    </style>
  200.21 -    <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse">
  200.22 -      <feGaussianBlur stdDeviation="4 0">
  200.23 -        <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/>
  200.24 -      </feGaussianBlur>
  200.25 -    </filter>
  200.26 -    <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse">
  200.27 -      <feGaussianBlur stdDeviation="0 4"/>
  200.28 -    </filter>
  200.29 -    <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2">
  200.30 -      <feGaussianBlur stdDeviation="3"/>
  200.31 -      <feOffset dx="2" dy="2"/>
  200.32 -      <feComposite in2="SourceGraphic" operator="in"/>
  200.33 -    </filter>
  200.34 -  </defs>
  200.35 -
  200.36 -  <text id="bx" x="40%" y="50%">BlurX</text>
  200.37 -  <text id="by" x="60%" y="70%">BlurY</text>
  200.38 -  
  200.39 -  <text id="header" y="1em" x="50%">Unidirectional blur</text>
  200.40 -  <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text>
  200.41 -</svg>
   201.1 Binary file master/examples/feMorphology.png has changed
   202.1 --- a/master/examples/feMorphology.svg	Thu Feb 24 10:19:12 2011 +0000
   202.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   202.3 @@ -1,37 +0,0 @@
   202.4 -<?xml version="1.0"?>
   202.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   202.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   202.7 -<svg width="5cm" height="7cm" viewBox="0 0 700 500"
   202.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   202.9 -  <title>Example feMorphology - Examples of erode and dilate</title>
  202.10 -  <desc>Five text strings drawn as outlines.
  202.11 -        The first is unfiltered. The second and third use 'erode'.
  202.12 -        The fourth and fifth use 'dilate'.</desc>
  202.13 -  <defs>
  202.14 -    <filter id="Erode3">
  202.15 -      <feMorphology operator="erode" in="SourceGraphic" radius="3" />
  202.16 -    </filter>
  202.17 -    <filter id="Erode6">
  202.18 -      <feMorphology operator="erode" in="SourceGraphic" radius="6" />
  202.19 -    </filter>
  202.20 -    <filter id="Dilate3">
  202.21 -      <feMorphology operator="dilate" in="SourceGraphic" radius="3" />
  202.22 -    </filter>
  202.23 -    <filter id="Dilate6">
  202.24 -      <feMorphology operator="dilate" in="SourceGraphic" radius="6" />
  202.25 -    </filter>
  202.26 -  </defs>
  202.27 -  <rect fill="none" stroke="blue" stroke-width="2"  
  202.28 -        x="1" y="1" width="698" height="498"/>
  202.29 -  <g enable-background="new" >
  202.30 -    <g font-family="Verdana" font-size="75" 
  202.31 -              fill="none" stroke="black" stroke-width="6" >
  202.32 -      <text x="50" y="90">Unfiltered</text>
  202.33 -      <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text>
  202.34 -      <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text>
  202.35 -      <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text>
  202.36 -      <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text>
  202.37 -    </g>
  202.38 -  </g>
  202.39 -</svg>
  202.40 -
   203.1 Binary file master/examples/feTurbulence.png has changed
   204.1 --- a/master/examples/feTurbulence.svg	Thu Feb 24 10:19:12 2011 +0000
   204.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   204.3 @@ -1,71 +0,0 @@
   204.4 -<?xml version="1.0"?>
   204.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   204.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   204.7 -<svg width="450px" height="325px" viewBox="0 0 450 325"
   204.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   204.9 -  <title>Example feTurbulence - Examples of feTurbulence operations</title>
  204.10 -  <desc>Six rectangular areas showing the effects of 
  204.11 -        various parameter settings for feTurbulence.</desc>
  204.12 -  <g  font-family="Verdana" text-anchor="middle" font-size="10" >
  204.13 -    <defs>
  204.14 -      <filter id="Turb1" filterUnits="objectBoundingBox" 
  204.15 -              x="0%" y="0%" width="100%" height="100%">
  204.16 -        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
  204.17 -      </filter>
  204.18 -      <filter id="Turb2" filterUnits="objectBoundingBox" 
  204.19 -              x="0%" y="0%" width="100%" height="100%">
  204.20 -        <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
  204.21 -      </filter>
  204.22 -      <filter id="Turb3" filterUnits="objectBoundingBox" 
  204.23 -              x="0%" y="0%" width="100%" height="100%">
  204.24 -        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/>
  204.25 -      </filter>
  204.26 -      <filter id="Turb4" filterUnits="objectBoundingBox" 
  204.27 -              x="0%" y="0%" width="100%" height="100%">
  204.28 -        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/>
  204.29 -      </filter>
  204.30 -      <filter id="Turb5" filterUnits="objectBoundingBox" 
  204.31 -              x="0%" y="0%" width="100%" height="100%">
  204.32 -        <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/>
  204.33 -      </filter>
  204.34 -      <filter id="Turb6" filterUnits="objectBoundingBox" 
  204.35 -              x="0%" y="0%" width="100%" height="100%">
  204.36 -        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/>
  204.37 -      </filter>
  204.38 -    </defs>
  204.39 -
  204.40 -    <rect x="1" y="1" width="448" height="323"
  204.41 -          fill="none" stroke="blue" stroke-width="1"  />
  204.42 -
  204.43 -    <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  />
  204.44 -    <text x="75" y="117">type=turbulence</text>
  204.45 -    <text x="75" y="129">baseFrequency=0.05</text>
  204.46 -    <text x="75" y="141">numOctaves=2</text>
  204.47 -
  204.48 -    <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  />
  204.49 -    <text x="225" y="117">type=turbulence</text>
  204.50 -    <text x="225" y="129">baseFrequency=0.1</text>
  204.51 -    <text x="225" y="141">numOctaves=2</text>
  204.52 -
  204.53 -    <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  />
  204.54 -    <text x="375" y="117">type=turbulence</text>
  204.55 -    <text x="375" y="129">baseFrequency=0.05</text>
  204.56 -    <text x="375" y="141">numOctaves=8</text>
  204.57 -
  204.58 -    <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  />
  204.59 -    <text x="75" y="272">type=fractalNoise</text>
  204.60 -    <text x="75" y="284">baseFrequency=0.1</text>
  204.61 -    <text x="75" y="296">numOctaves=4</text>
  204.62 -
  204.63 -    <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  />
  204.64 -    <text x="225" y="272">type=fractalNoise</text>
  204.65 -    <text x="225" y="284">baseFrequency=0.4</text>
  204.66 -    <text x="225" y="296">numOctaves=4</text>
  204.67 -
  204.68 -    <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  />
  204.69 -    <text x="375" y="272">type=fractalNoise</text>
  204.70 -    <text x="375" y="284">baseFrequency=0.1</text>
  204.71 -    <text x="375" y="296">numOctaves=1</text>
  204.72 -  </g>
  204.73 -</svg>
  204.74 -
   205.1 Binary file master/examples/filters00.png has changed
   206.1 --- a/master/examples/filters00.svg	Thu Feb 24 10:19:12 2011 +0000
   206.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   206.3 @@ -1,53 +0,0 @@
   206.4 -<?xml version="1.0"?>
   206.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   206.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   206.7 -<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1"
   206.8 -     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   206.9 -  <title>Example filters00.svg - filter effects before and after</title>
  206.10 -  <desc>Picture of the before and after affects of filtering.</desc>
  206.11 -	<defs>
  206.12 -    <filter id="MyFilter">
  206.13 -			<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  206.14 -			<feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  206.15 -			<feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 
  206.16 -                          specularExponent="10" lighting-color="white"  
  206.17 -                          result="specOut">
  206.18 -				<fePointLight x="-5000" y="-10000" z="20000"/>
  206.19 -			</feSpecularLighting>
  206.20 -			<feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  206.21 -			<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  206.22 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  206.23 -			<feMerge>
  206.24 -				<feMergeNode in="offsetBlur"/>
  206.25 -				<feMergeNode in="litPaint"/>
  206.26 -			</feMerge>
  206.27 -		</filter>
  206.28 -    <g id="CircleRectTriangle">
  206.29 -      <g>
  206.30 -        <circle cx="85" cy="80" r="40" fill="yellow"  />
  206.31 -<g>
  206.32 -        <rect x="145" y="45" width="90" height="70" fill="red"  />
  206.33 -</g>
  206.34 -        <path d="M260,40 L335,80 L260,120 z" fill="#4444ff"  />
  206.35 -      </g>
  206.36 -    </g>
  206.37 -    <path id="LineWithArrow" 
  206.38 -          d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" />
  206.39 -	</defs>
  206.40 -  <g font-family="Verdana" font-size="30" >
  206.41 -    <rect x="1" y="1" width="1128" height="218" 
  206.42 -          fill="#cccccc" stroke="blue" />
  206.43 -    <use x="0" y="0" xlink:href="#CircleRectTriangle"/>
  206.44 -    <text x="20" y="180">Original source graphic</text>
  206.45 -    <use x="380" y="80" xlink:href="#LineWithArrow"/>
  206.46 -    <text x="520" y="70">Filter</text>
  206.47 -    <text x="520" y="120">Effect</text>
  206.48 -    <use x="630" y="80" xlink:href="#LineWithArrow"/>
  206.49 -    <text x="790" y="180">Result of filter effect</text>
  206.50 -  </g>
  206.51 -  <g filter="url(#MyFilter)" >
  206.52 -    <use x="750" y="0" xlink:href="#CircleRectTriangle"/>
  206.53 -  </g>
  206.54 -</svg>
  206.55 -
  206.56 -
   207.1 Binary file master/examples/filters01-0.png has changed
   208.1 --- a/master/examples/filters01-0.svg	Thu Feb 24 10:19:12 2011 +0000
   208.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   208.3 @@ -1,23 +0,0 @@
   208.4 -<?xml version="1.0"?>
   208.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   208.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   208.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1"
   208.8 -     xmlns="http://www.w3.org/2000/svg">
   208.9 -  <title>Example filters01-0.svg - source graphic with no filters</title>
  208.10 -  <desc>Shows what filters01.svg looks like without any
  208.11 -        filters.</desc>
  208.12 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  208.13 -  <g>
  208.14 -	  <g>
  208.15 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  208.16 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  208.17 -      <path fill="#D90000" 
  208.18 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  208.19 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  208.20 -  			<text x="52" y="76">SVG</text>
  208.21 -      </g>
  208.22 -	  </g>
  208.23 -  </g>
  208.24 -</svg>
  208.25 -
  208.26 -
   209.1 Binary file master/examples/filters01-1.png has changed
   210.1 --- a/master/examples/filters01-1.svg	Thu Feb 24 10:19:12 2011 +0000
   210.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   210.3 @@ -1,28 +0,0 @@
   210.4 -<?xml version="1.0"?>
   210.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   210.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   210.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   210.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   210.9 -  <title>Example filters01-1.svg - after first step</title>
  210.10 -  <desc>Shows intermediate result for filters01.svg after applying
  210.11 -        the first filter element, feGaussianBlur.</desc>
  210.12 -	<defs>
  210.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  210.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  210.15 -		</filter>
  210.16 -	</defs>
  210.17 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  210.18 -  <g filter="url(#MyFilter)" >
  210.19 -	  <g>
  210.20 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  210.21 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  210.22 -      <path fill="#D90000" 
  210.23 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  210.24 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  210.25 -  			<text x="52" y="76">SVG</text>
  210.26 -      </g>
  210.27 -	  </g>
  210.28 -  </g>
  210.29 -</svg>
  210.30 -
  210.31 -
   211.1 Binary file master/examples/filters01-2.png has changed
   212.1 --- a/master/examples/filters01-2.svg	Thu Feb 24 10:19:12 2011 +0000
   212.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   212.3 @@ -1,29 +0,0 @@
   212.4 -<?xml version="1.0"?>
   212.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   212.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   212.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   212.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   212.9 -  <title>Example filters01-2.svg - after second step</title>
  212.10 -  <desc>Shows intermediate result for filters01.svg after applying
  212.11 -        the second filter element, feOffset.</desc>
  212.12 -	<defs>
  212.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  212.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  212.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  212.16 -		</filter>
  212.17 -	</defs>
  212.18 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  212.19 -  <g filter="url(#MyFilter)" >
  212.20 -	  <g>
  212.21 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  212.22 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  212.23 -      <path fill="#D90000" 
  212.24 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  212.25 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  212.26 -  			<text x="52" y="76">SVG</text>
  212.27 -      </g>
  212.28 -	  </g>
  212.29 -  </g>
  212.30 -</svg>
  212.31 -
  212.32 -
   213.1 Binary file master/examples/filters01-3.png has changed
   214.1 --- a/master/examples/filters01-3.svg	Thu Feb 24 10:19:12 2011 +0000
   214.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   214.3 @@ -1,34 +0,0 @@
   214.4 -<?xml version="1.0"?>
   214.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   214.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   214.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   214.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   214.9 -  <title>Example filters01-3.svg - after third step</title>
  214.10 -  <desc>Shows intermediate result for filters01.svg after applying
  214.11 -        the third filter element, feSpecularLighting.</desc>
  214.12 -	<defs>
  214.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  214.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  214.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  214.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  214.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  214.18 -                          result="specOut">
  214.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  214.20 -      </feSpecularLighting>
  214.21 -		</filter>
  214.22 -	</defs>
  214.23 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  214.24 -  <g filter="url(#MyFilter)" >
  214.25 -	  <g>
  214.26 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  214.27 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  214.28 -      <path fill="#D90000" 
  214.29 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  214.30 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  214.31 -  			<text x="52" y="76">SVG</text>
  214.32 -      </g>
  214.33 -	  </g>
  214.34 -  </g>
  214.35 -</svg>
  214.36 -
  214.37 -
   215.1 Binary file master/examples/filters01-4.png has changed
   216.1 --- a/master/examples/filters01-4.svg	Thu Feb 24 10:19:12 2011 +0000
   216.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   216.3 @@ -1,35 +0,0 @@
   216.4 -<?xml version="1.0"?>
   216.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   216.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   216.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   216.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   216.9 -  <title>Example filters01-4.svg - after fourth step</title>
  216.10 -  <desc>Shows intermediate result for filters01.svg after applying
  216.11 -        the fourth filter element, feComposite.</desc>
  216.12 -	<defs>
  216.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  216.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  216.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  216.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  216.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  216.18 -                          result="specOut">
  216.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  216.20 -      </feSpecularLighting>
  216.21 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  216.22 -		</filter>
  216.23 -	</defs>
  216.24 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  216.25 -  <g filter="url(#MyFilter)" >
  216.26 -	  <g>
  216.27 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  216.28 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  216.29 -      <path fill="#D90000" 
  216.30 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  216.31 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  216.32 -  			<text x="52" y="76">SVG</text>
  216.33 -      </g>
  216.34 -	  </g>
  216.35 -  </g>
  216.36 -</svg>
  216.37 -
  216.38 -
   217.1 Binary file master/examples/filters01-5.png has changed
   218.1 --- a/master/examples/filters01-5.svg	Thu Feb 24 10:19:12 2011 +0000
   218.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   218.3 @@ -1,37 +0,0 @@
   218.4 -<?xml version="1.0"?>
   218.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   218.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   218.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   218.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   218.9 -  <title>Example filters01-5.svg - after fifth step</title>
  218.10 -  <desc>Shows intermediate result for filters01.svg after applying
  218.11 -        the fifth filter element, feComposite.</desc>
  218.12 -	<defs>
  218.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  218.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  218.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  218.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  218.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  218.18 -                          result="specOut">
  218.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  218.20 -      </feSpecularLighting>
  218.21 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  218.22 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  218.23 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  218.24 -    </filter>
  218.25 -	</defs>
  218.26 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  218.27 -  <g filter="url(#MyFilter)" >
  218.28 -	  <g>
  218.29 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  218.30 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  218.31 -      <path fill="#D90000" 
  218.32 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  218.33 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  218.34 -  			<text x="52" y="76">SVG</text>
  218.35 -      </g>
  218.36 -	  </g>
  218.37 -  </g>
  218.38 -</svg>
  218.39 -
  218.40 -
   219.1 Binary file master/examples/filters01-6.png has changed
   220.1 --- a/master/examples/filters01-6.svg	Thu Feb 24 10:19:12 2011 +0000
   220.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   220.3 @@ -1,43 +0,0 @@
   220.4 -<?xml version="1.0"?>
   220.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   220.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   220.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   220.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   220.9 -  <title>Example filters01.svg - introducing filter effects</title>
  220.10 -  <desc>An example which combines multiple filter primitives
  220.11 -        to produce a 3D lighting effect on a graphic consisting
  220.12 -        of the string "SVG" sitting on top of oval filled in red
  220.13 -        and surrounded by an oval outlined in red.</desc>
  220.14 -  <defs>
  220.15 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  220.16 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  220.17 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  220.18 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  220.19 -                          specularExponent="20" lighting-color="#bbbbbb"  
  220.20 -                          result="specOut">
  220.21 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  220.22 -      </feSpecularLighting>
  220.23 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  220.24 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  220.25 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  220.26 -      <feMerge>
  220.27 -        <feMergeNode in="offsetBlur"/>
  220.28 -        <feMergeNode in="litPaint"/>
  220.29 -      </feMerge>
  220.30 -    </filter>
  220.31 -  </defs>
  220.32 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  220.33 -  <g filter="url(#MyFilter)" >
  220.34 -	  <g>
  220.35 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  220.36 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  220.37 -      <path fill="#D90000" 
  220.38 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  220.39 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  220.40 -        <text x="52" y="76">SVG</text>
  220.41 -      </g>
  220.42 -    </g>
  220.43 -  </g>
  220.44 -</svg>
  220.45 -
  220.46 -
   221.1 Binary file master/examples/filters01.png has changed
   222.1 --- a/master/examples/filters01.svg	Thu Feb 24 10:19:12 2011 +0000
   222.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   222.3 @@ -1,43 +0,0 @@
   222.4 -<?xml version="1.0"?>
   222.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   222.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   222.7 -<svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
   222.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   222.9 -  <title>Example filters01.svg - introducing filter effects</title>
  222.10 -  <desc>An example which combines multiple filter primitives
  222.11 -        to produce a 3D lighting effect on a graphic consisting
  222.12 -        of the string "SVG" sitting on top of oval filled in red
  222.13 -        and surrounded by an oval outlined in red.</desc>
  222.14 -  <defs>
  222.15 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  222.16 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  222.17 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  222.18 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  222.19 -                          specularExponent="20" lighting-color="#bbbbbb"  
  222.20 -                          result="specOut">
  222.21 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  222.22 -      </feSpecularLighting>
  222.23 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  222.24 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  222.25 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  222.26 -      <feMerge>
  222.27 -        <feMergeNode in="offsetBlur"/>
  222.28 -        <feMergeNode in="litPaint"/>
  222.29 -      </feMerge>
  222.30 -    </filter>
  222.31 -  </defs>
  222.32 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  222.33 -  <g filter="url(#MyFilter)" >
  222.34 -	  <g>
  222.35 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  222.36 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  222.37 -      <path fill="#D90000" 
  222.38 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  222.39 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  222.40 -        <text x="52" y="76">SVG</text>
  222.41 -      </g>
  222.42 -    </g>
  222.43 -  </g>
  222.44 -</svg>
  222.45 -
  222.46 -
   223.1 Binary file master/examples/filtersubregion00.png has changed
   224.1 --- a/master/examples/filtersubregion00.svg	Thu Feb 24 10:19:12 2011 +0000
   224.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   224.3 @@ -1,43 +0,0 @@
   224.4 -<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 
   224.5 -	<defs>
   224.6 -		<filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox">
   224.7 -		   <feFlood x="25%" y="25%" width="50%" height="50%"
   224.8 -					flood-color="green" flood-opacity="0.75"/>
   224.9 -		</filter>
  224.10 -		<filter id="blend" primitiveUnits="objectBoundingBox">
  224.11 -		   <feBlend x="25%" y="25%" width="50%" height="50%"
  224.12 -					in2="SourceGraphic" mode="multiply"/>
  224.13 -		</filter>
  224.14 -		<filter id="merge" primitiveUnits="objectBoundingBox">
  224.15 -		   <feMerge x="25%" y="25%" width="50%" height="50%">
  224.16 -				<feMergeNode in="SourceGraphic"/>
  224.17 -				<feMergeNode in="FillPaint"/>
  224.18 -		   </feMerge>
  224.19 -		</filter>
  224.20 -	</defs>
  224.21 -	
  224.22 -	<g fill="none" stroke="blue" stroke-width="4">
  224.23 -	   <rect width="200" height="200"/>
  224.24 -	   <line x2="200" y2="200"/>
  224.25 -	   <line x1="200" y2="200"/>
  224.26 -	</g>
  224.27 -	<circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/>
  224.28 -
  224.29 -	<g transform="translate(200 0)">
  224.30 -		<g fill="none" stroke="blue" stroke-width="4">
  224.31 -		   <rect width="200" height="200"/>
  224.32 -		   <line x2="200" y2="200"/>
  224.33 -		   <line x1="200" y2="200"/>
  224.34 -		</g>
  224.35 -		<circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/>
  224.36 -	</g>
  224.37 -	
  224.38 -	<g transform="translate(0 200)">
  224.39 -		<g fill="none" stroke="blue" stroke-width="4">
  224.40 -		   <rect width="200" height="200"/>
  224.41 -		   <line x2="200" y2="200"/>
  224.42 -		   <line x1="200" y2="200"/>
  224.43 -		</g>
  224.44 -		<circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/>
  224.45 -	</g>
  224.46 -</svg>
  224.47 \ No newline at end of file
   225.1 Binary file master/examples/forest-small.jpg has changed
   226.1 --- a/master/mathml/feColorMatrix00.mml	Thu Feb 24 10:19:12 2011 +0000
   226.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   226.3 @@ -1,209 +0,0 @@
   226.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   226.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   226.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   226.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   226.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   226.9 -  <mrow>
  226.10 -  <mfenced open="[" close="]">
  226.11 -  	<mrow>
  226.12 -	    <mtable>
  226.13 -	      <mtr>
  226.14 -			<msup>
  226.15 -				<mi>R</mi>
  226.16 -				<mo>'</mo>
  226.17 -			</msup>
  226.18 -	      </mtr>
  226.19 -	      <mtr>
  226.20 -			<msup>
  226.21 -				<mi>G</mi>
  226.22 -				<mo>'</mo>
  226.23 -			</msup>
  226.24 -	      </mtr>
  226.25 -	      <mtr>
  226.26 -			<msup>
  226.27 -				<mi>B</mi>
  226.28 -				<mo>'</mo>
  226.29 -			</msup>
  226.30 -	      </mtr>
  226.31 -		  <mtr>
  226.32 -			<msup>
  226.33 -				<mi>A</mi>
  226.34 -				<mo>'</mo>
  226.35 -			</msup>
  226.36 -	      </mtr>
  226.37 -	    </mtable>
  226.38 -    </mrow>
  226.39 -  </mfenced>
  226.40 -  <mo>=</mo>
  226.41 -  <mfenced open="[" close="]">
  226.42 -   <mrow>
  226.43 -    <mtable>
  226.44 -        <mtr>
  226.45 -          <mtd>
  226.46 -			<msub>
  226.47 -				<mi>a</mi>
  226.48 -				<mn>00</mn>
  226.49 -			</msub>
  226.50 -          </mtd>
  226.51 -          <mtd>
  226.52 -			<msub>
  226.53 -				<mi>a</mi>
  226.54 -				<mn>01</mn>
  226.55 -			</msub>
  226.56 -          </mtd>
  226.57 -          <mtd>
  226.58 -			<msub>
  226.59 -				<mi>a</mi>
  226.60 -				<mn>02</mn>
  226.61 -			</msub>
  226.62 -		  </mtd>
  226.63 -          <mtd>
  226.64 -		  <msub>
  226.65 -            <mi>a</mi>
  226.66 -            <mn>03</mn>
  226.67 -          </msub>
  226.68 -		  </mtd>
  226.69 -          <mtd>
  226.70 -		  <msub>
  226.71 -            <mi>a</mi>
  226.72 -            <mn>04</mn>
  226.73 -          </msub>
  226.74 -		  </mtd>
  226.75 -        </mtr>
  226.76 -        <mtr>
  226.77 -          <mtd>
  226.78 -            <msub>
  226.79 -			<mi>a</mi>
  226.80 -            <mn>10</mn>
  226.81 -			</msub>
  226.82 -		  </mtd>
  226.83 -          <mtd>
  226.84 -		  <msub>
  226.85 -            <mi>a</mi>
  226.86 -            <mn>11</mn>
  226.87 -		  </msub>
  226.88 -          </mtd>
  226.89 -          <mtd>
  226.90 -          <msub>
  226.91 -			<mi>a</mi>
  226.92 -            <mn>12</mn>
  226.93 -          </msub>
  226.94 -		  </mtd>
  226.95 -          <mtd>
  226.96 -            <msub>
  226.97 -			<mi>a</mi>
  226.98 -            <mn>13</mn>
  226.99 -            </msub>
 226.100 -		  </mtd>
 226.101 -          <mtd>
 226.102 -		  <msub>
 226.103 -            <mi>a</mi>
 226.104 -            <mn>14</mn>
 226.105 -          </msub>
 226.106 -		  </mtd>
 226.107 -        </mtr>
 226.108 -        <mtr>
 226.109 -          <mtd>
 226.110 -            <msub>
 226.111 -			<mi>a</mi>
 226.112 -            <mn>20</mn>
 226.113 -          </msub>
 226.114 -		  </mtd>
 226.115 -          <mtd>
 226.116 -            <msub>
 226.117 -			<mi>a</mi>
 226.118 -            <mn>21</mn>
 226.119 -          </msub>
 226.120 -		  </mtd>
 226.121 -          <mtd>
 226.122 -		  <msub>
 226.123 -            <mi>a</mi>
 226.124 -            <mn>22</mn>
 226.125 -          </msub>
 226.126 -		  </mtd>
 226.127 -          <mtd>
 226.128 -            <msub>
 226.129 -			<mi>a</mi>
 226.130 -            <mn>23</mn>
 226.131 -          </msub>
 226.132 -		  </mtd>
 226.133 -          <mtd>
 226.134 -            <msub>
 226.135 -			<mi>a</mi>
 226.136 -            <mn>24</mn>
 226.137 -          </msub>
 226.138 -		  </mtd>
 226.139 -        </mtr>
 226.140 -        <mtr>
 226.141 -          <mtd>
 226.142 -            <msub>
 226.143 -			<mi>a</mi>
 226.144 -            <mn>30</mn>
 226.145 -          </msub>
 226.146 -		  </mtd>
 226.147 -          <mtd>
 226.148 -            <msub>
 226.149 -			<mi>a</mi>
 226.150 -            <mn>31</mn>
 226.151 -          </msub>
 226.152 -		  </mtd>
 226.153 -          <mtd>
 226.154 -            <msub>
 226.155 -			<mi>a</mi>
 226.156 -            <mn>32</mn>
 226.157 -          </msub>
 226.158 -		  </mtd>
 226.159 -          <mtd>
 226.160 -            <msub>
 226.161 -			<mi>a</mi>
 226.162 -            <mn>33</mn>
 226.163 -          </msub>
 226.164 -		  </mtd>
 226.165 -          <mtd>
 226.166 -            <msub>
 226.167 -			<mi>a</mi>
 226.168 -            <mn>34</mn>
 226.169 -          </msub>
 226.170 -		  </mtd>
 226.171 -        </mtr>
 226.172 -        <mtr>
 226.173 -          <mtd>
 226.174 -            <mn>0</mn>
 226.175 -          </mtd>
 226.176 -          <mtd>
 226.177 -            <mn>0</mn>
 226.178 -          </mtd>
 226.179 -          <mtd>
 226.180 -            <mn>0</mn>
 226.181 -          </mtd>
 226.182 -          <mtd>
 226.183 -            <mn>0</mn>
 226.184 -          </mtd>
 226.185 -          <mtd>
 226.186 -            <mn>1</mn>
 226.187 -          </mtd>
 226.188 -        </mtr>
 226.189 -    </mtable>
 226.190 -    </mrow>
 226.191 -	</mfenced>
 226.192 -	<mo>.</mo>
 226.193 -    <mfenced open="[" close="]">
 226.194 -  	<mrow>
 226.195 -	    <mtable>
 226.196 -	      <mtr>
 226.197 -			<mi>R</mi>
 226.198 -	      </mtr>
 226.199 -	      <mtr>
 226.200 -			<mi>G</mi>
 226.201 -	      </mtr>
 226.202 -	      <mtr>
 226.203 -			<mi>B</mi>
 226.204 -	      </mtr>
 226.205 -		  <mtr>
 226.206 -			<mi>A</mi>
 226.207 -	      </mtr>
 226.208 -	    </mtable>
 226.209 -    </mrow>
 226.210 -  </mfenced>
 226.211 -</mrow>
 226.212 -</math>
   227.1 --- a/master/mathml/feColorMatrix01.mml	Thu Feb 24 10:19:12 2011 +0000
   227.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   227.3 @@ -1,198 +0,0 @@
   227.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   227.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   227.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   227.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   227.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   227.9 -  <mrow>
  227.10 -    <mfenced>
  227.11 -      <mtable>
  227.12 -        <mtr>
  227.13 -          <mtd>
  227.14 -            <msup>
  227.15 -              <mi>R</mi>
  227.16 -              <mo>'</mo>
  227.17 -            </msup>
  227.18 -          </mtd>
  227.19 -        </mtr>
  227.20 -        <mtr>
  227.21 -          <mtd>
  227.22 -            <msup>
  227.23 -              <mi>G</mi>
  227.24 -              <mo>'</mo>
  227.25 -            </msup>
  227.26 -          </mtd>
  227.27 -        </mtr>
  227.28 -        <mtr>
  227.29 -          <mtd>
  227.30 -            <msup>
  227.31 -              <mi>B</mi>
  227.32 -              <mo>'</mo>
  227.33 -            </msup>
  227.34 -          </mtd>
  227.35 -        </mtr>
  227.36 -        <mtr>
  227.37 -          <mtd>
  227.38 -            <msup>
  227.39 -              <mi>A</mi>
  227.40 -              <mo>'</mo>
  227.41 -            </msup>
  227.42 -          </mtd>
  227.43 -        </mtr>
  227.44 -        <mtr>
  227.45 -          <mtd>
  227.46 -            <mn>1</mn>
  227.47 -          </mtd>
  227.48 -        </mtr>
  227.49 -      </mtable>
  227.50 -    </mfenced>
  227.51 -    <mo>=</mo>
  227.52 -    <mrow>
  227.53 -      <mfenced>
  227.54 -        <mtable>
  227.55 -          <mtr>
  227.56 -            <mtd>
  227.57 -              <mn>0.213</mn>
  227.58 -              <mo>+</mo>
  227.59 -              <mn>0.787</mn>
  227.60 -              <mi>s</mi>
  227.61 -            </mtd>
  227.62 -            <mtd>
  227.63 -              <mn>0.715</mn>
  227.64 -              <mo>&minus;</mo>
  227.65 -              <mo>0.715</mo>
  227.66 -              <mi>s</mi>
  227.67 -            </mtd>
  227.68 -            <mtd>
  227.69 -              <mn>0.072</mn>
  227.70 -              <mo>&minus;</mo>
  227.71 -              <mn>0.072</mn>
  227.72 -              <mi>s</mi>
  227.73 -            </mtd>
  227.74 -            <mtd>
  227.75 -              <mn>0</mn>
  227.76 -            </mtd>
  227.77 -            <mtd>
  227.78 -              <mn>0</mn>
  227.79 -            </mtd>
  227.80 -          </mtr>
  227.81 -          <mtr>
  227.82 -            <mtd>
  227.83 -              <mn>0.213</mn>
  227.84 -              <mo>&minus;</mo>
  227.85 -              <mn>0.213</mn>
  227.86 -              <mi>s</mi>
  227.87 -            </mtd>
  227.88 -            <mtd>
  227.89 -              <mn>0.715</mn>
  227.90 -              <mo>+</mo>
  227.91 -              <mn>0.285</mn>
  227.92 -              <mi>s</mi>
  227.93 -            </mtd>
  227.94 -            <mtd>
  227.95 -              <mn>0.072</mn>
  227.96 -              <mo>&minus;</mo>
  227.97 -              <mn>0.072</mn>
  227.98 -              <mi>s</mi>
  227.99 -            </mtd>
 227.100 -            <mtd>
 227.101 -              <mn>0</mn>
 227.102 -            </mtd>
 227.103 -            <mtd>
 227.104 -              <mn>0</mn>
 227.105 -            </mtd>
 227.106 -          </mtr>
 227.107 -          <mtr>
 227.108 -            <mtd>
 227.109 -              <mn>0.213</mn>
 227.110 -              <mo>&minus;</mo>
 227.111 -              <mn>0.213</mn>
 227.112 -              <mi>s</mi>
 227.113 -            </mtd>
 227.114 -            <mtd>
 227.115 -              <mn>0.715</mn>
 227.116 -              <mo>&minus;</mo>
 227.117 -              <mn>0.715</mn>
 227.118 -              <mi>s</mi>
 227.119 -            </mtd>
 227.120 -            <mtd>
 227.121 -              <mn>0.072</mn>
 227.122 -              <mo>+</mo>
 227.123 -              <mn>0.928</mn>
 227.124 -              <mi>s</mi>
 227.125 -            </mtd>
 227.126 -            <mtd>
 227.127 -              <mn>0</mn>
 227.128 -            </mtd>
 227.129 -            <mtd>
 227.130 -              <mn>0</mn>
 227.131 -            </mtd>
 227.132 -          </mtr>
 227.133 -          <mtr>
 227.134 -            <mtd>
 227.135 -              <mn>0</mn>
 227.136 -            </mtd>
 227.137 -            <mtd>
 227.138 -              <mn>0</mn>
 227.139 -            </mtd>
 227.140 -            <mtd>
 227.141 -              <mn>0</mn>
 227.142 -            </mtd>
 227.143 -            <mtd>
 227.144 -              <mn>1</mn>
 227.145 -            </mtd>
 227.146 -            <mtd>
 227.147 -              <mn>0</mn>
 227.148 -            </mtd>
 227.149 -          </mtr>
 227.150 -          <mtr>
 227.151 -            <mtd>
 227.152 -              <mn>0</mn>
 227.153 -            </mtd>
 227.154 -            <mtd>
 227.155 -              <mn>0</mn>
 227.156 -            </mtd>
 227.157 -            <mtd>
 227.158 -              <mn>0</mn>
 227.159 -            </mtd>
 227.160 -            <mtd>
 227.161 -              <mn>0</mn>
 227.162 -            </mtd>
 227.163 -            <mtd>
 227.164 -              <mn>1</mn>
 227.165 -            </mtd>
 227.166 -          </mtr>
 227.167 -        </mtable>
 227.168 -      </mfenced>
 227.169 -      <mo>.</mo>
 227.170 -      <mfenced>
 227.171 -        <mtable>
 227.172 -          <mtr>
 227.173 -            <mtd>
 227.174 -              <mi>R</mi>
 227.175 -            </mtd>
 227.176 -          </mtr>
 227.177 -          <mtr>
 227.178 -            <mtd>
 227.179 -              <mi>G</mi>
 227.180 -            </mtd>
 227.181 -          </mtr>
 227.182 -          <mtr>
 227.183 -            <mtd>
 227.184 -              <mi>B</mi>
 227.185 -            </mtd>
 227.186 -          </mtr>
 227.187 -          <mtr>
 227.188 -            <mtd>
 227.189 -              <mi>A</mi>
 227.190 -            </mtd>
 227.191 -          </mtr>
 227.192 -          <mtr>
 227.193 -            <mtd>
 227.194 -              <mn>1</mn>
 227.195 -            </mtd>
 227.196 -          </mtr>
 227.197 -        </mtable>
 227.198 -      </mfenced>
 227.199 -    </mrow>
 227.200 -  </mrow>
 227.201 -</math>
 227.202 \ No newline at end of file
   228.1 --- a/master/mathml/feColorMatrix02.mml	Thu Feb 24 10:19:12 2011 +0000
   228.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   228.3 @@ -1,179 +0,0 @@
   228.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   228.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   228.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   228.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   228.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   228.9 -  <mfenced>
  228.10 -    <mtable>
  228.11 -      <mtr>
  228.12 -        <mtd>
  228.13 -          <msup>
  228.14 -            <mi>R</mi>
  228.15 -            <mo>'</mo>
  228.16 -          </msup>
  228.17 -        </mtd>
  228.18 -      </mtr>
  228.19 -      <mtr>
  228.20 -        <mtd>
  228.21 -          <msup>
  228.22 -            <mi>G</mi>
  228.23 -            <mo>'</mo>
  228.24 -          </msup>
  228.25 -        </mtd>
  228.26 -      </mtr>
  228.27 -      <mtr>
  228.28 -        <mtd>
  228.29 -          <msup>
  228.30 -            <mi>B</mi>
  228.31 -            <mo>'</mo>
  228.32 -          </msup>
  228.33 -        </mtd>
  228.34 -      </mtr>
  228.35 -      <mtr>
  228.36 -        <mtd>
  228.37 -          <msup>
  228.38 -            <mi>A</mi>
  228.39 -            <mo>'</mo>
  228.40 -          </msup>
  228.41 -        </mtd>
  228.42 -      </mtr>
  228.43 -      <mtr>
  228.44 -        <mtd>
  228.45 -          <mn>1</mn>
  228.46 -        </mtd>
  228.47 -      </mtr>
  228.48 -    </mtable>
  228.49 -  </mfenced>
  228.50 -  <mo>=</mo>
  228.51 -  <mrow>
  228.52 -    <mn><mfenced>
  228.53 -      <mtable>
  228.54 -        <mtr>
  228.55 -          <mtd>
  228.56 -            <mi>a</mi>
  228.57 -            <mn>00</mn>
  228.58 -          </mtd>
  228.59 -          <mtd>
  228.60 -            <mi>a</mi>
  228.61 -            <mn>01</mn>
  228.62 -          </mtd>
  228.63 -          <mtd>
  228.64 -            <mi>a</mi>
  228.65 -            <mn>02</mn>
  228.66 -          </mtd>
  228.67 -          <mtd>
  228.68 -            <mn>0</mn>
  228.69 -          </mtd>
  228.70 -          <mtd>
  228.71 -            <mn>0</mn>
  228.72 -          </mtd>
  228.73 -        </mtr>
  228.74 -        <mtr>
  228.75 -          <mtd>
  228.76 -            <mi>a</mi>
  228.77 -            <mn>10</mn>
  228.78 -          </mtd>
  228.79 -          <mtd>
  228.80 -            <mi>a</mi>
  228.81 -            <mn>11</mn>
  228.82 -          </mtd>
  228.83 -          <mtd>
  228.84 -            <mi>a</mi>
  228.85 -            <mn>12</mn>
  228.86 -          </mtd>
  228.87 -          <mtd>
  228.88 -            <mn>0</mn>
  228.89 -          </mtd>
  228.90 -          <mtd>
  228.91 -            <mn>0</mn>
  228.92 -          </mtd>
  228.93 -        </mtr>
  228.94 -        <mtr>
  228.95 -          <mtd>
  228.96 -            <mi>a</mi>
  228.97 -            <mn>20</mn>
  228.98 -          </mtd>
  228.99 -          <mtd>
 228.100 -            <mi>a</mi>
 228.101 -            <mn>21</mn>
 228.102 -          </mtd>
 228.103 -          <mtd>
 228.104 -            <mi>a</mi>
 228.105 -            <mn>22</mn>
 228.106 -          </mtd>
 228.107 -          <mtd>
 228.108 -            <mn>0</mn>
 228.109 -          </mtd>
 228.110 -          <mtd>
 228.111 -            <mn>0</mn>
 228.112 -          </mtd>
 228.113 -        </mtr>
 228.114 -        <mtr>
 228.115 -          <mtd>
 228.116 -            <mn>0</mn>
 228.117 -          </mtd>
 228.118 -          <mtd>
 228.119 -            <mn>0</mn>
 228.120 -          </mtd>
 228.121 -          <mtd>
 228.122 -            <mn>0</mn>
 228.123 -          </mtd>
 228.124 -          <mtd>
 228.125 -            <mn>1</mn>
 228.126 -          </mtd>
 228.127 -          <mtd>
 228.128 -            <mn>0</mn>
 228.129 -          </mtd>
 228.130 -        </mtr>
 228.131 -        <mtr>
 228.132 -          <mtd>
 228.133 -            <mn>0</mn>
 228.134 -          </mtd>
 228.135 -          <mtd>
 228.136 -            <mn>0</mn>
 228.137 -          </mtd>
 228.138 -          <mtd>
 228.139 -            <mn>0</mn>
 228.140 -          </mtd>
 228.141 -          <mtd>
 228.142 -            <mn>0</mn>
 228.143 -          </mtd>
 228.144 -          <mtd>
 228.145 -            <mn>1</mn>
 228.146 -          </mtd>
 228.147 -        </mtr>
 228.148 -      </mtable>
 228.149 -    </mfenced>
 228.150 -    </mn>
 228.151 -    <mo>.</mo>
 228.152 -    <mfenced>
 228.153 -      <mtable>
 228.154 -        <mtr>
 228.155 -          <mtd>
 228.156 -            <mi>R</mi>
 228.157 -          </mtd>
 228.158 -        </mtr>
 228.159 -        <mtr>
 228.160 -          <mtd>
 228.161 -            <mi>G</mi>
 228.162 -          </mtd>
 228.163 -        </mtr>
 228.164 -        <mtr>
 228.165 -          <mtd>
 228.166 -            <mi>B</mi>
 228.167 -          </mtd>
 228.168 -        </mtr>
 228.169 -        <mtr>
 228.170 -          <mtd>
 228.171 -            <mi>A</mi>
 228.172 -          </mtd>
 228.173 -        </mtr>
 228.174 -        <mtr>
 228.175 -          <mtd>
 228.176 -            <mn>1</mn>
 228.177 -          </mtd>
 228.178 -        </mtr>
 228.179 -      </mtable>
 228.180 -    </mfenced>
 228.181 -  </mrow>
 228.182 -</math>
 228.183 \ No newline at end of file
   229.1 --- a/master/mathml/feColorMatrix03.mml	Thu Feb 24 10:19:12 2011 +0000
   229.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   229.3 @@ -1,212 +0,0 @@
   229.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   229.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   229.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   229.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   229.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   229.9 -  <mrow>
  229.10 -    <mfenced>
  229.11 -      <mtable>
  229.12 -        <mtr>
  229.13 -          <mtd>
  229.14 -            <mi>a</mi>
  229.15 -            <mn>00</mn>
  229.16 -          </mtd>
  229.17 -          <mtd>
  229.18 -            <mi>a</mi>
  229.19 -            <mn>01</mn>
  229.20 -          </mtd>
  229.21 -          <mtd>
  229.22 -            <mi>a</mi>
  229.23 -            <mn>02</mn>
  229.24 -          </mtd>
  229.25 -        </mtr>
  229.26 -        <mtr>
  229.27 -          <mtd>
  229.28 -            <mi>a</mi>
  229.29 -            <mn>10</mn>
  229.30 -          </mtd>
  229.31 -          <mtd>
  229.32 -            <mi>a</mi>
  229.33 -            <mn>11</mn>
  229.34 -          </mtd>
  229.35 -          <mtd>
  229.36 -            <mi>a</mi>
  229.37 -            <mn>12</mn>
  229.38 -          </mtd>
  229.39 -        </mtr>
  229.40 -        <mtr>
  229.41 -          <mtd>
  229.42 -            <mi>a</mi>
  229.43 -            <mn>20</mn>
  229.44 -          </mtd>
  229.45 -          <mtd>
  229.46 -            <mi>a</mi>
  229.47 -            <mn>21</mn>
  229.48 -          </mtd>
  229.49 -          <mtd>
  229.50 -            <mi>a</mi>
  229.51 -            <mn>22</mn>
  229.52 -          </mtd>
  229.53 -        </mtr>
  229.54 -      </mtable>
  229.55 -    </mfenced>
  229.56 -    <mo>=</mo>
  229.57 -    <mfenced close="+">
  229.58 -      <mtable>
  229.59 -        <mtr>
  229.60 -          <mtd>
  229.61 -            <mn>0.213</mn>
  229.62 -          </mtd>
  229.63 -          <mtd>
  229.64 -            <mn>0.715</mn>
  229.65 -          </mtd>
  229.66 -          <mtd>
  229.67 -            <mn>0.072</mn>
  229.68 -          </mtd>
  229.69 -        </mtr>
  229.70 -        <mtr>
  229.71 -          <mtd>
  229.72 -            <mn>0.213</mn>
  229.73 -          </mtd>
  229.74 -          <mtd>
  229.75 -            <mn>0.715</mn>
  229.76 -          </mtd>
  229.77 -          <mtd>
  229.78 -            <mn>0.072</mn>
  229.79 -          </mtd>
  229.80 -        </mtr>
  229.81 -        <mtr>
  229.82 -          <mtd>
  229.83 -            <mn>0.213</mn>
  229.84 -          </mtd>
  229.85 -          <mtd>
  229.86 -            <mn>0.715</mn>
  229.87 -          </mtd>
  229.88 -          <mtd>
  229.89 -            <mn>0.072</mn>
  229.90 -          </mtd>
  229.91 -        </mtr>
  229.92 -      </mtable>
  229.93 -    </mfenced>
  229.94 -    <mo>+</mo>
  229.95 -    <mrow>
  229.96 -      <mrow>
  229.97 -        <mi>cos</mi>
  229.98 -        <mo>&#x2061;</mo>
  229.99 -        <mrow>
 229.100 -          <mo>(</mo>
 229.101 -          <mi>hueRotate</mi>
 229.102 -          <mi>value</mi>
 229.103 -          <mo>)</mo>
 229.104 -        </mrow>
 229.105 -      </mrow>
 229.106 -      <mo>.</mo>
 229.107 -      <mfenced>
 229.108 -        <mtable>
 229.109 -          <mtr>
 229.110 -            <mtd>
 229.111 -              <mn>0.787</mn>
 229.112 -            </mtd>
 229.113 -            <mtd>
 229.114 -              <mo>&minus;</mo>
 229.115 -              <mn>0.715</mn>
 229.116 -            </mtd>
 229.117 -            <mtd>
 229.118 -              <mrow>
 229.119 -                <mo>&minus;</mo>
 229.120 -                <mn>0.072</mn>
 229.121 -              </mrow>
 229.122 -            </mtd>
 229.123 -          </mtr>
 229.124 -          <mtr>
 229.125 -            <mtd>
 229.126 -              <mo>&minus;</mo>
 229.127 -              <mn>0.213</mn>
 229.128 -            </mtd>
 229.129 -            <mtd>
 229.130 -              <mn>0.285</mn>
 229.131 -            </mtd>
 229.132 -            <mtd>
 229.133 -              <mo>&minus;</mo>
 229.134 -              <mn>0.072</mn>
 229.135 -            </mtd>
 229.136 -          </mtr>
 229.137 -          <mtr>
 229.138 -            <mtd>
 229.139 -              <mo>&minus;</mo>
 229.140 -              <mn>0.213</mn>
 229.141 -            </mtd>
 229.142 -            <mtd>
 229.143 -              <mo>&minus;</mo>
 229.144 -              <mn>0.715</mn>
 229.145 -            </mtd>
 229.146 -            <mtd>
 229.147 -              <mn>0.928</mn>
 229.148 -            </mtd>
 229.149 -          </mtr>
 229.150 -        </mtable>
 229.151 -      </mfenced>
 229.152 -    </mrow>
 229.153 -    <mo>+</mo>
 229.154 -    <mrow>
 229.155 -      <mrow>
 229.156 -        <mi>sin</mi>
 229.157 -        <mo>&#x2061;</mo>
 229.158 -        <mo>(</mo>
 229.159 -        <mi>hueRotate</mi>
 229.160 -        <mi>value</mi>
 229.161 -        <mo>)</mo>
 229.162 -      </mrow>
 229.163 -      <mo>.</mo>
 229.164 -      <mfenced>
 229.165 -        <mtable>
 229.166 -          <mtr>
 229.167 -            <mtd>
 229.168 -              <mrow>
 229.169 -                <mo>&minus;</mo>
 229.170 -                <mn>0.213</mn>
 229.171 -              </mrow>
 229.172 -            </mtd>
 229.173 -            <mtd>
 229.174 -              <mrow>
 229.175 -                <mo>&minus;</mo>
 229.176 -                <mn>0.715</mn>
 229.177 -              </mrow>
 229.178 -            </mtd>
 229.179 -            <mtd>
 229.180 -              <mn>0.928</mn>
 229.181 -            </mtd>
 229.182 -          </mtr>
 229.183 -          <mtr>
 229.184 -            <mtd>
 229.185 -              <mn>0.143</mn>
 229.186 -            </mtd>
 229.187 -            <mtd>
 229.188 -              <mn>0.140</mn>
 229.189 -            </mtd>
 229.190 -            <mtd>
 229.191 -              <mrow>
 229.192 -                <mo>&minus;</mo>
 229.193 -                <mn>0.283</mn>
 229.194 -              </mrow>
 229.195 -            </mtd>
 229.196 -          </mtr>
 229.197 -          <mtr>
 229.198 -            <mtd>
 229.199 -              <mrow>
 229.200 -                <mo>&minus;</mo>
 229.201 -                <mn>0.787</mn>
 229.202 -              </mrow>
 229.203 -            </mtd>
 229.204 -            <mtd>
 229.205 -              <mn>0.715</mn>
 229.206 -            </mtd>
 229.207 -            <mtd>
 229.208 -              <mn>0.072</mn>
 229.209 -            </mtd>
 229.210 -          </mtr>
 229.211 -        </mtable>
 229.212 -      </mfenced>
 229.213 -    </mrow>
 229.214 -  </mrow>
 229.215 -</math>
 229.216 \ No newline at end of file
   230.1 --- a/master/mathml/feColorMatrix04.mml	Thu Feb 24 10:19:12 2011 +0000
   230.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   230.3 @@ -1,36 +0,0 @@
   230.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   230.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   230.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   230.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   230.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   230.9 -  <mrow>
  230.10 -    <mi>a</mi>
  230.11 -    <mn>00</mn>
  230.12 -    <mo>=</mo>
  230.13 -    <mrow>
  230.14 -      <mn>0.213</mn>
  230.15 -      <mo>+</mo>
  230.16 -      <mrow>
  230.17 -        <mrow>
  230.18 -          <mrow>
  230.19 -            <mi>cos</mi>
  230.20 -            <mo>&#x2061;</mo>
  230.21 -            <mtext>(hueRotate value)</mtext>
  230.22 -          </mrow>
  230.23 -          <mo>×</mo>
  230.24 -          <mn>0.787</mn>
  230.25 -        </mrow>
  230.26 -        <mo>&minus;</mo>
  230.27 -        <mrow>
  230.28 -          <mrow>
  230.29 -            <mi>sin</mi>
  230.30 -            <mo>&#x2061;</mo>
  230.31 -            <mtext>(hueRotate value)</mtext>
  230.32 -          </mrow>
  230.33 -          <mo>×</mo>
  230.34 -          <mn>0.213</mn>
  230.35 -        </mrow>
  230.36 -      </mrow>
  230.37 -    </mrow>
  230.38 -  </mrow>
  230.39 -</math>
  230.40 \ No newline at end of file
   231.1 --- a/master/mathml/feColorMatrix05.mml	Thu Feb 24 10:19:12 2011 +0000
   231.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   231.3 @@ -1,170 +0,0 @@
   231.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   231.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   231.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   231.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   231.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   231.9 -  <mfenced>
  231.10 -    <mtable>
  231.11 -      <mtr>
  231.12 -        <mtd>
  231.13 -          <msup>
  231.14 -            <mi>R</mi>
  231.15 -            <mo>'</mo>
  231.16 -          </msup>
  231.17 -        </mtd>
  231.18 -      </mtr>
  231.19 -      <mtr>
  231.20 -        <mtd>
  231.21 -          <msup>
  231.22 -            <mi>G</mi>
  231.23 -            <mo>'</mo>
  231.24 -          </msup>
  231.25 -        </mtd>
  231.26 -      </mtr>
  231.27 -      <mtr>
  231.28 -        <mtd>
  231.29 -          <msup>
  231.30 -            <mi>B</mi>
  231.31 -            <mo>'</mo>
  231.32 -          </msup>
  231.33 -        </mtd>
  231.34 -      </mtr>
  231.35 -      <mtr>
  231.36 -        <mtd>
  231.37 -          <msup>
  231.38 -            <mi>A</mi>
  231.39 -            <mo>'</mo>
  231.40 -          </msup>
  231.41 -        </mtd>
  231.42 -      </mtr>
  231.43 -      <mtr>
  231.44 -        <mtd>
  231.45 -          <mn>1</mn>
  231.46 -        </mtd>
  231.47 -      </mtr>
  231.48 -    </mtable>
  231.49 -  </mfenced>
  231.50 -  <mo>=</mo>
  231.51 -  <mrow>
  231.52 -    <mn><mfenced>
  231.53 -      <mtable>
  231.54 -        <mtr>
  231.55 -          <mtd>
  231.56 -            <mn>0</mn>
  231.57 -          </mtd>
  231.58 -          <mtd>
  231.59 -            <mn>0</mn>
  231.60 -          </mtd>
  231.61 -          <mtd>
  231.62 -            <mn>0</mn>
  231.63 -          </mtd>
  231.64 -          <mtd>
  231.65 -            <mn>0</mn>
  231.66 -          </mtd>
  231.67 -          <mtd>
  231.68 -            <mn>0</mn>
  231.69 -          </mtd>
  231.70 -        </mtr>
  231.71 -        <mtr>
  231.72 -          <mtd>
  231.73 -            <mn>0</mn>
  231.74 -          </mtd>
  231.75 -          <mtd>
  231.76 -            <mn>0</mn>
  231.77 -          </mtd>
  231.78 -          <mtd>
  231.79 -            <mn>0</mn>
  231.80 -          </mtd>
  231.81 -          <mtd>
  231.82 -            <mn>0</mn>
  231.83 -          </mtd>
  231.84 -          <mtd>
  231.85 -            <mn>0</mn>
  231.86 -          </mtd>
  231.87 -        </mtr>
  231.88 -        <mtr>
  231.89 -          <mtd>
  231.90 -            <mn>0</mn>
  231.91 -          </mtd>
  231.92 -          <mtd>
  231.93 -            <mn>0</mn>
  231.94 -          </mtd>
  231.95 -          <mtd>
  231.96 -            <mn>0</mn>
  231.97 -          </mtd>
  231.98 -          <mtd>
  231.99 -            <mn>0</mn>
 231.100 -          </mtd>
 231.101 -          <mtd>
 231.102 -            <mn>0</mn>
 231.103 -          </mtd>
 231.104 -        </mtr>
 231.105 -        <mtr>
 231.106 -          <mtd>
 231.107 -            <mn>0.2125</mn>
 231.108 -          </mtd>
 231.109 -          <mtd>
 231.110 -            <mn>0.7154</mn>
 231.111 -          </mtd>
 231.112 -          <mtd>
 231.113 -            <mn>0.0721</mn>
 231.114 -          </mtd>
 231.115 -          <mtd>
 231.116 -            <mn>0</mn>
 231.117 -          </mtd>
 231.118 -          <mtd>
 231.119 -            <mn>0</mn>
 231.120 -          </mtd>
 231.121 -        </mtr>
 231.122 -        <mtr>
 231.123 -          <mtd>
 231.124 -            <mn>0</mn>
 231.125 -          </mtd>
 231.126 -          <mtd>
 231.127 -            <mn>0</mn>
 231.128 -          </mtd>
 231.129 -          <mtd>
 231.130 -            <mn>0</mn>
 231.131 -          </mtd>
 231.132 -          <mtd>
 231.133 -            <mn>0</mn>
 231.134 -          </mtd>
 231.135 -          <mtd>
 231.136 -            <mn>1</mn>
 231.137 -          </mtd>
 231.138 -        </mtr>
 231.139 -      </mtable>
 231.140 -    </mfenced>
 231.141 -    </mn>
 231.142 -    <mo>.</mo>
 231.143 -    <mfenced>
 231.144 -      <mtable>
 231.145 -        <mtr>
 231.146 -          <mtd>
 231.147 -            <mi>R</mi>
 231.148 -          </mtd>
 231.149 -        </mtr>
 231.150 -        <mtr>
 231.151 -          <mtd>
 231.152 -            <mi>G</mi>
 231.153 -          </mtd>
 231.154 -        </mtr>
 231.155 -        <mtr>
 231.156 -          <mtd>
 231.157 -            <mi>B</mi>
 231.158 -          </mtd>
 231.159 -        </mtr>
 231.160 -        <mtr>
 231.161 -          <mtd>
 231.162 -            <mi>A</mi>
 231.163 -          </mtd>
 231.164 -        </mtr>
 231.165 -        <mtr>
 231.166 -          <mtd>
 231.167 -            <mn>1</mn>
 231.168 -          </mtd>
 231.169 -        </mtr>
 231.170 -      </mtable>
 231.171 -    </mfenced>
 231.172 -  </mrow>
 231.173 -</math>
 231.174 \ No newline at end of file
   232.1 --- a/master/mathml/feComponentTransfer00.mml	Thu Feb 24 10:19:12 2011 +0000
   232.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   232.3 @@ -1,85 +0,0 @@
   232.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   232.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   232.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   232.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   232.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   232.9 -  <mrow>
  232.10 -    <mtable>
  232.11 -      <mtr>
  232.12 -        <mtd>
  232.13 -          <msup>
  232.14 -            <mi>R</mi>
  232.15 -            <mo>'</mo>
  232.16 -          </msup>
  232.17 -        </mtd>
  232.18 -      </mtr>
  232.19 -      <mtr>
  232.20 -        <mtd>
  232.21 -          <msup>
  232.22 -            <mi>G</mi>
  232.23 -            <mo>'</mo>
  232.24 -          </msup>
  232.25 -        </mtd>
  232.26 -      </mtr>
  232.27 -      <mtr>
  232.28 -        <mtd>
  232.29 -          <msup>
  232.30 -            <mi>B</mi>
  232.31 -            <mo>'</mo>
  232.32 -          </msup>
  232.33 -        </mtd>
  232.34 -      </mtr>
  232.35 -      <mtr>
  232.36 -        <mtd>
  232.37 -          <msup>
  232.38 -            <mi>A</mi>
  232.39 -            <mo>'</mo>
  232.40 -          </msup>
  232.41 -        </mtd>
  232.42 -      </mtr>
  232.43 -    </mtable>
  232.44 -    <mo>=</mo>
  232.45 -    <mtable>
  232.46 -      <mtr>
  232.47 -        <mtd>
  232.48 -          <mi>FeFuncR</mi>
  232.49 -          <mrow>
  232.50 -            <mo>(</mo>
  232.51 -            <mi>R</mi>
  232.52 -            <mo>)</mo>
  232.53 -          </mrow>
  232.54 -        </mtd>
  232.55 -      </mtr>
  232.56 -      <mtr>
  232.57 -        <mtd>
  232.58 -          <mi>FeFuncG</mi>
  232.59 -          <mrow>
  232.60 -            <mo>(</mo>
  232.61 -            <mi>G</mi>
  232.62 -            <mo>)</mo>
  232.63 -          </mrow>
  232.64 -        </mtd>
  232.65 -      </mtr>
  232.66 -      <mtr>
  232.67 -        <mtd>
  232.68 -          <mi>FeFuncB</mi>
  232.69 -          <mrow>
  232.70 -            <mo>(</mo>
  232.71 -            <mi>B</mi>
  232.72 -            <mo>)</mo>
  232.73 -          </mrow>
  232.74 -        </mtd>
  232.75 -      </mtr>
  232.76 -      <mtr>
  232.77 -        <mtd>
  232.78 -          <mi>FeFuncA</mi>
  232.79 -          <mrow>
  232.80 -            <mo>(</mo>
  232.81 -            <mi>A</mi>
  232.82 -            <mo>)</mo>
  232.83 -          </mrow>
  232.84 -        </mtd>
  232.85 -      </mtr>
  232.86 -    </mtable>
  232.87 -  </mrow>
  232.88 -</math>
  232.89 \ No newline at end of file
   233.1 --- a/master/mathml/feComponentTransfer01.mml	Thu Feb 24 10:19:12 2011 +0000
   233.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   233.3 @@ -1,14 +0,0 @@
   233.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   233.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   233.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   233.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   233.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   233.9 -  <mrow>
  233.10 -    <msup>
  233.11 -      <mi>C</mi>
  233.12 -      <mo>'</mo>
  233.13 -    </msup>
  233.14 -    <mo>=</mo>
  233.15 -    <mi>C</mi>
  233.16 -  </mrow>
  233.17 -</math>
  233.18 \ No newline at end of file
   234.1 --- a/master/mathml/feComponentTransfer02.mml	Thu Feb 24 10:19:12 2011 +0000
   234.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   234.3 @@ -1,29 +0,0 @@
   234.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   234.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   234.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   234.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   234.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   234.9 -  <mrow>
  234.10 -    <mfrac>
  234.11 -      <mi>k</mi>
  234.12 -      <mi>N</mi>
  234.13 -    </mfrac>
  234.14 -    <mo>&le;</mo>
  234.15 -    <mrow>
  234.16 -      <mi>C</mi>
  234.17 -      <mo>&lt;</mo>
  234.18 -      <mfrac>
  234.19 -        <mrow>
  234.20 -          <mo>(</mo>
  234.21 -          <mrow>
  234.22 -            <mi>k</mi>
  234.23 -            <mo>+</mo>
  234.24 -            <mn>1</mn>
  234.25 -          </mrow>
  234.26 -          <mo>)</mo>
  234.27 -        </mrow>
  234.28 -        <mi>N</mi>
  234.29 -      </mfrac>
  234.30 -    </mrow>
  234.31 -  </mrow>
  234.32 -</math>
  234.33 \ No newline at end of file
   235.1 --- a/master/mathml/feComponentTransfer03.mml	Thu Feb 24 10:19:12 2011 +0000
   235.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   235.3 @@ -1,56 +0,0 @@
   235.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   235.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   235.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   235.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   235.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   235.9 -  <mrow>
  235.10 -    <msup>
  235.11 -      <mi>C</mi>
  235.12 -      <mo>'</mo>
  235.13 -    </msup>
  235.14 -    <mo>=</mo>
  235.15 -    <mrow>
  235.16 -      <msub>
  235.17 -        <mi>v</mi>
  235.18 -        <mi>k</mi>
  235.19 -      </msub>
  235.20 -      <mo>+</mo>
  235.21 -      <mrow>
  235.22 -        <mrow>
  235.23 -          <mo>(</mo>
  235.24 -          <mrow>
  235.25 -            <mi>C</mi>
  235.26 -            <mo>&minus;</mo>
  235.27 -            <mfrac>
  235.28 -              <mi>k</mi>
  235.29 -              <mi>N</mi>
  235.30 -            </mfrac>
  235.31 -          </mrow>
  235.32 -          <mo>)</mo>
  235.33 -        </mrow>
  235.34 -        <mo>×</mo>
  235.35 -        <mi>N</mi>
  235.36 -        <mo>×</mo>
  235.37 -        <mrow>
  235.38 -          <mo>(</mo>
  235.39 -          <mrow>
  235.40 -            <msub>
  235.41 -              <mi>v</mi>
  235.42 -              <mrow>
  235.43 -                <mi>k</mi>
  235.44 -                <mo>+</mo>
  235.45 -                <mn>1</mn>
  235.46 -              </mrow>
  235.47 -            </msub>
  235.48 -            <mo>&minus;</mo>
  235.49 -            <msub>
  235.50 -              <mi>v</mi>
  235.51 -              <mi>k</mi>
  235.52 -            </msub>
  235.53 -          </mrow>
  235.54 -          <mo>)</mo>
  235.55 -        </mrow>
  235.56 -      </mrow>
  235.57 -    </mrow>
  235.58 -  </mrow>
  235.59 -</math>
  235.60 \ No newline at end of file
   236.1 --- a/master/mathml/feComponentTransfer04.mml	Thu Feb 24 10:19:12 2011 +0000
   236.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   236.3 @@ -1,17 +0,0 @@
   236.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   236.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   236.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   236.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   236.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   236.9 -  <mrow>
  236.10 -    <msup>
  236.11 -      <mi>C</mi>
  236.12 -      <mo>'</mo>
  236.13 -    </msup>
  236.14 -    <mo>=</mo>
  236.15 -    <msub>
  236.16 -      <mi>v</mi>
  236.17 -      <mi>k</mi>
  236.18 -    </msub>
  236.19 -  </mrow>
  236.20 -</math>
  236.21 \ No newline at end of file
   237.1 --- a/master/mathml/feComponentTransfer05.mml	Thu Feb 24 10:19:12 2011 +0000
   237.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   237.3 @@ -1,22 +0,0 @@
   237.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   237.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   237.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   237.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   237.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   237.9 -  <mrow>
  237.10 -    <msup>
  237.11 -      <mi>C</mi>
  237.12 -      <mo>'</mo>
  237.13 -    </msup>
  237.14 -    <mo>=</mo>
  237.15 -    <mrow>
  237.16 -      <mrow>
  237.17 -        <mi>slope</mi>
  237.18 -        <mo>×</mo>
  237.19 -        <mi>C</mi>
  237.20 -      </mrow>
  237.21 -      <mo>+</mo>
  237.22 -      <mi>intercept</mi>
  237.23 -    </mrow>
  237.24 -  </mrow>
  237.25 -</math>
  237.26 \ No newline at end of file
   238.1 --- a/master/mathml/feComponentTransfer06.mml	Thu Feb 24 10:19:12 2011 +0000
   238.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   238.3 @@ -1,31 +0,0 @@
   238.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   238.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   238.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   238.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   238.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   238.9 -  <mrow>
  238.10 -    <msup>
  238.11 -      <mi>C</mi>
  238.12 -      <mo>'</mo>
  238.13 -    </msup>
  238.14 -    <mo>=</mo>
  238.15 -    <mrow>
  238.16 -      <mrow>
  238.17 -        <mi>amplitude</mi>
  238.18 -        <mo>×</mo>
  238.19 -        <mi>pow</mi>
  238.20 -        <mfenced>
  238.21 -          <mrow>
  238.22 -            <mi>C</mi>
  238.23 -          </mrow>
  238.24 -          <mrow>
  238.25 -            <mi>exp</mi>
  238.26 -            <mi>onent</mi>
  238.27 -          </mrow>
  238.28 -        </mfenced>
  238.29 -      </mrow>
  238.30 -      <mo>+</mo>
  238.31 -      <mi>offset</mi>
  238.32 -    </mrow>
  238.33 -  </mrow>
  238.34 -</math>
   239.1 --- a/master/mathml/feComposite00.mml	Thu Feb 24 10:19:12 2011 +0000
   239.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   239.3 @@ -1,55 +0,0 @@
   239.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   239.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   239.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   239.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   239.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   239.9 -  <mrow>
  239.10 -    <mi>result</mi>
  239.11 -    <mo>=</mo>
  239.12 -    <mrow>
  239.13 -      <mrow>
  239.14 -        <mi>k</mi>
  239.15 -        <mn>1</mn>
  239.16 -        <mo>×</mo>
  239.17 -        <mrow>
  239.18 -          <mi>i</mi>
  239.19 -          <mn>1</mn>
  239.20 -        </mrow>
  239.21 -        <mo>×</mo>
  239.22 -        <mrow>
  239.23 -          <mi>i</mi>
  239.24 -          <mn>2</mn>
  239.25 -        </mrow>
  239.26 -      </mrow>
  239.27 -      <mo>+</mo>
  239.28 -      <mrow>
  239.29 -        <mrow>
  239.30 -          <mi>k</mi>
  239.31 -          <mn>2</mn>
  239.32 -        </mrow>
  239.33 -        <mo>×</mo>
  239.34 -        <mrow>
  239.35 -          <mi>i</mi>
  239.36 -          <mn>1</mn>
  239.37 -        </mrow>
  239.38 -      </mrow>
  239.39 -      <mo>+</mo>
  239.40 -      <mrow>
  239.41 -        <mrow>
  239.42 -          <mi>k</mi>
  239.43 -          <mn>3</mn>
  239.44 -        </mrow>
  239.45 -        <mo>×</mo>
  239.46 -        <mrow>
  239.47 -          <mi>i</mi>
  239.48 -          <mn>2</mn>
  239.49 -        </mrow>
  239.50 -      </mrow>
  239.51 -      <mo>+</mo>
  239.52 -      <mrow>
  239.53 -        <mi>k</mi>
  239.54 -        <mn>4</mn>
  239.55 -      </mrow>
  239.56 -    </mrow>
  239.57 -  </mrow>
  239.58 -</math>
  239.59 \ No newline at end of file
   240.1 --- a/master/mathml/feConvolveMatrix00.mml	Thu Feb 24 10:19:12 2011 +0000
   240.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   240.3 @@ -1,80 +0,0 @@
   240.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   240.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   240.6 -       "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   240.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   240.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   240.9 -  <mrow>
  240.10 -    <msub>
  240.11 -      <mi>result</mi>
  240.12 -      <mrow>
  240.13 -        <mi>X</mi>
  240.14 -        <mo>,</mo>
  240.15 -        <mi>Y</mi>
  240.16 -      </mrow>
  240.17 -    </msub>
  240.18 -    <mo>=</mo>
  240.19 -    <mrow>
  240.20 -      <mfrac>
  240.21 -        <mrow>
  240.22 -          <munderover>
  240.23 -            <mo>&sum;</mo>
  240.24 -            <mrow>
  240.25 -              <mi>I</mi>
  240.26 -              <mo>=</mo>
  240.27 -              <mn>0</mn>
  240.28 -            </mrow>
  240.29 -            <mrow>
  240.30 -              <mi>orderY</mi>
  240.31 -              <mo>&minus;</mo>
  240.32 -              <mn>1</mn>
  240.33 -            </mrow>
  240.34 -          </munderover>
  240.35 -          <mrow>
  240.36 -            <munderover>
  240.37 -              <mo>&sum;</mo>
  240.38 -              <mrow>
  240.39 -                <mi>J</mi>
  240.40 -                <mo>=</mo>
  240.41 -                <mn>0</mn>
  240.42 -              </mrow>
  240.43 -              <mrow>
  240.44 -                <mi>orderX</mi>
  240.45 -                <mo>&minus;</mo>
  240.46 -                <mn>1</mn>
  240.47 -              </mrow>
  240.48 -            </munderover>
  240.49 -            <mrow>
  240.50 -              <msub>
  240.51 -                <mi>source</mi>
  240.52 -                <mfenced open="t">
  240.53 -                  <mrow>
  240.54 -                    <mi></mi>
  240.55 -                  </mrow>
  240.56 -                </mfenced>
  240.57 -              </msub>
  240.58 -              <mo>×</mo>
  240.59 -              <msub>
  240.60 -                <mi>kernelMatrix</mi>
  240.61 -                <mfenced open="1">
  240.62 -                  <mrow>
  240.63 -                    <mi>orderY</mi>
  240.64 -                    <mo>&minus;</mo>
  240.65 -                    <mi>I</mi>
  240.66 -                    <mo>&minus;</mo>
  240.67 -                    <mn>1</mn>
  240.68 -                  </mrow>
  240.69 -                </mfenced>
  240.70 -              </msub>
  240.71 -            </mrow>
  240.72 -          </mrow>
  240.73 -        </mrow>
  240.74 -        <mrow>
  240.75 -          <mi>div</mi>
  240.76 -          <mi>isor</mi>
  240.77 -        </mrow>
  240.78 -      </mfrac>
  240.79 -      <mo>+</mo>
  240.80 -      <mi>bias</mi>
  240.81 -    </mrow>
  240.82 -  </mrow>
  240.83 -</math>
  240.84 \ No newline at end of file
   241.1 --- a/master/mathml/feConvolveMatrix01.mml	Thu Feb 24 10:19:12 2011 +0000
   241.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   241.3 @@ -1,95 +0,0 @@
   241.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   241.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   241.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   241.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   241.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   241.9 -  <mfenced>
  241.10 -    <mtable>
  241.11 -      <mtr>
  241.12 -        <mtd>
  241.13 -          <mn>0</mn>
  241.14 -        </mtd>
  241.15 -        <mtd>
  241.16 -          <mn>20</mn>
  241.17 -        </mtd>
  241.18 -        <mtd>
  241.19 -          <mn>40</mn>
  241.20 -        </mtd>
  241.21 -        <mtd>
  241.22 -          <mn>235</mn>
  241.23 -        </mtd>
  241.24 -        <mtd>
  241.25 -          <mn>235</mn>
  241.26 -        </mtd>
  241.27 -      </mtr>
  241.28 -      <mtr>
  241.29 -        <mtd>
  241.30 -          <mn>100</mn>
  241.31 -        </mtd>
  241.32 -        <mtd>
  241.33 -          <mn>120</mn>
  241.34 -        </mtd>
  241.35 -        <mtd>
  241.36 -          <mn>140</mn>
  241.37 -        </mtd>
  241.38 -        <mtd>
  241.39 -          <mn>235</mn>
  241.40 -        </mtd>
  241.41 -        <mtd>
  241.42 -          <mn>235</mn>
  241.43 -        </mtd>
  241.44 -      </mtr>
  241.45 -      <mtr>
  241.46 -        <mtd>
  241.47 -          <mn>200</mn>
  241.48 -        </mtd>
  241.49 -        <mtd>
  241.50 -          <mn>220</mn>
  241.51 -        </mtd>
  241.52 -        <mtd>
  241.53 -          <mn>240</mn>
  241.54 -        </mtd>
  241.55 -        <mtd>
  241.56 -          <mn>235</mn>
  241.57 -        </mtd>
  241.58 -        <mtd>
  241.59 -          <mn>235</mn>
  241.60 -        </mtd>
  241.61 -      </mtr>
  241.62 -      <mtr>
  241.63 -        <mtd>
  241.64 -          <mn>255</mn>
  241.65 -        </mtd>
  241.66 -        <mtd>
  241.67 -          <mn>255</mn>
  241.68 -        </mtd>
  241.69 -        <mtd>
  241.70 -          <mn>255</mn>
  241.71 -        </mtd>
  241.72 -        <mtd>
  241.73 -          <mn>255</mn>
  241.74 -        </mtd>
  241.75 -        <mtd>
  241.76 -          <mn>255</mn>
  241.77 -        </mtd>
  241.78 -      </mtr>
  241.79 -      <mtr>
  241.80 -        <mtd>
  241.81 -          <mn>255</mn>
  241.82 -        </mtd>
  241.83 -        <mtd>
  241.84 -          <mn>255</mn>
  241.85 -        </mtd>
  241.86 -        <mtd>
  241.87 -          <mn>255</mn>
  241.88 -        </mtd>
  241.89 -        <mtd>
  241.90 -          <mn>255</mn>
  241.91 -        </mtd>
  241.92 -        <mtd>
  241.93 -          <mn>255</mn>
  241.94 -        </mtd>
  241.95 -      </mtr>
  241.96 -    </mtable>
  241.97 -  </mfenced>
  241.98 -</math>
  241.99 \ No newline at end of file
   242.1 --- a/master/mathml/feConvolveMatrix02.mml	Thu Feb 24 10:19:12 2011 +0000
   242.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   242.3 @@ -1,43 +0,0 @@
   242.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   242.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   242.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   242.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   242.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   242.9 -  <mfenced>
  242.10 -    <mtable>
  242.11 -      <mtr>
  242.12 -        <mtd>
  242.13 -          <mn>1</mn>
  242.14 -        </mtd>
  242.15 -        <mtd>
  242.16 -          <mn>2</mn>
  242.17 -        </mtd>
  242.18 -        <mtd>
  242.19 -          <mn>3</mn>
  242.20 -        </mtd>
  242.21 -      </mtr>
  242.22 -      <mtr>
  242.23 -        <mtd>
  242.24 -          <mn>4</mn>
  242.25 -        </mtd>
  242.26 -        <mtd>
  242.27 -          <mn>5</mn>
  242.28 -        </mtd>
  242.29 -        <mtd>
  242.30 -          <mn>6</mn>
  242.31 -        </mtd>
  242.32 -      </mtr>
  242.33 -      <mtr>
  242.34 -        <mtd>
  242.35 -          <mn>7</mn>
  242.36 -        </mtd>
  242.37 -        <mtd>
  242.38 -          <mn>8</mn>
  242.39 -        </mtd>
  242.40 -        <mtd>
  242.41 -          <mn>9</mn>
  242.42 -        </mtd>
  242.43 -      </mtr>
  242.44 -    </mtable>
  242.45 -  </mfenced>
  242.46 -</math>
  242.47 \ No newline at end of file
   243.1 --- a/master/mathml/feConvolveMatrix03.mml	Thu Feb 24 10:19:12 2011 +0000
   243.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   243.3 @@ -1,93 +0,0 @@
   243.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   243.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   243.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   243.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   243.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   243.9 -  <mrow>
  243.10 -    <msub>
  243.11 -      <mi>resultChannel</mi>
  243.12 -      <mn>2,2</mn>
  243.13 -    </msub>
  243.14 -    <mo>=</mo>
  243.15 -    <mfrac>
  243.16 -      <mrow>
  243.17 -        <mo>(</mo>
  243.18 -        <mrow>
  243.19 -          <mrow>
  243.20 -            <mn>9</mn>
  243.21 -            <mo>×</mo>
  243.22 -            <mn>0</mn>
  243.23 -          </mrow>
  243.24 -          <mo>+</mo>
  243.25 -          <mrow>
  243.26 -            <mn>8</mn>
  243.27 -            <mo>×</mo>
  243.28 -            <mn>20</mn>
  243.29 -          </mrow>
  243.30 -          <mo>+</mo>
  243.31 -          <mrow>
  243.32 -            <mn>7</mn>
  243.33 -            <mo>×</mo>
  243.34 -            <mn>40</mn>
  243.35 -          </mrow>
  243.36 -          <mo>+</mo>
  243.37 -          <mrow>
  243.38 -            <mn>6</mn>
  243.39 -            <mo>×</mo>
  243.40 -            <mn>100</mn>
  243.41 -          </mrow>
  243.42 -          <mo>+</mo>
  243.43 -          <mrow>
  243.44 -            <mn>5</mn>
  243.45 -            <mo>×</mo>
  243.46 -            <mn>120</mn>
  243.47 -          </mrow>
  243.48 -          <mo>+</mo>
  243.49 -          <mrow>
  243.50 -            <mn>4</mn>
  243.51 -            <mo>×</mo>
  243.52 -            <mn>140</mn>
  243.53 -          </mrow>
  243.54 -          <mo>+</mo>
  243.55 -          <mrow>
  243.56 -            <mn>3</mn>
  243.57 -            <mo>×</mo>
  243.58 -            <mn>200</mn>
  243.59 -          </mrow>
  243.60 -          <mo>+</mo>
  243.61 -          <mrow>
  243.62 -            <mn>2</mn>
  243.63 -            <mo>×</mo>
  243.64 -            <mn>220</mn>
  243.65 -          </mrow>
  243.66 -          <mo>+</mo>
  243.67 -          <mrow>
  243.68 -            <mn>1</mn>
  243.69 -            <mo>×</mo>
  243.70 -            <mn>240</mn>
  243.71 -          </mrow>
  243.72 -        </mrow>
  243.73 -        <mo>)</mo>
  243.74 -      </mrow>
  243.75 -      <mrow>
  243.76 -        <mn>9</mn>
  243.77 -        <mo>+</mo>
  243.78 -        <mn>8</mn>
  243.79 -        <mo>+</mo>
  243.80 -        <mn>7</mn>
  243.81 -        <mo>+</mo>
  243.82 -        <mn>6</mn>
  243.83 -        <mo>+</mo>
  243.84 -        <mn>5</mn>
  243.85 -        <mo>+</mo>
  243.86 -        <mn>4</mn>
  243.87 -        <mo>+</mo>
  243.88 -        <mn>3</mn>
  243.89 -        <mo>+</mo>
  243.90 -        <mn>2</mn>
  243.91 -        <mo>+</mo>
  243.92 -        <mn>1</mn>
  243.93 -      </mrow>
  243.94 -    </mfrac>
  243.95 -  </mrow>
  243.96 -</math>
  243.97 \ No newline at end of file
   244.1 --- a/master/mathml/feConvolveMatrix04.mml	Thu Feb 24 10:19:12 2011 +0000
   244.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   244.3 @@ -1,119 +0,0 @@
   244.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   244.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   244.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   244.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   244.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   244.9 -  <mtable>
  244.10 -    <mtr>
  244.11 -      <mtd>
  244.12 -        <mn>11</mn>
  244.13 -      </mtd>
  244.14 -      <mtd>
  244.15 -        <mn>12</mn>
  244.16 -      </mtd>
  244.17 -      <mtd>
  244.18 -        <mo>.</mo>
  244.19 -        <mo>.</mo>
  244.20 -        <mo>.</mo>
  244.21 -      </mtd>
  244.22 -      <mtd>
  244.23 -        <mn>1</mn>
  244.24 -        <mi>m</mi>
  244.25 -      </mtd>
  244.26 -      <mtd>
  244.27 -        <mn>1</mn>
  244.28 -        <mi>M</mi>
  244.29 -      </mtd>
  244.30 -    </mtr>
  244.31 -    <mtr>
  244.32 -      <mtd>
  244.33 -        <mn>21</mn>
  244.34 -      </mtd>
  244.35 -      <mtd>
  244.36 -        <mn>22</mn>
  244.37 -      </mtd>
  244.38 -      <mtd>
  244.39 -        <mo>.</mo>
  244.40 -        <mo>.</mo>
  244.41 -        <mo>.</mo>
  244.42 -      </mtd>
  244.43 -      <mtd>
  244.44 -        <mn>2</mn>
  244.45 -        <mi>m</mi>
  244.46 -      </mtd>
  244.47 -      <mtd>
  244.48 -        <mn>2</mn>
  244.49 -        <mi>M</mi>
  244.50 -      </mtd>
  244.51 -    </mtr>
  244.52 -    <mtr>
  244.53 -      <mtd>
  244.54 -        <mo>.</mo>
  244.55 -        <mo>.</mo>
  244.56 -        <mo>.</mo>
  244.57 -      </mtd>
  244.58 -      <mtd>
  244.59 -        <mo>.</mo>
  244.60 -        <mo>.</mo>
  244.61 -        <mo>.</mo>
  244.62 -      </mtd>
  244.63 -      <mtd>
  244.64 -        <mo>.</mo>
  244.65 -        <mo>.</mo>
  244.66 -        <mo>.</mo>
  244.67 -      </mtd>
  244.68 -      <mtd>
  244.69 -        <mo>.</mo>
  244.70 -        <mo>.</mo>
  244.71 -        <mo>.</mo>
  244.72 -      </mtd>
  244.73 -      <mtd>
  244.74 -        <mo>.</mo>
  244.75 -        <mo>.</mo>
  244.76 -        <mo>.</mo>
  244.77 -      </mtd>
  244.78 -    </mtr>
  244.79 -    <mtr>
  244.80 -      <mtd>
  244.81 -        <mi>n</mi>
  244.82 -        <mn>1</mn>
  244.83 -      </mtd>
  244.84 -      <mtd>
  244.85 -        <mi>n</mi>
  244.86 -        <mn>2</mn>
  244.87 -      </mtd>
  244.88 -      <mtd>
  244.89 -        <mo>.</mo>
  244.90 -        <mo>.</mo>
  244.91 -        <mo>.</mo>
  244.92 -      </mtd>
  244.93 -      <mtd>
  244.94 -        <mi>nm</mi>
  244.95 -      </mtd>
  244.96 -      <mtd>
  244.97 -        <mi>nM</mi>
  244.98 -      </mtd>
  244.99 -    </mtr>
 244.100 -    <mtr>
 244.101 -      <mtd>
 244.102 -        <mi>N</mi>
 244.103 -        <mn>1</mn>
 244.104 -      </mtd>
 244.105 -      <mtd>
 244.106 -        <mi>N</mi>
 244.107 -        <mn>2</mn>
 244.108 -      </mtd>
 244.109 -      <mtd>
 244.110 -        <mo>.</mo>
 244.111 -        <mo>.</mo>
 244.112 -        <mo>.</mo>
 244.113 -      </mtd>
 244.114 -      <mtd>
 244.115 -        <mi>Nm</mi>
 244.116 -      </mtd>
 244.117 -      <mtd>
 244.118 -        <mi>NM</mi>
 244.119 -      </mtd>
 244.120 -    </mtr>
 244.121 -  </mtable>
 244.122 -</math>
 244.123 \ No newline at end of file
   245.1 --- a/master/mathml/feConvolveMatrix05.mml	Thu Feb 24 10:19:12 2011 +0000
   245.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   245.3 @@ -1,335 +0,0 @@
   245.4 -<?xml version="1.0" encoding="iso-8859-1"?>
   245.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
   245.6 -      "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd">
   245.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ -->
   245.8 -<math xmlns="http://www.w3.org/1998/Math/MathML">
   245.9 -  <mtable>
  245.10 -    <mtr>
  245.11 -      <mtd>
  245.12 -        <mn>11</mn>
  245.13 -      </mtd>
  245.14 -      <mtd>
  245.15 -        <mn>11</mn>
  245.16 -      </mtd>
  245.17 -      <mtd>
  245.18 -        <mn>11</mn>
  245.19 -      </mtd>
  245.20 -      <mtd>
  245.21 -        <mn>12</mn>
  245.22 -      </mtd>
  245.23 -      <mtd>
  245.24 -        <mo>.</mo>
  245.25 -        <mo>.</mo>
  245.26 -        <mo>.</mo>
  245.27 -      </mtd>
  245.28 -      <mtd>
  245.29 -        <mn>1</mn>
  245.30 -        <mi>m</mi>
  245.31 -      </mtd>
  245.32 -      <mtd>
  245.33 -        <mn>1</mn>
  245.34 -        <mi>M</mi>
  245.35 -      </mtd>
  245.36 -      <mtd>
  245.37 -        <mn>1</mn>
  245.38 -        <mi>M</mi>
  245.39 -      </mtd>
  245.40 -      <mtd>
  245.41 -        <mn>1</mn>
  245.42 -        <mi>M</mi>
  245.43 -      </mtd>
  245.44 -    </mtr>
  245.45 -    <mtr>
  245.46 -      <mtd>
  245.47 -        <mn>11</mn>
  245.48 -      </mtd>
  245.49 -      <mtd>
  245.50 -        <mn>11</mn>
  245.51 -      </mtd>
  245.52 -      <mtd>
  245.53 -        <mn>11</mn>
  245.54 -      </mtd>
  245.55 -      <mtd>
  245.56 -        <mn>12</mn>
  245.57 -      </mtd>
  245.58 -      <mtd>
  245.59 -        <mo>.</mo>
  245.60 -        <mo>.</mo>
  245.61 -        <mo>.</mo>
  245.62 -      </mtd>
  245.63 -      <mtd>
  245.64 -        <mn>1</mn>
  245.65 -        <mi>m</mi>
  245.66 -      </mtd>
  245.67 -      <mtd>
  245.68 -        <mn>1</mn>
  245.69 -        <mi>M</mi>
  245.70 -      </mtd>
  245.71 -      <mtd>
  245.72 -        <mn>1</mn>
  245.73 -        <mi>M</mi>
  245.74 -      </mtd>
  245.75 -      <mtd>
  245.76 -        <mn>1</mn>
  245.77 -        <mi>M</mi>
  245.78 -      </mtd>
  245.79 -    </mtr>
  245.80 -    <mtr>
  245.81 -      <mtd>
  245.82 -        <mn>11</mn>
  245.83 -      </mtd>
  245.84 -      <mtd>
  245.85 -        <mn>11</mn>
  245.86 -      </mtd>
  245.87 -      <mtd>
  245.88 -        <mn>11</mn>
  245.89 -      </mtd>
  245.90 -      <mtd>
  245.91 -        <mn>12</mn>
  245.92 -      </mtd>
  245.93 -      <mtd>
  245.94 -        <mo>.</mo>
  245.95 -        <mo>.</mo>
  245.96 -        <mo>.</mo>
  245.97 -      </mtd>
  245.98 -      <mtd>
  245.99 -        <mn>1</mn>
 245.100 -        <mi>m</mi>
 245.101 -      </mtd>
 245.102 -      <mtd>
 245.103 -        <mn>1</mn>
 245.104 -        <mi>M</mi>
 245.105 -      </mtd>
 245.106 -      <mtd>
 245.107 -        <mn>1</mn>
 245.108 -        <mi>M</mi>
 245.109 -      </mtd>
 245.110 -      <mtd>
 245.111 -        <mn>1</mn>
 245.112 -        <mi>M</mi>
 245.113 -      </mtd>
 245.114 -    </mtr>
 245.115 -    <mtr>
 245.116 -      <mtd>
 245.117 -        <mn>21</mn>
 245.118 -      </mtd>
 245.119 -      <mtd>
 245.120 -        <mn>21</mn>
 245.121 -      </mtd>
 245.122 -      <mtd>
 245.123 -        <mn>21</mn>
 245.124 -      </mtd>
 245.125 -      <mtd>
 245.126 -        <mn>22</mn>
 245.127 -      </mtd>
 245.128 -      <mtd>
 245.129 -        <mo>.</mo>
 245.130 -        <mo>.</mo>
 245.131 -        <mo>.</mo>
 245.132 -      </mtd>
 245.133 -      <mtd>
 245.134 -        <mn>2</mn>
 245.135 -        <mi>m</mi>
 245.136 -      </mtd>
 245.137 -      <mtd>
 245.138 -        <mn>2</mn>
 245.139 -        <mi>M</mi>
 245.140 -      </mtd>
 245.141 -      <mtd>
 245.142 -        <mn>2</mn>
 245.143 -        <mi>M</mi>
 245.144 -      </mtd>
 245.145 -      <mtd>
 245.146 -        <mn>2</mn>
 245.147 -        <mi>M</mi>
 245.148 -      </mtd>
 245.149 -    </mtr>
 245.150 -    <mtr>
 245.151 -      <mtd>
 245.152 -        <mo>.</mo>
 245.153 -        <mo>.</mo>
 245.154 -        <mo>.</mo>
 245.155 -      </mtd>
 245.156 -      <mtd>
 245.157 -        <mo>.</mo>
 245.158 -        <mo>.</mo>
 245.159 -        <mo>.</mo>
 245.160 -      </mtd>
 245.161 -      <mtd>
 245.162 -        <mo>.</mo>
 245.163 -        <mo>.</mo>
 245.164 -        <mo>.</mo>
 245.165 -      </mtd>
 245.166 -      <mtd>
 245.167 -        <mo>.</mo>
 245.168 -        <mo>.</mo>
 245.169 -        <mo>.</mo>
 245.170 -      </mtd>
 245.171 -      <mtd>
 245.172 -        <mo>.</mo>
 245.173 -        <mo>.</mo>
 245.174 -        <mo>.</mo>
 245.175 -      </mtd>
 245.176 -      <mtd>
 245.177 -        <mo>.</mo>
 245.178 -        <mo>.</mo>
 245.179 -        <mo>.</mo>
 245.180 -      </mtd>
 245.181 -      <mtd>
 245.182 -        <mo>.</mo>
 245.183 -        <mo>.</mo>
 245.184 -        <mo>.</mo>
 245.185 -      </mtd>
 245.186 -      <mtd>
 245.187 -        <mo>.</mo>
 245.188 -        <mo>.</mo>
 245.189 -        <mo>.</mo>
 245.190 -      </mtd>
 245.191 -      <mtd>
 245.192 -        <mo>.</mo>
 245.193 -        <mo>.</mo>
 245.194 -        <mo>.</mo>
 245.195 -      </mtd>
 245.196 -    </mtr>
 245.197 -    <mtr>
 245.198 -      <mtd>
 245.199 -        <mi>n</mi>
 245.200 -        <mn>1</mn>
 245.201 -      </mtd>
 245.202 -      <mtd>
 245.203 -        <mi>n</mi>
 245.204 -        <mn>1</mn>
 245.205 -      </mtd>
 245.206 -      <mtd>
 245.207 -        <mi>n</mi>
 245.208 -        <mn>1</mn>
 245.209 -      </mtd>
 245.210 -      <mtd>
 245.211 -        <mi>n</mi>
 245.212 -        <mn>2</mn>
 245.213 -      </mtd>
 245.214 -      <mtd>
 245.215 -        <mo>.</mo>
 245.216 -        <mo>.</mo>
 245.217 -        <mo>.</mo>
 245.218 -      </mtd>
 245.219 -      <mtd>
 245.220 -        <mi>nm</mi>
 245.221 -      </mtd>
 245.222 -      <mtd>
 245.223 -        <mi>nM</mi>
 245.224 -      </mtd>
 245.225 -      <mtd>
 245.226 -        <mi>nM</mi>
 245.227 -      </mtd>
 245.228 -      <mtd>
 245.229 -        <mi>nM</mi>
 245.230 -      </mtd>
 245.231 -    </mtr>
 245.232 -    <mtr>
 245.233 -      <mtd>
 245.234 -        <mi>N</mi>
 245.235 -        <mn>1</mn>
 245.236 -      </mtd>
 245.237 -      <mtd>
 245.238 -        <mi>N</mi>
 245.239 -        <mn>1</mn>
 245.240 -      </mtd>
 245.241 -      <mtd>
 245.242 -        <mi>N</mi>
 245.243 -        <mn>1</mn>
 245.244 -      </mtd>
 245.245 -      <mtd>
 245.246 -        <mi>N</mi>
 245.247 -        <mn>2</mn>
 245.248 -      </mtd>
 245.249 -      <mtd>
 245.250 -        <mo>.</mo>
 245.251 -        <mo>.</mo>
 245.252 -        <mo>.</mo>
 245.253 -      </mtd>
 245.254 -      <mtd>
 245.255 -        <mi>Nm</mi>
 245.256 -      </mtd>
 245.257 -      <mtd>
 245.258 -        <mi>NM</mi>
 245.259 -      </mtd>
 245.260 -      <mtd>
 245.261 -        <mi>NM</mi>
 245.262 -      </mtd>
 245.263 -      <mtd>
 245.264 -        <mi>NM</mi>
 245.265 -      </mtd>
 245.266 -    </mtr>
 245.267 -    <mtr>
 245.268 -      <mtd>
 245.269 -        <mi>N</mi>
 245.270 -        <mn>1</mn>
 245.271 -      </mtd>
 245.272 -      <mtd>
 245.273 -        <mi>N</mi>
 245.274 -        <mn>1</mn>
 245.275 -      </mtd>
 245.276 -      <mtd>
 245.277 -        <mi>N</mi>
 245.278 -        <mn>1</mn>
 245.279 -      </mtd>
 245.280 -      <mtd>
 245.281 -        <mi>N</mi>
 245.282 -        <mn>2</mn>
 245.283 -      </mtd>
 245.284 -      <mtd>
 245.285 -        <mo>.</mo>
 245.286 -        <mo>.</mo>
 245.287 -        <mo>.</mo>
 245.288 -      </mtd>
 245.289 -      <mtd>
 245.290 -        <mi>Nm</mi>
 245.291 -      </mtd>
 245.292 -      <mtd>
 245.293 -        <mi>NM</mi>
 245.294 -      </mtd>
 245.295 -      <mtd>
 245.296 -        <mi>NM</mi>
 245.297 -      </mtd>
 245.298 -      <mtd>
 245.299 -        <mi>NM</mi>
 245.300 -      </mtd>
 245.301 -    </mtr>
 245.302 -    <mtr>
 245.303 -      <mtd>
 245.304 -        <mi>N</mi>
 245.305 -        <mn>1</mn>
 245.306 -      </mtd>
 245.307 -      <mtd>
 245.308 -        <mi>N</mi>
 245.309 -        <mn>1</mn>
 245.310 -      </mtd>
 245.311 -      <mtd>
 245.312 -        <mi>N</mi>
 245.313 -        <mn>1</mn>
 245.314 -      </mtd>
 245.315 -      <mtd>
 245.316 -        <mi>N</mi>
 245.317 -        <mn>2</mn>
 245.318 -      </mtd>
 245.319 -      <mtd>
 245.320 -        <mo>.</mo>
 245.321 -        <mo>.</mo>
 245.322 -        <mo>.</mo>
 245.323 -      </mtd>
 245.324 -      <mtd>
 245.325 -        <mi>Nm</mi>
 245.326 -      </mtd>
 245.327 -      <mtd>
 245.328 -        <mi>NM</mi>
 245.329 -      </mtd>
 245.330 -      <mtd>
 245.331 -        <mi>NM</mi>
 245.332 -      </mtd>
 245.333 -      <mtd>
 245.334 -        <mi>NM</mi>
 245.335 -      </mtd>
 245.336 -    </mtr>
 245.337 -  </mtable>
 245.338 -</math>
 245.339 \ No newline at end of file
   246.1 --- a/master/publish-primer.xml	Thu Feb 24 10:19:12 2011 +0000
   246.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   246.3 @@ -1,22 +0,0 @@
   246.4 -<!-- Publication script configuration for SVG Filters 1.2 Primer. -->
   246.5 -
   246.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'>
   246.7 -  <title>SVG Filters 1.2, Part 1: Primer</title>
   246.8 -  <short-title>SVG Filters 1.2 Primer</short-title>
   246.9 -  <maturity>ED</maturity>
  246.10 -  <output use-publish-directory='true'/>
  246.11 -  <!--
  246.12 -  <publication-date>2009-12-01</publication-date>
  246.13 -  -->
  246.14 -
  246.15 -  <versions>
  246.16 -    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html'/>
  246.17 -    <this href='http://www.w3.org/TR/2009/WD-SVGFilterPrimer12-2009xxxx/'/>
  246.18 -    <previous href='http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/'/>
  246.19 -    <latest href='http://www.w3.org/TR/SVGFilterPrimer12/'/>
  246.20 -  </versions>
  246.21 -
  246.22 -  <definitions href='definitions-primer.xml'/>
  246.23 -
  246.24 -  <index name='SVGFilterPrimer'/>
  246.25 -</publish-conf>
   247.1 --- a/master/publish-reqs.xml	Thu Feb 24 10:19:12 2011 +0000
   247.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   247.3 @@ -1,22 +0,0 @@
   247.4 -<!-- Publication script configuration for SVG Filter Requirements. -->
   247.5 -
   247.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'>
   247.7 -  <title>SVG Filter Requirements</title>
   247.8 -  <short-title>SVG Filter Requirements</short-title>
   247.9 -  <maturity>ED</maturity>
  247.10 -  <output use-publish-directory='true'/>
  247.11 -  <!--
  247.12 -  <publication-date>2009-12-01</publication-date>
  247.13 -  -->
  247.14 -
  247.15 -  <versions>
  247.16 -    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html'/>
  247.17 -    <this href='http://www.w3.org/TR/2009/WD-SVGFilterReqs12-2009xxxx/'/>
  247.18 -    <previous href='http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/'/>
  247.19 -    <latest href='http://www.w3.org/TR/SVGFilterReqs12/'/>
  247.20 -  </versions>
  247.21 -
  247.22 -  <definitions href='definitions-primer.xml'/>
  247.23 -
  247.24 -  <index name='SVGFilterReqs'/>
  247.25 -</publish-conf>
   248.1 --- a/master/publish.xml	Thu Feb 24 10:19:12 2011 +0000
   248.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   248.3 @@ -1,23 +0,0 @@
   248.4 -<!-- Publication script configuration for SVG Filters 1.2. -->
   248.5 -
   248.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'>
   248.7 -  <title>Filter Effects 1.0, Part 2: Language</title>
   248.8 -  <short-title>Filter Effects 1.0</short-title>
   248.9 -  <maturity>ED</maturity>
  248.10 -  <output use-publish-directory='true'/>
  248.11 -  <!--
  248.12 -  <publication-date>2009-12-01</publication-date>
  248.13 -  -->
  248.14 -
  248.15 -  <versions>
  248.16 -    <cvs href='http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html'/>
  248.17 -    <this href='http://www.w3.org/TR/2011/WD-FilterEffect10-2011xxxx/'/>
  248.18 -    <previous href='http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/'/>
  248.19 -    <latest href='http://www.w3.org/TR/FilterEffects10/'/>
  248.20 -  </versions>
  248.21 -
  248.22 -  <definitions href='definitions.xml'/>
  248.23 -  <interfaces idl='svgfilters.idlx'/>
  248.24 -
  248.25 -  <index name='SVGFilter'/>
  248.26 -</publish-conf>
   249.1 --- a/master/rng/feBlend	Thu Feb 24 10:19:12 2011 +0000
   249.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   249.3 @@ -1,33 +0,0 @@
   249.4 -  <define name='svg.feBlend.content'>
   249.5 -    <zeroOrMore>
   249.6 -      <choice>
   249.7 -        <ref name='animate'/>
   249.8 -        <ref name='set'/>
   249.9 -      </choice>
  249.10 -    </zeroOrMore>
  249.11 -  </define>
  249.12 -
  249.13 -  <define name='feBlend'>
  249.14 -    <element name='feBlend'>
  249.15 -      <ref name='feBlend.attr'/>
  249.16 -      <ref name='svg.feBlend.content'/>
  249.17 -    </element>
  249.18 -  </define>
  249.19 -
  249.20 -  <define name='feBlend.attr' combine='interleave'>
  249.21 -    <ref name='svg.Core.attr'/>
  249.22 -    <ref name='svg.FilterColor.attr'/>
  249.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  249.24 -    <attribute name='in2'/>
  249.25 -    <optional>
  249.26 -      <attribute name='mode' a:defaultValue='normal'>
  249.27 -        <choice>
  249.28 -          <value>normal</value>
  249.29 -          <value>multiply</value>
  249.30 -          <value>screen</value>
  249.31 -          <value>darken</value>
  249.32 -          <value>lighten</value>
  249.33 -        </choice>
  249.34 -      </attribute>
  249.35 -    </optional>
  249.36 -  </define>
   250.1 --- a/master/rng/feColorMatrix	Thu Feb 24 10:19:12 2011 +0000
   250.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   250.3 @@ -1,34 +0,0 @@
   250.4 -  <define name='svg.feColorMatrix.content'>
   250.5 -    <zeroOrMore>
   250.6 -      <choice>
   250.7 -        <ref name='animate'/>
   250.8 -        <ref name='set'/>
   250.9 -      </choice>
  250.10 -    </zeroOrMore>
  250.11 -  </define>
  250.12 -
  250.13 -  <define name='feColorMatrix'>
  250.14 -    <element name='feColorMatrix'>
  250.15 -      <ref name='feColorMatrix.attr'/>
  250.16 -      <ref name='svg.feColorMatrix.content'/>
  250.17 -    </element>
  250.18 -  </define>
  250.19 -
  250.20 -  <define name='feColorMatrix.attr' combine='interleave'>
  250.21 -    <ref name='svg.Core.attr'/>
  250.22 -    <ref name='svg.FilterColor.attr'/>
  250.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  250.24 -    <optional>
  250.25 -      <attribute name='type' a:defaultValue='matrix'>
  250.26 -        <choice>
  250.27 -          <value>matrix</value>
  250.28 -          <value>saturate</value>
  250.29 -          <value>hueRotate</value>
  250.30 -          <value>luminanceToAlpha</value>
  250.31 -        </choice>
  250.32 -      </attribute>
  250.33 -    </optional>
  250.34 -    <optional>
  250.35 -      <attribute name='values'/>
  250.36 -    </optional>
  250.37 -  </define>
   251.1 --- a/master/rng/feComponentTransfer	Thu Feb 24 10:19:12 2011 +0000
   251.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   251.3 @@ -1,98 +0,0 @@
   251.4 -  <define name='svg.feComponentTransfer.content'>
   251.5 -    <optional><ref name='feFuncR'/></optional>
   251.6 -    <optional><ref name='feFuncG'/></optional>
   251.7 -    <optional><ref name='feFuncB'/></optional>
   251.8 -    <optional><ref name='feFuncA'/></optional>
   251.9 -  </define>
  251.10 -
  251.11 -  <define name='feComponentTransfer'>
  251.12 -    <element name='feComponentTransfer'>
  251.13 -      <ref name='feComponentTransfer.attr'/>
  251.14 -      <ref name='svg.feComponentTransfer.content'/>
  251.15 -    </element>
  251.16 -  </define>
  251.17 -
  251.18 -  <define name='feComponentTransfer.attr' combine='interleave'>
  251.19 -    <ref name='svg.Core.attr'/>
  251.20 -    <ref name='svg.FilterColor.attr'/>
  251.21 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  251.22 -  </define>
  251.23 -
  251.24 -
  251.25 -  <define name='SVG.feFunc.content'>
  251.26 -    <zeroOrMore>
  251.27 -      <choice>
  251.28 -        <ref name='animate'/>
  251.29 -        <ref name='set'/>
  251.30 -      </choice>
  251.31 -    </zeroOrMore>
  251.32 -  </define>
  251.33 -
  251.34 -  <define name='feFuncR'>
  251.35 -    <element name='feFuncR'>
  251.36 -      <ref name='feFunc.attr'/>
  251.37 -      <ref name='svg.feFunc.content'/>
  251.38 -    </element>
  251.39 -  </define>
  251.40 -  
  251.41 -  <define name='feFuncG'>
  251.42 -    <element name='feFuncG'>
  251.43 -      <ref name='feFunc.attr'/>
  251.44 -      <ref name='svg.feFunc.content'/>
  251.45 -    </element>
  251.46 -  </define>
  251.47 -  
  251.48 -  <define name='feFuncB'>
  251.49 -    <element name='feFuncB'>
  251.50 -      <ref name='feFunc.attr'/>
  251.51 -      <ref name='svg.feFunc.content'/>
  251.52 -    </element>
  251.53 -  </define>
  251.54 -  
  251.55 -  <define name='feFuncA'>
  251.56 -    <element name='feFuncA'>
  251.57 -      <ref name='feFunc.attr'/>
  251.58 -      <ref name='svg.feFunc.content'/>
  251.59 -    </element>
  251.60 -  </define>
  251.61 -
  251.62 -  <define name='feFunc.attr' combine='interleave'>
  251.63 -    <ref name='svg.Core.attr'/>
  251.64 -    <attribute name='type'>
  251.65 -      <choice>
  251.66 -        <value>identity</value>
  251.67 -        <value>table</value>
  251.68 -        <value>discrete</value>
  251.69 -        <value>linear</value>
  251.70 -        <value>gamma</value>
  251.71 -      </choice>
  251.72 -    </attribute>
  251.73 -    <optional>
  251.74 -      <attribute name='tableValues'/>
  251.75 -    </optional>
  251.76 -    <optional>
  251.77 -      <attribute name='slope'>
  251.78 -        <ref name='Number.datatype'/>
  251.79 -      </attribute>
  251.80 -    </optional>
  251.81 -    <optional>
  251.82 -      <attribute name='intercept'>
  251.83 -        <ref name='Number.datatype'/>
  251.84 -      </attribute>
  251.85 -    </optional>
  251.86 -    <optional>
  251.87 -      <attribute name='amplitude'>
  251.88 -        <ref name='Number.datatype'/>
  251.89 -      </attribute>
  251.90 -    </optional>
  251.91 -    <optional>
  251.92 -      <attribute name='exponent'>
  251.93 -        <ref name='Number.datatype'/>
  251.94 -      </attribute>
  251.95 -    </optional>
  251.96 -    <optional>
  251.97 -      <attribute name='offset'>
  251.98 -        <ref name='Number.datatype'/>
  251.99 -      </attribute>
 251.100 -    </optional>
 251.101 -  </define>
 251.102 \ No newline at end of file
   252.1 --- a/master/rng/feComposite	Thu Feb 24 10:19:12 2011 +0000
   252.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   252.3 @@ -1,54 +0,0 @@
   252.4 -  <define name='svg.feComposite.content'>
   252.5 -    <zeroOrMore>
   252.6 -      <choice>
   252.7 -        <ref name='animate'/>
   252.8 -        <ref name='set'/>
   252.9 -      </choice>
  252.10 -    </zeroOrMore>
  252.11 -  </define>
  252.12 -
  252.13 -  <define name='feComposite'>
  252.14 -    <element name='feComposite'>
  252.15 -      <ref name='feComposite.attr'/>
  252.16 -      <ref name='svg.feComposite.content'/>
  252.17 -    </element>
  252.18 -  </define>
  252.19 -
  252.20 -  <define name='feComposite.attr' combine='interleave'>
  252.21 -    <ref name='svg.Core.attr'/>
  252.22 -    <ref name='svg.FilterColor.attr'/>
  252.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  252.24 -    <attribute name='in2'/>
  252.25 -    <optional>
  252.26 -      <attribute name='operator' a:defaultValue='over'>
  252.27 -        <choice>
  252.28 -          <value>over</value>
  252.29 -          <value>in</value>
  252.30 -          <value>out</value>
  252.31 -          <value>atop</value>
  252.32 -          <value>xor</value>
  252.33 -          <value>arithmetic</value>
  252.34 -        </choice>
  252.35 -      </attribute>
  252.36 -    </optional>
  252.37 -    <optional>
  252.38 -      <attribute name='k1'>
  252.39 -        <ref name='Number.datatype'/>
  252.40 -      </attribute>
  252.41 -    </optional>
  252.42 -    <optional>
  252.43 -      <attribute name='k2'>
  252.44 -        <ref name='Number.datatype'/>
  252.45 -      </attribute>
  252.46 -    </optional>
  252.47 -    <optional>
  252.48 -      <attribute name='k3'>
  252.49 -        <ref name='Number.datatype'/>
  252.50 -      </attribute>
  252.51 -    </optional>
  252.52 -    <optional>
  252.53 -      <attribute name='k4'>
  252.54 -        <ref name='Number.datatype'/>
  252.55 -      </attribute>
  252.56 -    </optional>
  252.57 -  </define>
   253.1 --- a/master/rng/feConvolveMatrix	Thu Feb 24 10:19:12 2011 +0000
   253.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   253.3 @@ -1,64 +0,0 @@
   253.4 -  <define name='svg.feConvolveMatrix.content'>
   253.5 -    <zeroOrMore>
   253.6 -      <choice>
   253.7 -        <ref name='animate'/>
   253.8 -        <ref name='set'/>
   253.9 -      </choice>
  253.10 -    </zeroOrMore>
  253.11 -  </define>
  253.12 -
  253.13 -  <define name='feConvolveMatrix'>
  253.14 -    <element name='feConvolveMatrix'>
  253.15 -      <ref name='feConvolveMatrix.attr'/>
  253.16 -      <ref name='svg.feConvolveMatrix.content'/>
  253.17 -    </element>
  253.18 -  </define>
  253.19 -
  253.20 -  <define name='feConvolveMatrix.attr' combine='interleave'>
  253.21 -    <ref name='svg.Core.attr'/>
  253.22 -    <ref name='svg.FilterColor.attr'/>
  253.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  253.24 -    <attribute name='order'>
  253.25 -      <ref name='NumberOptionalNumber.datatype'/>
  253.26 -    </attribute>
  253.27 -    <attribute name='kernelMatrix'/>
  253.28 -    <optional>
  253.29 -      <attribute name='divisor'>
  253.30 -        <ref name='Number.datatype'/>
  253.31 -      </attribute>
  253.32 -    </optional>
  253.33 -    <optional>
  253.34 -      <attribute name='bias'>
  253.35 -        <ref name='Number.datatype'/>
  253.36 -      </attribute>
  253.37 -    </optional>
  253.38 -    <optional>
  253.39 -      <attribute name='targetX'>
  253.40 -        <ref name='Integer.datatype'/>
  253.41 -      </attribute>
  253.42 -    </optional>
  253.43 -    <optional>
  253.44 -      <attribute name='targetY'>
  253.45 -        <ref name='Integer.datatype'/>
  253.46 -      </attribute>
  253.47 -    </optional>
  253.48 -    <optional>
  253.49 -      <attribute name='edgeMode' a:defaultValue='duplicate'>
  253.50 -        <choice>
  253.51 -          <value>duplicate</value>
  253.52 -          <value>wrap</value>
  253.53 -          <value>none</value>
  253.54 -        </choice>
  253.55 -      </attribute>
  253.56 -    </optional>
  253.57 -    <optional>
  253.58 -      <attribute name='kernelUnitLength'>
  253.59 -        <ref name='NumberOptionalNumber.datatype'/>
  253.60 -      </attribute>
  253.61 -    </optional>
  253.62 -    <optional>
  253.63 -      <attribute name='preserveAlpha'>
  253.64 -        <ref name='Boolean.datatype'/>
  253.65 -      </attribute>
  253.66 -    </optional>
  253.67 -  </define>
   254.1 --- a/master/rng/feDiffuseLighting	Thu Feb 24 10:19:12 2011 +0000
   254.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   254.3 @@ -1,49 +0,0 @@
   254.4 -  <define name='svg.feDiffuseLighting.content'>
   254.5 -    <choice>
   254.6 -      <ref name='feDistantLight'/>
   254.7 -      <ref name='fePointLight'/>
   254.8 -      <ref name='feSpotLight'/>
   254.9 -    </choice>
  254.10 -    <zeroOrMore>
  254.11 -      <choice>
  254.12 -        <ref name='animate'/>
  254.13 -        <ref name='set'/>
  254.14 -        <ref name='animateColor'/>
  254.15 -      </choice>
  254.16 -    </zeroOrMore>
  254.17 -  </define>
  254.18 -
  254.19 -  <define name='feDiffuseLighting'>
  254.20 -    <element name='feDiffuseLighting'>
  254.21 -      <ref name='attlist.feDiffuseLighting'/>
  254.22 -      <ref name='svg.feDiffuseLighting.content'/>
  254.23 -    </element>
  254.24 -  </define>
  254.25 -
  254.26 -  <define name='attlist.feDiffuseLighting' combine='interleave'>
  254.27 -    <ref name='svg.Core.attrib'/>
  254.28 -    <ref name='svg.Style.attrib'/>
  254.29 -    <ref name='svg.Color.attrib'/>
  254.30 -    <ref name='svg.FilterColor.attrib'/>
  254.31 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  254.32 -    <optional>
  254.33 -      <attribute name='lighting-color'>
  254.34 -        <ref name='SVGColor.datatype'/>
  254.35 -      </attribute>
  254.36 -    </optional>
  254.37 -    <optional>
  254.38 -      <attribute name='surfaceScale'>
  254.39 -        <ref name='Number.datatype'/>
  254.40 -      </attribute>
  254.41 -    </optional>
  254.42 -    <optional>
  254.43 -      <attribute name='diffuseConstant'>
  254.44 -        <ref name='Number.datatype'/>
  254.45 -      </attribute>
  254.46 -    </optional>
  254.47 -    <optional>
  254.48 -      <attribute name='kernelUnitLength'>
  254.49 -        <ref name='NumberOptionalNumber.datatype'/>
  254.50 -      </attribute>
  254.51 -    </optional>
  254.52 -  </define>
   255.1 --- a/master/rng/feDisplacementMap	Thu Feb 24 10:19:12 2011 +0000
   255.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   255.3 @@ -1,47 +0,0 @@
   255.4 -  <define name='svg.feDisplacementMap.content'>
   255.5 -    <zeroOrMore>
   255.6 -      <choice>
   255.7 -        <ref name='animate'/>
   255.8 -        <ref name='set'/>
   255.9 -      </choice>
  255.10 -    </zeroOrMore>
  255.11 -  </define>
  255.12 -
  255.13 -  <define name='feDisplacementMap'>
  255.14 -    <element name='feDisplacementMap'>
  255.15 -      <ref name='attlist.feDisplacementMap'/>
  255.16 -      <ref name='svg.feDisplacementMap.content'/>
  255.17 -    </element>
  255.18 -  </define>
  255.19 -
  255.20 -  <define name='attlist.feDisplacementMap' combine='interleave'>
  255.21 -    <ref name='svg.Core.attrib'/>
  255.22 -    <ref name='svg.FilterColor.attrib'/>
  255.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  255.24 -    <attribute name='in2'/>
  255.25 -    <optional>
  255.26 -      <attribute name='scale'>
  255.27 -        <ref name='Number.datatype'/>
  255.28 -      </attribute>
  255.29 -    </optional>
  255.30 -    <optional>
  255.31 -      <attribute name='xChannelSelector' a:defaultValue='A'>
  255.32 -        <choice>
  255.33 -          <value>R</value>
  255.34 -          <value>G</value>
  255.35 -          <value>B</value>
  255.36 -          <value>A</value>
  255.37 -        </choice>
  255.38 -      </attribute>
  255.39 -    </optional>
  255.40 -    <optional>
  255.41 -      <attribute name='yChannelSelector' a:defaultValue='A'>
  255.42 -        <choice>
  255.43 -          <value>R</value>
  255.44 -          <value>G</value>
  255.45 -          <value>B</value>
  255.46 -          <value>A</value>
  255.47 -        </choice>
  255.48 -      </attribute>
  255.49 -    </optional>
  255.50 -  </define>
   256.1 --- a/master/rng/feDistantLight	Thu Feb 24 10:19:12 2011 +0000
   256.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   256.3 @@ -1,29 +0,0 @@
   256.4 -  <define name='svg.feDistantLight.content'>
   256.5 -    <zeroOrMore>
   256.6 -      <choice>
   256.7 -        <ref name='animate'/>
   256.8 -        <ref name='set'/>
   256.9 -      </choice>
  256.10 -    </zeroOrMore>
  256.11 -  </define>
  256.12 -
  256.13 -  <define name='feDistantLight'>
  256.14 -    <element name='feDistantLight'>
  256.15 -      <ref name='feDistantLight.attr'/>
  256.16 -      <ref name='svg.feDistantLight.content'/>
  256.17 -    </element>
  256.18 -  </define>
  256.19 -
  256.20 -  <define name='feDistantLight.attr' combine='interleave'>
  256.21 -    <ref name='svg.Core.attr'/>
  256.22 -    <optional>
  256.23 -      <attribute name='azimuth'>
  256.24 -        <ref name='Number.datatype'/>
  256.25 -      </attribute>
  256.26 -    </optional>
  256.27 -    <optional>
  256.28 -      <attribute name='elevation'>
  256.29 -        <ref name='Number.datatype'/>
  256.30 -      </attribute>
  256.31 -    </optional>
  256.32 -  </define>
   257.1 --- a/master/rng/feDropShadow	Thu Feb 24 10:19:12 2011 +0000
   257.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   257.3 @@ -1,37 +0,0 @@
   257.4 -  <define name='svg.feDropShadow.content'>
   257.5 -    <zeroOrMore>
   257.6 -      <choice>
   257.7 -        <ref name='animate'/>
   257.8 -        <ref name='set'/>
   257.9 -      </choice>
  257.10 -    </zeroOrMore>
  257.11 -  </define>
  257.12 -
  257.13 -  <define name='feDropShadow'>
  257.14 -    <element name='feDropShadow'>
  257.15 -      <ref name='attlist.feDropShadow'/>
  257.16 -      <ref name='svg.feDropShadow.content'/>
  257.17 -    </element>
  257.18 -  </define>
  257.19 -
  257.20 -  <define name='attlist.feDropShadow' combine='interleave'>
  257.21 -    <ref name='svg.Core.attrib'/>
  257.22 -    <ref name='svg.FilterColor.attrib'/>
  257.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  257.24 -	
  257.25 -	<optional>
  257.26 -      <attribute name='dx'>
  257.27 -        <ref name='Coordinate.datatype'/>
  257.28 -      </attribute>
  257.29 -    </optional>
  257.30 -    <optional>
  257.31 -      <attribute name='dy'>
  257.32 -        <ref name='Coordinate.datatype'/>
  257.33 -      </attribute>
  257.34 -    </optional>
  257.35 -    <optional>
  257.36 -      <attribute name='stdDeviation'>
  257.37 -        <ref name='NumberOptionalNumber.datatype'/>
  257.38 -      </attribute>
  257.39 -    </optional>
  257.40 -  </define>
   258.1 --- a/master/rng/feFlood	Thu Feb 24 10:19:12 2011 +0000
   258.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   258.3 @@ -1,34 +0,0 @@
   258.4 -  <define name='svg.feFlood.content'>
   258.5 -    <zeroOrMore>
   258.6 -      <choice>
   258.7 -        <ref name='animate'/>
   258.8 -        <ref name='set'/>
   258.9 -        <ref name='animateColor'/>
  258.10 -      </choice>
  258.11 -    </zeroOrMore>
  258.12 -  </define>
  258.13 -
  258.14 -  <define name='feFlood'>
  258.15 -    <element name='feFlood'>
  258.16 -      <ref name='attlist.feFlood'/>
  258.17 -      <ref name='svg.feFlood.content'/>
  258.18 -    </element>
  258.19 -  </define>
  258.20 -
  258.21 -  <define name='attlist.feFlood' combine='interleave'>
  258.22 -    <ref name='svg.Core.attrib'/>
  258.23 -    <ref name='svg.Style.attrib'/>
  258.24 -    <ref name='svg.Color.attrib'/>
  258.25 -    <ref name='svg.FilterColor.attrib'/>
  258.26 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  258.27 -    <optional>
  258.28 -      <attribute name='flood-color'>
  258.29 -        <ref name='SVGColor.datatype'/>
  258.30 -      </attribute>
  258.31 -    </optional>
  258.32 -    <optional>
  258.33 -      <attribute name='flood-opacity'>
  258.34 -        <ref name='OpacityValue.datatype'/>
  258.35 -      </attribute>
  258.36 -    </optional>
  258.37 -  </define>
   259.1 --- a/master/rng/feGaussianBlur	Thu Feb 24 10:19:12 2011 +0000
   259.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   259.3 @@ -1,27 +0,0 @@
   259.4 -  <define name='svg.feGaussianBlur.content'>
   259.5 -    <zeroOrMore>
   259.6 -      <choice>
   259.7 -        <ref name='animate'/>
   259.8 -        <ref name='set'/>
   259.9 -      </choice>
  259.10 -    </zeroOrMore>
  259.11 -  </define>
  259.12 -
  259.13 -  <define name='feGaussianBlur'>
  259.14 -    <element name='feGaussianBlur'>
  259.15 -      <ref name='attlist.feGaussianBlur'/>
  259.16 -      <ref name='svg.feGaussianBlur.content'/>
  259.17 -    </element>
  259.18 -  </define>
  259.19 -
  259.20 -  <define name='attlist.feGaussianBlur' combine='interleave'>
  259.21 -    <ref name='svg.Core.attrib'/>
  259.22 -    <ref name='svg.FilterColor.attrib'/>
  259.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  259.24 -    <optional>
  259.25 -      <attribute name='stdDeviation'>
  259.26 -        <ref name='NumberOptionalNumber.datatype'/>
  259.27 -      </attribute>
  259.28 -    </optional>
  259.29 -  </define>
  259.30 -  
  259.31 \ No newline at end of file
   260.1 --- a/master/rng/feImage	Thu Feb 24 10:19:12 2011 +0000
   260.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   260.3 @@ -1,32 +0,0 @@
   260.4 -  <define name='SVG.feImage.content'>
   260.5 -    <zeroOrMore>
   260.6 -      <choice>
   260.7 -        <ref name='animate'/>
   260.8 -        <ref name='set'/>
   260.9 -        <ref name='animateTransform'/>
  260.10 -      </choice>
  260.11 -    </zeroOrMore>
  260.12 -  </define>
  260.13 -
  260.14 -  <define name='feImage'>
  260.15 -    <element name='feImage'>
  260.16 -      <ref name='attlist.feImage'/>
  260.17 -      <ref name='svg.feImage.content'/>
  260.18 -    </element>
  260.19 -  </define>
  260.20 -
  260.21 -  <define name='attlist.feImage' combine='interleave'>
  260.22 -    <ref name='svg.Core.attrib'/>
  260.23 -    <ref name='svg.Style.attrib'/>
  260.24 -    <ref name='svg.Presentation.attrib'/>
  260.25 -    <ref name='svg.FilterPrimitive.attrib'/>
  260.26 -    <ref name='svg.XLinkEmbed.attrib'/>
  260.27 -    <ref name='svg.External.attrib'/>
  260.28 -    <ref name='svg.Transition.attrib'/>
  260.29 -    <ref name='svg.ShadowInherit.attrib'/>
  260.30 -    <optional>
  260.31 -      <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'>
  260.32 -        <ref name='PreserveAspectRatioSpec.datatype'/>
  260.33 -      </attribute>
  260.34 -    </optional>
  260.35 -  </define>
   261.1 --- a/master/rng/feMerge	Thu Feb 24 10:19:12 2011 +0000
   261.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   261.3 @@ -1,41 +0,0 @@
   261.4 -  <define name='svg.feMerge.content'>
   261.5 -    <zeroOrMore>
   261.6 -      <ref name='feMergeNode'/>
   261.7 -    </zeroOrMore>
   261.8 -  </define>
   261.9 -
  261.10 -  <define name='feMerge'>
  261.11 -    <element name='feMerge'>
  261.12 -      <ref name='attlist.feMerge'/>
  261.13 -      <ref name='svg.feMerge.content'/>
  261.14 -    </element>
  261.15 -  </define>
  261.16 -
  261.17 -  <define name='attlist.feMerge' combine='interleave'>
  261.18 -    <ref name='svg.Core.attrib'/>
  261.19 -    <ref name='svg.FilterColor.attrib'/>
  261.20 -    <ref name='svg.FilterPrimitive.attrib'/>
  261.21 -  </define>
  261.22 -
  261.23 -  <define name='svg.feMergeNode.content'>
  261.24 -    <zeroOrMore>
  261.25 -      <choice>
  261.26 -        <ref name='animate'/>
  261.27 -        <ref name='set'/>
  261.28 -      </choice>
  261.29 -    </zeroOrMore>
  261.30 -  </define>
  261.31 -
  261.32 -  <define name='feMergeNode'>
  261.33 -    <element name='feMergeNode'>
  261.34 -      <ref name='attlist.feMergeNode'/>
  261.35 -      <ref name='svg.feMergeNode.content'/>
  261.36 -    </element>
  261.37 -  </define>
  261.38 -
  261.39 -  <define name='attlist.feMergeNode' combine='interleave'>
  261.40 -    <ref name='svg.Core.attrib'/>
  261.41 -    <optional>
  261.42 -      <attribute name='in'/>
  261.43 -    </optional>
  261.44 -  </define>
   262.1 --- a/master/rng/feMorphology	Thu Feb 24 10:19:12 2011 +0000
   262.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   262.3 @@ -1,34 +0,0 @@
   262.4 -  <define name='svg.feMorphology.content'>
   262.5 -    <zeroOrMore>
   262.6 -      <choice>
   262.7 -        <ref name='animate'/>
   262.8 -        <ref name='set'/>
   262.9 -      </choice>
  262.10 -    </zeroOrMore>
  262.11 -  </define>
  262.12 -
  262.13 -  <define name='feMorphology'>
  262.14 -    <element name='feMorphology'>
  262.15 -      <ref name='attlist.feMorphology'/>
  262.16 -      <ref name='svg.feMorphology.content'/>
  262.17 -    </element>
  262.18 -  </define>
  262.19 -
  262.20 -  <define name='attlist.feMorphology' combine='interleave'>
  262.21 -    <ref name='svg.Core.attrib'/>
  262.22 -    <ref name='svg.FilterColor.attrib'/>
  262.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  262.24 -    <optional>
  262.25 -      <attribute name='operator' a:defaultValue='erode'>
  262.26 -        <choice>
  262.27 -          <value>erode</value>
  262.28 -          <value>dilate</value>
  262.29 -        </choice>
  262.30 -      </attribute>
  262.31 -    </optional>
  262.32 -    <optional>
  262.33 -      <attribute name='radius'>
  262.34 -        <ref name='NumberOptionalNumber.datatype'/>
  262.35 -      </attribute>
  262.36 -    </optional>
  262.37 -  </define>
   263.1 --- a/master/rng/feOffset	Thu Feb 24 10:19:12 2011 +0000
   263.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   263.3 @@ -1,21 +0,0 @@
   263.4 -  <define name='svg.feOffset.content'>
   263.5 -    <zeroOrMore>
   263.6 -      <choice>
   263.7 -        <ref name='animate'/>
   263.8 -        <ref name='set'/>
   263.9 -      </choice>
  263.10 -    </zeroOrMore>
  263.11 -  </define>
  263.12 -
  263.13 -  <define name='feOffset'>
  263.14 -    <element name='feOffset'>
  263.15 -      <ref name='attlist.feOffset'/>
  263.16 -      <ref name='svg.feOffset.content'/>
  263.17 -    </element>
  263.18 -  </define>
  263.19 -
  263.20 -  <define name='attlist.feOffset' combine='interleave'>
  263.21 -    <ref name='svg.Core.attrib'/>
  263.22 -    <ref name='svg.FilterColor.attrib'/>
  263.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  263.24 -  </define>
   264.1 --- a/master/rng/fePointLight	Thu Feb 24 10:19:12 2011 +0000
   264.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   264.3 @@ -1,34 +0,0 @@
   264.4 -  <define name='svg.fePointLight.content'>
   264.5 -    <zeroOrMore>
   264.6 -      <choice>
   264.7 -        <ref name='animate'/>
   264.8 -        <ref name='set'/>
   264.9 -      </choice>
  264.10 -    </zeroOrMore>
  264.11 -  </define>
  264.12 -
  264.13 -  <define name='fePointLight'>
  264.14 -    <element name='fePointLight'>
  264.15 -      <ref name='fePointLight.attr'/>
  264.16 -      <ref name='svg.fePointLight.content'/>
  264.17 -    </element>
  264.18 -  </define>
  264.19 -
  264.20 -  <define name='fePointLight.attr' combine='interleave'>
  264.21 -    <ref name='svg.Core.attr'/>
  264.22 -    <optional>
  264.23 -      <attribute name='x'>
  264.24 -        <ref name='Number.datatype'/>
  264.25 -      </attribute>
  264.26 -    </optional>
  264.27 -    <optional>
  264.28 -      <attribute name='y'>
  264.29 -        <ref name='Number.datatype'/>
  264.30 -      </attribute>
  264.31 -    </optional>
  264.32 -    <optional>
  264.33 -      <attribute name='z'>
  264.34 -        <ref name='Number.datatype'/>
  264.35 -      </attribute>
  264.36 -    </optional>
  264.37 -  </define>
   265.1 --- a/master/rng/feSpecularLighting	Thu Feb 24 10:19:12 2011 +0000
   265.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   265.3 @@ -1,54 +0,0 @@
   265.4 -  <define name='svg.feSpecularLighting.content'>
   265.5 -    <choice>
   265.6 -      <ref name='feDistantLight'/>
   265.7 -      <ref name='fePointLight'/>
   265.8 -      <ref name='feSpotLight'/>
   265.9 -    </choice>
  265.10 -    <zeroOrMore>
  265.11 -      <choice>
  265.12 -        <ref name='animate'/>
  265.13 -        <ref name='set'/>
  265.14 -        <ref name='animateColor'/>
  265.15 -      </choice>
  265.16 -    </zeroOrMore>
  265.17 -  </define>
  265.18 -
  265.19 -  <define name='feSpecularLighting'>
  265.20 -    <element name='feSpecularLighting'>
  265.21 -      <ref name='attlist.feSpecularLighting'/>
  265.22 -      <ref name='svg.feSpecularLighting.content'/>
  265.23 -    </element>
  265.24 -  </define>
  265.25 -
  265.26 -  <define name='attlist.feSpecularLighting' combine='interleave'>
  265.27 -    <ref name='svg.Core.attrib'/>
  265.28 -    <ref name='svg.Style.attrib'/>
  265.29 -    <ref name='svg.Color.attrib'/>
  265.30 -    <ref name='svg.FilterColor.attrib'/>
  265.31 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  265.32 -    <optional>
  265.33 -      <attribute name='lighting-color'>
  265.34 -        <ref name='SVGColor.datatype'/>
  265.35 -      </attribute>
  265.36 -    </optional>
  265.37 -    <optional>
  265.38 -      <attribute name='surfaceScale'>
  265.39 -        <ref name='Number.datatype'/>
  265.40 -      </attribute>
  265.41 -    </optional>
  265.42 -    <optional>
  265.43 -      <attribute name='specularConstant'>
  265.44 -        <ref name='Number.datatype'/>
  265.45 -      </attribute>
  265.46 -    </optional>
  265.47 -    <optional>
  265.48 -      <attribute name='specularExponent'>
  265.49 -        <ref name='Number.datatype'/>
  265.50 -      </attribute>
  265.51 -    </optional>
  265.52 -    <optional>
  265.53 -      <attribute name='kernelUnitLength'>
  265.54 -        <ref name='NumberOptionalNumber.datatype'/>
  265.55 -      </attribute>
  265.56 -    </optional>
  265.57 -  </define>
   266.1 --- a/master/rng/feSpotLight	Thu Feb 24 10:19:12 2011 +0000
   266.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   266.3 @@ -1,59 +0,0 @@
   266.4 -<define name='svg.feSpotLight.content'>
   266.5 -    <zeroOrMore>
   266.6 -      <choice>
   266.7 -        <ref name='animate'/>
   266.8 -        <ref name='set'/>
   266.9 -      </choice>
  266.10 -    </zeroOrMore>
  266.11 -  </define>
  266.12 -
  266.13 -  <define name='feSpotLight'>
  266.14 -    <element name='feSpotLight'>
  266.15 -      <ref name='feSpotLight.attr'/>
  266.16 -      <ref name='svg.feSpotLight.content'/>
  266.17 -    </element>
  266.18 -  </define>
  266.19 -  
  266.20 -  <define name='feSpotLight.attr' combine='interleave'>
  266.21 -    <ref name='svg.Core.attr'/>
  266.22 -    <optional>
  266.23 -      <attribute name='x'>
  266.24 -        <ref name='Number.datatype'/>
  266.25 -      </attribute>
  266.26 -    </optional>
  266.27 -    <optional>
  266.28 -      <attribute name='y'>
  266.29 -        <ref name='Number.datatype'/>
  266.30 -      </attribute>
  266.31 -    </optional>
  266.32 -    <optional>
  266.33 -      <attribute name='z'>
  266.34 -        <ref name='Number.datatype'/>
  266.35 -      </attribute>
  266.36 -    </optional>
  266.37 -    <optional>
  266.38 -      <attribute name='pointsAtX'>
  266.39 -        <ref name='Number.datatype'/>
  266.40 -      </attribute>
  266.41 -    </optional>
  266.42 -    <optional>
  266.43 -      <attribute name='pointsAtY'>
  266.44 -        <ref name='Number.datatype'/>
  266.45 -      </attribute>
  266.46 -    </optional>
  266.47 -    <optional>
  266.48 -      <attribute name='pointsAtZ'>
  266.49 -        <ref name='Number.datatype'/>
  266.50 -      </attribute>
  266.51 -    </optional>
  266.52 -    <optional>
  266.53 -      <attribute name='specularExponent'>
  266.54 -        <ref name='Number.datatype'/>
  266.55 -      </attribute>
  266.56 -    </optional>
  266.57 -    <optional>
  266.58 -      <attribute name='limitingConeAngle'>
  266.59 -        <ref name='Number.datatype'/>
  266.60 -      </attribute>
  266.61 -    </optional>
  266.62 -  </define>
   267.1 --- a/master/rng/feTile	Thu Feb 24 10:19:12 2011 +0000
   267.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   267.3 @@ -1,21 +0,0 @@
   267.4 -  <define name='svg.feTile.content'>
   267.5 -    <zeroOrMore>
   267.6 -      <choice>
   267.7 -        <ref name='animate'/>
   267.8 -        <ref name='set'/>
   267.9 -      </choice>
  267.10 -    </zeroOrMore>
  267.11 -  </define>
  267.12 -
  267.13 -  <define name='feTile'>
  267.14 -    <element name='feTile'>
  267.15 -      <ref name='attlist.feTile'/>
  267.16 -      <ref name='svg.feTile.content'/>
  267.17 -    </element>
  267.18 -  </define>
  267.19 -
  267.20 -  <define name='attlist.feTile' combine='interleave'>
  267.21 -    <ref name='svg.Core.attrib'/>
  267.22 -    <ref name='svg.FilterColor.attrib'/>
  267.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  267.24 -  </define>
   268.1 --- a/master/rng/feTurbulence	Thu Feb 24 10:19:12 2011 +0000
   268.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   268.3 @@ -1,52 +0,0 @@
   268.4 -  <define name='svg.feTurbulence.content'>
   268.5 -    <zeroOrMore>
   268.6 -      <choice>
   268.7 -        <ref name='animate'/>
   268.8 -        <ref name='set'/>
   268.9 -      </choice>
  268.10 -    </zeroOrMore>
  268.11 -  </define>
  268.12 -
  268.13 -  <define name='feTurbulence'>
  268.14 -    <element name='feTurbulence'>
  268.15 -      <ref name='attlist.feTurbulence'/>
  268.16 -      <ref name='svg.feTurbulence.content'/>
  268.17 -    </element>
  268.18 -  </define>
  268.19 -
  268.20 -  <define name='attlist.feTurbulence' combine='interleave'>
  268.21 -    <ref name='svg.Core.attrib'/>
  268.22 -    <ref name='svg.FilterColor.attrib'/>
  268.23 -    <ref name='svg.FilterPrimitive.attrib'/>
  268.24 -    <optional>
  268.25 -      <attribute name='baseFrequency'>
  268.26 -        <ref name='NumberOptionalNumber.datatype'/>
  268.27 -      </attribute>
  268.28 -    </optional>
  268.29 -    <optional>
  268.30 -      <attribute name='numOctaves'>
  268.31 -        <ref name='Integer.datatype'/>
  268.32 -      </attribute>
  268.33 -    </optional>
  268.34 -    <optional>
  268.35 -      <attribute name='seed'>
  268.36 -        <ref name='Number.datatype'/>
  268.37 -      </attribute>
  268.38 -    </optional>
  268.39 -    <optional>
  268.40 -      <attribute name='stitchTiles' a:defaultValue='noStitch'>
  268.41 -        <choice>
  268.42 -          <value>stitch</value>
  268.43 -          <value>noStitch</value>
  268.44 -        </choice>
  268.45 -      </attribute>
  268.46 -    </optional>
  268.47 -    <optional>
  268.48 -      <attribute name='type' a:defaultValue='turbulence'>
  268.49 -        <choice>
  268.50 -          <value>fractalNoise</value>
  268.51 -          <value>turbulence</value>
  268.52 -        </choice>
  268.53 -      </attribute>
  268.54 -    </optional>
  268.55 -  </define>
   269.1 --- a/master/rng/feUnsharpMask	Thu Feb 24 10:19:12 2011 +0000
   269.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   269.3 @@ -1,33 +0,0 @@
   269.4 -  <define name='svg.feUnsharpMask.content'>
   269.5 -    <zeroOrMore>
   269.6 -      <choice>
   269.7 -        <ref name='animate'/>
   269.8 -        <ref name='set'/>
   269.9 -      </choice>
  269.10 -    </zeroOrMore>
  269.11 -  </define>
  269.12 -
  269.13 -  <define name='feUnsharpMask'>
  269.14 -    <element name='feUnsharpMask'>
  269.15 -      <ref name='attlist.feUnsharpMask'/>
  269.16 -      <ref name='svg.feUnsharpMask.content'/>
  269.17 -    </element>
  269.18 -  </define>
  269.19 -
  269.20 -  <define name='attlist.feUnsharpMask' combine='interleave'>
  269.21 -    <ref name='svg.Core.attrib'/>
  269.22 -    <ref name='svg.FilterColor.attrib'/>
  269.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  269.24 -    <optional>
  269.25 -      <attribute name='amount'>
  269.26 -        <ref name='Number.datatype'/>
  269.27 -      </attribute>
  269.28 -      <attribute name='radius'>
  269.29 -        <ref name='NumberOptionalNumber.datatype'/>
  269.30 -      </attribute>
  269.31 -      <attribute name='threshold'>
  269.32 -        <ref name='Number.datatype'/>
  269.33 -      </attribute>
  269.34 -    </optional>
  269.35 -  </define>
  269.36 -  
   270.1 --- a/master/rng/filter	Thu Feb 24 10:19:12 2011 +0000
   270.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   270.3 @@ -1,91 +0,0 @@
   270.4 -  <define name='filter'>
   270.5 -    <element name='filter'>
   270.6 -      <ref name='filter.AT'/>
   270.7 -      <ref name='svg.filter.content'/>
   270.8 -    </element>
   270.9 -  </define>
  270.10 -
  270.11 -  <define name='filter.AT' combine='interleave'>
  270.12 -    <ref name='svg.Core.attr'/>
  270.13 -    <ref name='svg.Style.attr'/>
  270.14 -    <ref name='svg.Presentation.attrib'/>
  270.15 -    <ref name='svg.XLink.attrib'/>
  270.16 -    <ref name='svg.External.attrib'/>
  270.17 -    <optional>
  270.18 -      <attribute name='x'>
  270.19 -        <ref name='Coordinate.datatype'/>
  270.20 -      </attribute>
  270.21 -    </optional>
  270.22 -    <optional>
  270.23 -      <attribute name='y'>
  270.24 -        <ref name='Coordinate.datatype'/>
  270.25 -      </attribute>
  270.26 -    </optional>
  270.27 -    <optional>
  270.28 -      <attribute name='width'>
  270.29 -        <ref name='Length.datatype'/>
  270.30 -      </attribute>
  270.31 -    </optional>
  270.32 -    <optional>
  270.33 -      <attribute name='height'>
  270.34 -        <ref name='Length.datatype'/>
  270.35 -      </attribute>
  270.36 -    </optional>
  270.37 -    <optional>
  270.38 -      <attribute name='mx'>
  270.39 -        <ref name='Coordinate.datatype'/>
  270.40 -      </attribute>
  270.41 -    </optional>
  270.42 -    <optional>
  270.43 -      <attribute name='my'>
  270.44 -        <ref name='Coordinate.datatype'/>
  270.45 -      </attribute>
  270.46 -    </optional>
  270.47 -    <optional>
  270.48 -      <attribute name='mw'>
  270.49 -        <ref name='Length.datatype'/>
  270.50 -      </attribute>
  270.51 -    </optional>
  270.52 -    <optional>
  270.53 -      <attribute name='mh'>
  270.54 -        <ref name='Length.datatype'/>
  270.55 -      </attribute>
  270.56 -    </optional>
  270.57 -    <optional>
  270.58 -      <attribute name='filterRes'>
  270.59 -        <ref name='NumberOptionalNumber.datatype'/>
  270.60 -      </attribute>
  270.61 -    </optional>
  270.62 -    <optional>
  270.63 -      <attribute name='filterUnits'>
  270.64 -        <choice>
  270.65 -          <value>userSpaceOnUse</value>
  270.66 -          <value>objectBoundingBox</value>
  270.67 -        </choice>
  270.68 -      </attribute>
  270.69 -    </optional>
  270.70 -    <optional>
  270.71 -      <attribute name='primitiveUnits'>
  270.72 -        <choice>
  270.73 -          <value>userSpaceOnUse</value>
  270.74 -          <value>objectBoundingBox</value>
  270.75 -        </choice>
  270.76 -      </attribute>
  270.77 -    </optional>
  270.78 -    <optional>
  270.79 -      <attribute name='filterMarginsUnits'>
  270.80 -        <choice>
  270.81 -          <value>userSpaceOnUse</value>
  270.82 -          <value>objectBoundingBox</value>
  270.83 -        </choice>
  270.84 -      </attribute>
  270.85 -    </optional>	
  270.86 -    <optional>
  270.87 -      <attribute name='primitiveMarginsUnits'>
  270.88 -        <choice>
  270.89 -          <value>userSpaceOnUse</value>
  270.90 -          <value>objectBoundingBox</value>
  270.91 -        </choice>
  270.92 -      </attribute>
  270.93 -    </optional>	
  270.94 -  </define>
   271.1 --- a/master/rng/filter-primitive-attr	Thu Feb 24 10:19:12 2011 +0000
   271.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   271.3 @@ -1,52 +0,0 @@
   271.4 -  <define name='svg.FilterPrimitive.attrib'>
   271.5 -    <optional>
   271.6 -      <attribute name='x'>
   271.7 -        <ref name='Coordinate.datatype'/>
   271.8 -      </attribute>
   271.9 -    </optional>
  271.10 -    <optional>
  271.11 -      <attribute name='y'>
  271.12 -        <ref name='Coordinate.datatype'/>
  271.13 -      </attribute>
  271.14 -    </optional>
  271.15 -    <optional>
  271.16 -      <attribute name='width'>
  271.17 -        <ref name='Length.datatype'/>
  271.18 -      </attribute>
  271.19 -    </optional>
  271.20 -    <optional>
  271.21 -      <attribute name='height'>
  271.22 -        <ref name='Length.datatype'/>
  271.23 -      </attribute>
  271.24 -    </optional>
  271.25 -    <optional>
  271.26 -      <attribute name='mx'>
  271.27 -        <ref name='Coordinate.datatype'/>
  271.28 -      </attribute>
  271.29 -    </optional>
  271.30 -    <optional>
  271.31 -      <attribute name='my'>
  271.32 -        <ref name='Coordinate.datatype'/>
  271.33 -      </attribute>
  271.34 -    </optional>
  271.35 -    <optional>
  271.36 -      <attribute name='mw'>
  271.37 -        <ref name='Length.datatype'/>
  271.38 -      </attribute>
  271.39 -    </optional>
  271.40 -    <optional>
  271.41 -      <attribute name='mh'>
  271.42 -        <ref name='Length.datatype'/>
  271.43 -      </attribute>
  271.44 -    </optional>
  271.45 -    <optional>
  271.46 -      <attribute name='result'/>
  271.47 -    </optional>
  271.48 -  </define>
  271.49 -  
  271.50 -  <define name='svg.FilterPrimitiveWithIn.attrib'>
  271.51 -    <ref name='svg.FilterPrimitive.attrib'/>
  271.52 -    <optional>
  271.53 -      <attribute name='in'/>
  271.54 -    </optional>
  271.55 -  </define>
   272.1 --- a/master/style/W3C-WD.css	Thu Feb 24 10:19:12 2011 +0000
   272.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   272.3 @@ -1,89 +0,0 @@
   272.4 -
   272.5 -/* Style for a public "Working Draft" */
   272.6 -
   272.7 -/*
   272.8 -   Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
   272.9 -   The following software licensing rules apply:
  272.10 -   http://www.w3.org/Consortium/Legal/copyright-software */
  272.11 -
  272.12 -/* $Id$ */
  272.13 -
  272.14 -
  272.15 -body {
  272.16 -  padding: 2em 1em 2em 70px;
  272.17 -  margin: 0;
  272.18 -  font-family: sans-serif;
  272.19 -  color: black;
  272.20 -  background: white;
  272.21 -  background-position: top left;
  272.22 -  background-attachment: fixed;
  272.23 -  background-repeat: no-repeat;
  272.24 -}
  272.25 -:link { color: #00C; background: transparent }
  272.26 -:visited { color: #609; background: transparent }
  272.27 -a:active { color: #C00; background: transparent }
  272.28 -
  272.29 -a:link img, a:visited img { border-style: none } /* no border on img links */
  272.30 -
  272.31 -a img { color: white; }        /* trick to hide the border in Netscape 4 */
  272.32 -@media all {                   /* hide the next rule from Netscape 4 */
  272.33 -  a img { color: inherit; }    /* undo the color change above */
  272.34 -}
  272.35 -
  272.36 -th, td { /* ns 4 */
  272.37 -  font-family: sans-serif;
  272.38 -}
  272.39 -
  272.40 -h1, h2, h3, h4, h5, h6 { text-align: left }
  272.41 -/* background should be transparent, but WebTV has a bug */
  272.42 -h1, h2, h3 { color: #005A9C; background: white }
  272.43 -h1 { font: 170% sans-serif }
  272.44 -h2 { font: 140% sans-serif }
  272.45 -h3 { font: 120% sans-serif }
  272.46 -h4 { font: bold 100% sans-serif }
  272.47 -h5 { font: italic 100% sans-serif }
  272.48 -h6 { font: small-caps 100% sans-serif }
  272.49 -
  272.50 -.hide { display: none }
  272.51 -
  272.52 -div.head { margin-bottom: 1em }
  272.53 -div.head h1 { margin-top: 2em; clear: both }
  272.54 -div.head table { margin-left: 2em; margin-top: 2em }
  272.55 -
  272.56 -p.copyright { font-size: small }
  272.57 -p.copyright small { font-size: small }
  272.58 -
  272.59 -@media screen {  /* hide from IE3 */
  272.60 -a[href]:hover { background: #ffa }
  272.61 -}
  272.62 -
  272.63 -pre { margin-left: 2em }
  272.64 -/*
  272.65 -p {
  272.66 -  margin-top: 0.6em;
  272.67 -  margin-bottom: 0.6em;
  272.68 -}
  272.69 -*/
  272.70 -dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  272.71 -dt { font-weight: bold }
  272.72 -
  272.73 -pre, code { font-family: monospace } /* navigator 4 requires this */
  272.74 -
  272.75 -ul.toc {
  272.76 -  list-style: disc;		/* Mac NS has problem with 'none' */
  272.77 -  list-style: none;
  272.78 -}
  272.79 -
  272.80 -@media aural {  
  272.81 -  h1, h2, h3 { stress: 20; richness: 90 }
  272.82 -  .hide { speak: none }
  272.83 -  p.copyright { volume: x-soft; speech-rate: x-fast }
  272.84 -  dt { pause-before: 20% }
  272.85 -  pre { speak-punctuation: code } 
  272.86 -}
  272.87 -
  272.88 -
  272.89 -
  272.90 -body {
  272.91 -  background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD);
  272.92 -}
   273.1 --- a/master/style/expanders.js	Thu Feb 24 10:19:12 2011 +0000
   273.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   273.3 @@ -1,32 +0,0 @@
   273.4 -function expand(e) {
   273.5 -  e = e.parentNode;
   273.6 -  e.parentNode.removeAttribute('class');
   273.7 -  e.style.display = "none";
   273.8 -  e.nextSibling.style.display = "inline";
   273.9 -}
  273.10 -
  273.11 -(function() {
  273.12 -  var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span');
  273.13 -  for (i = 0; i != l.length; i++) {
  273.14 -    e0 = l[i];
  273.15 -    if (e0.getAttribute('class') == 'expanding') {
  273.16 -      a.push(e0);
  273.17 -    }
  273.18 -  }
  273.19 -  for (i = 0; i != a.length; i++) {
  273.20 -    e0 = a[i];
  273.21 -    e1 = document.createElement('span');
  273.22 -    e1.setAttribute('class', 'expander');
  273.23 -    e1.setAttribute('onclick', 'expand(event.target)');
  273.24 -    e1p = document.createElement('span');
  273.25 -    e1p.textContent = ' ';
  273.26 -    e1p.appendChild(e1);
  273.27 -    e2 = document.createElement('span');
  273.28 -    e2.style.display = 'none';
  273.29 -    while (e0.firstChild) {
  273.30 -      e2.appendChild(e0.firstChild);
  273.31 -    }
  273.32 -    e0.appendChild(e1p);
  273.33 -    e0.appendChild(e2);
  273.34 -  }
  273.35 -})();
   274.1 --- a/master/style/svg-style-extra.css	Thu Feb 24 10:19:12 2011 +0000
   274.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   274.3 @@ -1,179 +0,0 @@
   274.4 -body { line-height: 1.3; }
   274.5 -
   274.6 -.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em }
   274.7 -.element-summary-name { float: right; font-size: 110% }
   274.8 -.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; }
   274.9 -.element-summary * + dt { margin-top: 0.5em; }
  274.10 -.element-summary dd { margin-top: 0; }
  274.11 -.element-summary ul.no-bullets { list-style: none; padding-left: 0em }
  274.12 -.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; }
  274.13 -.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% }
  274.14 -.expander { }
  274.15 -.expander:active { color: #C00 }
  274.16 -.expander:hover { background: #ffa }
  274.17 -.expander:after { content: 'show »' }
  274.18 -
  274.19 -.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% }
  274.20 -
  274.21 -pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ }
  274.22 -pre.idl a:link, pre.idl a:visited { color: black; }
  274.23 -
  274.24 -dl.interface dt {
  274.25 -  margin-top: 1em;
  274.26 -}
  274.27 -
  274.28 -dl.interface dl.attributes > dt,
  274.29 -dl.interface dl.constants > dt,
  274.30 -dl.interface dl.operations > dt {
  274.31 -  margin-top: 2em;
  274.32 -}
  274.33 -
  274.34 -dl.interface dl.attributes > dt,
  274.35 -dl.interface dl.constants > dt,
  274.36 -dl.interface dl.operations > dt,
  274.37 -dl.interface ol.parameters > li,
  274.38 -dl.interface dl.exceptions > dt {
  274.39 -  font-weight: normal;
  274.40 -  display: list-item;
  274.41 -}
  274.42 -
  274.43 -dl.interface dl.attributes > dt:first-child,
  274.44 -dl.interface dl.constants > dt:first-child,
  274.45 -dl.interface dl.operations > dt:first-child,
  274.46 -dl.interface ol.parameters > li:first-child,
  274.47 -dl.interface dl.exceptions > dt:first-child {
  274.48 -  margin-top: 0;
  274.49 -}
  274.50 -
  274.51 -dl.interface dl.attributes > dd,
  274.52 -dl.interface dl.constants > dd,
  274.53 -dl.interface dl.operations > dd,
  274.54 -dl.interface ol.parameters > li,
  274.55 -dl.interface dl.exceptions > dd {
  274.56 -  margin-top: 0.5em;
  274.57 -  margin-left: 0;
  274.58 -}
  274.59 -
  274.60 -dl.interface dl.attribute {
  274.61 -  /*margin-left: 2em;*/
  274.62 -}
  274.63 -
  274.64 -dl.interface dd > *:first-child,
  274.65 -dl.interface ol.parameters > li,
  274.66 -dl.interface ol.parameters > li > *:first-child + * {
  274.67 -  margin-top: 0;
  274.68 -}
  274.69 -
  274.70 -ol.parameters > li > .parameter {
  274.71 -  float: left;
  274.72 -}
  274.73 -
  274.74 -ol.parameters > li > .parameter::after {
  274.75 -  content: " — ";
  274.76 -}
  274.77 -
  274.78 -.idl .keyword {
  274.79 -  /*font-weight: bold;*/
  274.80 -}
  274.81 -
  274.82 -.idlattr, .idlattr:link, .idlattr:visited {
  274.83 -  background: #d9e8ff;
  274.84 -  color: black;
  274.85 -}
  274.86 -
  274.87 -ol.parameters {
  274.88 -  list-style-type: disc;
  274.89 -  padding-left: 0;
  274.90 -}
  274.91 -
  274.92 -var {
  274.93 -  font-style: italic;
  274.94 -}
  274.95 -
  274.96 -dl.definitions > dt,
  274.97 -.adef-list dl > dt { margin-top: 1em; }
  274.98 -
  274.99 -dl.definitions > dt + dt,
 274.100 -.adef-list dl > dt + dt { margin-top: 0; }
 274.101 -
 274.102 -dl.definitions > dd > :first-child,
 274.103 -.adef-list dl > dd > :first-child { margin-top: 0; }
 274.104 -
 274.105 -table.vert {
 274.106 -  border-collapse: collapse;
 274.107 -  border-top: 2px solid #005a9c;
 274.108 -  border-bottom: 2px solid #005a9c;
 274.109 -  margin-top: 1em;
 274.110 -  margin-bottom: 1em;
 274.111 -  margin-left: auto;
 274.112 -  margin-right: auto;
 274.113 -}
 274.114 -table.vert td {
 274.115 -  background: #f0f6ff;
 274.116 -}
 274.117 -table.vert th {
 274.118 -  text-align: left;
 274.119 -  vertical-align: bottom;
 274.120 -  border-bottom: 2px solid #005a9c;
 274.121 -  white-space: nowrap;
 274.122 -  color: #d9e8ff;
 274.123 -  background: #005a9c;
 274.124 -}
 274.125 -table.vert th a:link,
 274.126 -table.vert th a:visited { color: #d9e8ff; }
 274.127 -table.vert th a:hover { color: black; }
 274.128 -table.vert th, table.vert td { padding: 0.5em 0.75em; }
 274.129 -table.vert th .attr-name { color: white }
 274.130 -table.vert th a:hover .element-name { color: #2A2AA5 }
 274.131 -table.vert th .prop-name { color: white }
 274.132 -table.vert th a:hover .element-name { color: black }
 274.133 -table.vert th .element-name { color: white }
 274.134 -table.vert th a:hover .element-name { color: #A52A2A }
 274.135 -table.vert td { vertical-align: top; }
 274.136 -table.offset { margin-left: 2em; margin-right: 2em; }
 274.137 -.indented {
 274.138 -  margin-left: 2em;
 274.139 -}
 274.140 -.math var, .math sub, .math sup {
 274.141 -  font-family: serif;
 274.142 -}
 274.143 -.separated {
 274.144 -  word-spacing: 1em;
 274.145 -}
 274.146 -.familyname {
 274.147 -  text-transform: uppercase;
 274.148 -}
 274.149 -
 274.150 -dl.unemphasized-names > dt > a { font-weight: normal }
 274.151 -
 274.152 -.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right }
 274.153 -.header.top { border-top: 1px solid #ccc }
 274.154 -.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em }
 274.155 -.header .namedate { display: block; float: left }
 274.156 -.header ul { display: block; margin: 0 }
 274.157 -.header ul li { display: inline; margin: 0 }
 274.158 -.header ul li:first-child::before { content: none }
 274.159 -.header ul li::before { content: ' â‹… ' }
 274.160 -.header .after { display: block; clear: both; height: 1px }
 274.161 -.header .after::before { content: ' ' }
 274.162 -
 274.163 -table.property-table { font-size: 90%; border-collapse: collapse }
 274.164 -table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) }
 274.165 -.tocline1 { font-weight: bold }
 274.166 -/* .toc { margin-bottom: 0.5em } */
 274.167 -
 274.168 -.idl-type-parenthetical { font-size: 90% }
 274.169 -td > :first-child,
 274.170 -th > :first-child { margin-top: 0 }
 274.171 -td p {
 274.172 -  margin-top: 1em;
 274.173 -  margin-bottom: 0;
 274.174 -}
 274.175 -
 274.176 -table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em }
 274.177 -table.collection th { background: #eee }
 274.178 -table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline }
 274.179 -
 274.180 -ol.notes { list-style-type: none; padding-left: 0 }
 274.181 -
 274.182 -.colorpatch { width: 14px; height:14px; border: 1px solid black; }
   275.1 --- a/master/style/svg-style.css	Thu Feb 24 10:19:12 2011 +0000
   275.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   275.3 @@ -1,454 +0,0 @@
   275.4 -/*
   275.5 - * style sheet for svg specification
   275.6 - */
   275.7 -
   275.8 -
   275.9 -body {
  275.10 -    color: black;
  275.11 -    /* text-align: justify; */
  275.12 -    font-family: helvetica, sans-serif;
  275.13 -    background: white;
  275.14 -    margin: 2em;
  275.15 -    /* for the rec: background: #def url(recbg.jpg); */
  275.16 -}
  275.17 -.navlinks {
  275.18 -    text-align: center;
  275.19 -}
  275.20 -h2, h3, h4, h5, h6 {
  275.21 -    text-align: left;
  275.22 -}
  275.23 -
  275.24 -.header {
  275.25 -  text-align: right;
  275.26 -  border-bottom: 1px solid #aaa;
  275.27 -  padding-bottom: 0.5em;
  275.28 -  font-size: 80%;
  275.29 -}
  275.30 -
  275.31 -.footer {
  275.32 -  text-align: right;
  275.33 -  margin-top: 1em;
  275.34 -  border-top: 1px solid #aaa;
  275.35 -  padding-top: 0.5em;
  275.36 -  font-size: 80%;
  275.37 -}
  275.38 -
  275.39 -.header ul, .footer ul {
  275.40 -  display: inline;
  275.41 -  padding: 0;
  275.42 -}
  275.43 -
  275.44 -.header li, .footer li {
  275.45 -  display: inline;
  275.46 -  border-left: 1px solid #aaa;
  275.47 -  padding-left: 0.2em;
  275.48 -}
  275.49 -
  275.50 -h1 {
  275.51 -    clear: left;
  275.52 -    margin-top: 1em;
  275.53 -    text-align: center;
  275.54 -}
  275.55 -
  275.56 -pre { margin-left: 2em }
  275.57 -pre {
  275.58 -    color: #a52a2a;
  275.59 -    font-family: monospace;
  275.60 -    font-size: 90%
  275.61 -}
  275.62 -pre.svgsamplecompressed {
  275.63 -    font-size: 75%;
  275.64 -    letter-spacing: -.05em;
  275.65 -    line-height: 95%
  275.66 -}
  275.67 -pre strong {
  275.68 -    color: #004400;
  275.69 -    font-weight: bold
  275.70 -}
  275.71 -.filterformula {
  275.72 -    color: #a52a2a;
  275.73 -    font-family: monospace;
  275.74 -    font-size: 90%;
  275.75 -    margin-left: 2em
  275.76 -}
  275.77 -
  275.78 -div.dtd-fragment { 
  275.79 -    background-color: #dddddd;
  275.80 -    margin-left: 0;
  275.81 -}
  275.82 -.dtd-fragment { 
  275.83 -    background-color: #dddddd;
  275.84 -    margin-left: 0;
  275.85 -}
  275.86 -.idl-code { 
  275.87 -  margin: 0;
  275.88 -  font-family: monospace;
  275.89 -	border: 1px solid black;
  275.90 -	white-space: pre;
  275.91 -	color: black; 
  275.92 -	background-color: #dfdfdf;
  275.93 -}
  275.94 -
  275.95 -.adef {
  275.96 -    font-family: monospace;
  275.97 -	font-weight: bold;
  275.98 -}
  275.99 -
 275.100 -
 275.101 -address {
 275.102 -    text-align: right;
 275.103 -    font-style: italic;
 275.104 -}
 275.105 -
 275.106 -var {
 275.107 -    font-style: normal;
 275.108 -}
 275.109 -img {
 275.110 -    border: 0;
 275.111 -}
 275.112 -.toc {
 275.113 -    text-indent: 0;
 275.114 -}
 275.115 -.toc2 {
 275.116 -    text-indent: 2em;
 275.117 -}
 275.118 -.toc3 {
 275.119 -    text-indent: 4em;
 275.120 -}
 275.121 -p.toc-line {
 275.122 -    margin-top: 1em;
 275.123 -    margin-bottom: 1em;
 275.124 -    text-indent: 0;
 275.125 -}
 275.126 -
 275.127 -/* it should be 'inherit', but netscape inserts a random color :-( */
 275.128 -a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/}
 275.129 -div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/}
 275.130 -div.deprecated-html-example a:link,
 275.131 -div.deprecated-html-example a:visited {color: red; /*color: inherit*/}
 275.132 -.note a:link, .note a:visited {color: green; /*color: inherit*/}
 275.133 -
 275.134 -a.propdef-title {
 275.135 -  background: yellow;
 275.136 -}
 275.137 -
 275.138 -a.descdef-title {
 275.139 -  color: yellow;
 275.140 -  background: green
 275.141 -}
 275.142 -
 275.143 -/* table {margin-left: 1em} */
 275.144 -div.propdef {margin: 1.2em 0}
 275.145 -
 275.146 -.example {
 275.147 -  padding: 0;
 275.148 -  background: white;
 275.149 -}
 275.150 -
 275.151 -.exampleheader {
 275.152 -  margin: 0;
 275.153 -  background: #dda;
 275.154 -  border-bottom: 1px solid #666;
 275.155 -  border-right: 1px solid #666;
 275.156 -  border-top: 1px solid #aaa;
 275.157 -  border-left: 1px solid #aaa;
 275.158 -  padding: 0.5em 1em;
 275.159 -}
 275.160 -
 275.161 -.examplesource {
 275.162 -  padding: 0;
 275.163 -  margin: 0;
 275.164 -  background: #ffc;
 275.165 -  border-bottom: 1px solid #996;
 275.166 -  border-right: 1px solid #996;
 275.167 -  border-top: 1px solid #bb8;
 275.168 -  border-left: 1px solid #bb8;
 275.169 -}
 275.170 -
 275.171 -.examplesource pre {
 275.172 -  background: none;
 275.173 -  color: #633;
 275.174 -  margin: 0 1em;
 275.175 -  padding: 0.5em 0 0 0;
 275.176 -}
 275.177 -
 275.178 -.exampleimage {
 275.179 -  text-align: center;
 275.180 -  padding: 1em;
 275.181 -  border-bottom: 1px solid #996;
 275.182 -  border-right: 1px solid #996;
 275.183 -  border-top: 1px solid #bb8;
 275.184 -  border-left: 1px solid #bb8;
 275.185 -}
 275.186 -
 275.187 -.schema {
 275.188 -  padding: 0;
 275.189 -  background: white;
 275.190 -  width: 100%;
 275.191 -}
 275.192 -
 275.193 -.schemaheader {
 275.194 -  margin: 0;
 275.195 -  background: #ccc;
 275.196 -  border-bottom: 1px solid #666;
 275.197 -  border-right: 1px solid #666;
 275.198 -  border-top: 1px solid #aaa;
 275.199 -  border-left: 1px solid #aaa;
 275.200 -  padding: 0.5em 1em;
 275.201 -}
 275.202 -
 275.203 -.schemasource {
 275.204 -  padding: 0;
 275.205 -  margin: 0;
 275.206 -  background: #ddd;
 275.207 -  border-bottom: 1px solid #666;
 275.208 -  border-right: 1px solid #666;
 275.209 -  border-top: 1px solid #aaa;
 275.210 -  border-left: 1px solid #aaa;
 275.211 -}
 275.212 -
 275.213 -.schemasource pre {
 275.214 -  background: none;
 275.215 -  color: #030;
 275.216 -  margin: 0 1em;
 275.217 -  padding: 0.5em 0 0 0;
 275.218 -}
 275.219 -
 275.220 -pre.example { color: maroon }
 275.221 -pre.illegal-example { color: red }
 275.222 -div.illegal-example { color: red }
 275.223 -div.illegal-example p { color: black }
 275.224 -
 275.225 -
 275.226 -div.html-example { color: maroon }
 275.227 -pre.html-example { color: maroon }
 275.228 -pre.illegal-html-example { color: red }
 275.229 -div.illegal-html-example { color: red }
 275.230 -div.illegal-html-example p { color: black }
 275.231 -pre.deprecated-html-example { color: red }
 275.232 -div.deprecated-html-example { color: red }
 275.233 -div.deprecated-html-example p { color: black }
 275.234 -
 275.235 -div.xml-example { color: maroon }
 275.236 -pre.xml-example { color: maroon }
 275.237 -pre.illegal-xml-example { color: red }
 275.238 -div.illegal-xml-example { color: red }
 275.239 -div.illegal-xml-example p { color: black }
 275.240 -
 275.241 -div.dtd-example { color: maroon }
 275.242 -pre.dtd-example { color: maroon }
 275.243 -pre.illegal-dtd-example { color: red }
 275.244 -div.illegal-dtd-example { color: red }
 275.245 -div.illegal-dtd-example p { color: black }
 275.246 -
 275.247 -.note {
 275.248 -    font-weight: bold;
 275.249 -    margin-top: 1em;
 275.250 -    margin-bottom: 1em;
 275.251 -    margin-left: 1em;
 275.252 -    margin-right: 1em;
 275.253 -	background: #6f9 none repeat scroll 0%; 
 275.254 -	color: black; 
 275.255 -}
 275.256 -
 275.257 -.requirement {
 275.258 -    margin-top: 1em;
 275.259 -    margin-bottom: 1em;
 275.260 -    margin-left: 1em;
 275.261 -    margin-right: 1em;
 275.262 -	background: #fad none repeat scroll 0%; 
 275.263 -	color: black; 
 275.264 -}
 275.265 -
 275.266 -.normref { 
 275.267 -    color: red;
 275.268 -}	
 275.269 -
 275.270 -.informref {
 275.271 -    color: green;
 275.272 -}	
 275.273 -
 275.274 -div.propdef th { 
 275.275 -    text-align: right; 
 275.276 -}
 275.277 -
 275.278 -div.descdef th { 
 275.279 -    text-align: right; 
 275.280 -}
 275.281 -
 275.282 -ul.toc, ol.toc {list-style: none}
 275.283 -div.toc ul ul, div.toc ol ol {margin-left: 0}
 275.284 -div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em}
 275.285 -div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0}
 275.286 -li.tocline1 {font-weight: bold}
 275.287 -li.tocline2 {font-weight: normal}
 275.288 -li.tocline4 {font-style: italic}
 275.289 -/* div.subtoc ul, div.subtoc ol {list-style: none} */
 275.290 -/* the border in the following rule crashes nn4 on fonts.html :-(
 275.291 -div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0;
 275.292 -    background: #ddd}
 275.293 -*/
 275.294 -ul.index {list-style: none}
 275.295 -
 275.296 -s, del {text-decoration: line-through; color: red}
 275.297 -u, ins {text-decoration: underline; background: #bfa}
 275.298 -
 275.299 -div.figure {
 275.300 -    text-align: center;
 275.301 -    /*border: solid thin;
 275.302 -    width: 100%;*/
 275.303 -    margin: 2.5em 0
 275.304 -}
 275.305 -p.caption, caption {
 275.306 -    text-align: center;
 275.307 -    font-style: italic;
 275.308 -    font-weight: bold;
 275.309 -    font-size: 90%;
 275.310 -    color: #088;
 275.311 -    margin: 1.5em 25% 0 25%;
 275.312 -}
 275.313 -div.toc, ul.index, dt {
 275.314 -    text-align: left
 275.315 -}
 275.316 -sup {
 275.317 -    vertical-align: super;
 275.318 -    font-size: 80%
 275.319 -}
 275.320 -.code-fragment {
 275.321 -	color: #a52a2a;
 275.322 -	font-weight: bold;
 275.323 -    font-size: 90%
 275.324 -}
 275.325 -.element-name {
 275.326 -	color: #a52a2a;
 275.327 -	font-weight: bold;
 275.328 -    font-size: 90%
 275.329 -}
 275.330 -.attr-name {
 275.331 -	color: #2a2aa5;
 275.332 -	font-weight: bold;
 275.333 -    font-size: 90%
 275.334 -}
 275.335 -.prop-name {
 275.336 -	color: black;
 275.337 -	font-weight: bold;
 275.338 -    font-size: 90%
 275.339 -}
 275.340 -.attr-value, .prop-value {
 275.341 -	font-weight: bold;
 275.342 -    font-size: 90%
 275.343 -}
 275.344 -/*
 275.345 -.svg-term {
 275.346 -    color: red;
 275.347 -	font-weight: bold
 275.348 -}
 275.349 -*/
 275.350 -.svg-termdefine {
 275.351 -	font-weight: bold
 275.352 -}
 275.353 -.example-ref {
 275.354 -	color: green;
 275.355 -}
 275.356 -.anim-target { 
 275.357 -    font-style: italic 
 275.358 -}
 275.359 -.dominterfacename {
 275.360 -        font-weight: bold
 275.361 -}
 275.362 -.dom-attr-name {
 275.363 -        color: black;
 275.364 -        background-color: #ffffd2;
 275.365 -}
 275.366 -.dom-attr-type, .dom-attr-value {
 275.367 -        color: black;
 275.368 -        font-weight: bold;
 275.369 -}
 275.370 -.dom-method-name {
 275.371 -        color: black;
 275.372 -        background-color: #d9e6f8;
 275.373 -}
 275.374 -.dom-parameter-name {
 275.375 -	margin-top: 1%;
 275.376 -        background-color: #fee6f8; 
 275.377 -        color: black;
 275.378 -}
 275.379 -.math-variable {
 275.380 -    font-family:times,serif
 275.381 -}
 275.382 -.color-keyword-value {
 275.383 -	color: #a52a2a;
 275.384 -}
 275.385 -.view-as-svg {
 275.386 -  font-style:italic
 275.387 -}
 275.388 -.table-heading-1 {
 275.389 -  font-style:italic; 
 275.390 -  text-align:center
 275.391 -}
 275.392 -.pathdatatable { 
 275.393 -  background: #dddddd 
 275.394 -}
 275.395 -.useruleapplied {
 275.396 -  font-style:normal; 
 275.397 -  font-weight:bold; 
 275.398 -  color:blue
 275.399 -}
 275.400 -.useruleignored {
 275.401 -  font-style:italic; 
 275.402 -  font-weight:bold; 
 275.403 -  color:#050;
 275.404 -}
 275.405 -
 275.406 -.editor { text-decoration: underline; font-size: 85% }
 275.407 -.editor-intro { color: red; font-weight: bold }
 275.408 -.editor-rec { color: red; font-weight: bold }
 275.409 -.designgoals { list-style-type: upper-alpha }
 275.410 -.reqt-level0 { list-style-type: decimal; font-weight: bold }
 275.411 -.reqt-level1 { list-style-type: lower-alpha; font-weight: normal }
 275.412 -.reqt-level2 { list-style-type: lower-roman; font-weight: normal }
 275.413 -
 275.414 -.b4nomfix { color: #a52a2a; text-decoration: line-through }
 275.415 -.afnomfix { color: red; }
 275.416 -
 275.417 -div.note,p.note { 
 275.418 -	border: 2px dotted #3c6; 
 275.419 -	padding: 0.5em; 
 275.420 -}
 275.421 -
 275.422 -.specissue { 
 275.423 -	border-style: solid; 
 275.424 -	border-color: black; 
 275.425 -	border-width: 1px 1px 1px 4px; 
 275.426 -	padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 
 275.427 -}
 275.428 -
 275.429 -.svgt12 { 
 275.430 -	background: rgb(153, 223, 255) none repeat scroll 0%; 
 275.431 -	color: black; 
 275.432 -}
 275.433 -
 275.434 -a[href="http://www.w3.org/TR/SVG10/"] { background: red; }
 275.435 -a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; }
 275.436 -a[href="http://www.w3.org/SVGMobile12/"] { background: green; }
 275.437 -
 275.438 -.new {
 275.439 -	border-style: solid;
 275.440 -	border-color: green;
 275.441 -	border-width: 0px 0px 0px 4px;
 275.442 -	padding-left: 20px;
 275.443 -	margin-left: -20px;
 275.444 -}
 275.445 -
 275.446 -.changed {
 275.447 -	border-style: solid;
 275.448 -	border-color: blue;
 275.449 -	border-width: 0px 0px 0px 4px;
 275.450 -	padding-left: 20px;
 275.451 -	margin-left: -20px;
 275.452 -}
 275.453 -
 275.454 -div.note-editor
 275.455 -{
 275.456 -	display:none;
 275.457 -}
   276.1 --- a/master/style/svgspec.css	Thu Feb 24 10:19:12 2011 +0000
   276.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   276.3 @@ -1,105 +0,0 @@
   276.4 -.term {
   276.5 -    FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white
   276.6 -}
   276.7 -PRE {
   276.8 -    FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white
   276.9 -}
  276.10 -PRE.schema {
  276.11 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  276.12 -}
  276.13 -PRE.example {
  276.14 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  276.15 -}
  276.16 -.dtd-fragment {
  276.17 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd
  276.18 -}
  276.19 -.idl-code {
  276.20 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf
  276.21 -}
  276.22 -.adef {
  276.23 -    FONT-WEIGHT: bold; FONT-FAMILY: monospace
  276.24 -}
  276.25 -IMG {
  276.26 -    BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px
  276.27 -}
  276.28 -.toc {
  276.29 -    TEXT-INDENT: 0px
  276.30 -}
  276.31 -.toc2 {
  276.32 -    TEXT-INDENT: 2em
  276.33 -}
  276.34 -.toc3 {
  276.35 -    TEXT-INDENT: 4em
  276.36 -}
  276.37 -P.toc-line {
  276.38 -    MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px
  276.39 -}
  276.40 -.example {
  276.41 -    COLOR: maroon; BACKGROUND-COLOR: white
  276.42 -}
  276.43 -.pseudocode {
  276.44 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff
  276.45 -}
  276.46 -.algorithm OL {
  276.47 -    LIST-STYLE-TYPE: decimal
  276.48 -}
  276.49 -.algorithm OL LI {
  276.50 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  276.51 -}
  276.52 -.algorithm OL LI OL {
  276.53 -    LIST-STYLE-TYPE: lower-alpha
  276.54 -}
  276.55 -.algorithm OL LI OL LI {
  276.56 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  276.57 -}
  276.58 -.algorithm OL LI OL LI OL {
  276.59 -    LIST-STYLE-TYPE: lower-roman
  276.60 -}
  276.61 -.algorithm OL LI OL LI OL LI {
  276.62 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  276.63 -}
  276.64 -.note {
  276.65 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid
  276.66 -}
  276.67 -P.caption {
  276.68 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  276.69 -}
  276.70 -CAPTION {
  276.71 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  276.72 -}
  276.73 -.element {
  276.74 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white
  276.75 -}
  276.76 -.type {
  276.77 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  276.78 -}
  276.79 -.attribute {
  276.80 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white
  276.81 -}
  276.82 -.property {
  276.83 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white
  276.84 -}
  276.85 -.attribute-value {
  276.86 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  276.87 -}
  276.88 -.property-value {
  276.89 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  276.90 -}
  276.91 -.interface {
  276.92 -    FONT-WEIGHT: bold
  276.93 -}
  276.94 -.dom-attribute {
  276.95 -    COLOR: black; BACKGROUND-COLOR: #ffffd2
  276.96 -}
  276.97 -.dom-attribute-type {
  276.98 -    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
  276.99 -}
 276.100 -.dom-attribute-value {
 276.101 -    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
 276.102 -}
 276.103 -.dom-method {
 276.104 -    COLOR: black; BACKGROUND-COLOR: #d9e6f8
 276.105 -}
 276.106 -.dom-parameter {
 276.107 -    COLOR: black; BACKGROUND-COLOR: #fee6f8
 276.108 -}
   277.1 --- a/master/svgfilters.idd	Thu Feb 24 10:19:12 2011 +0000
   277.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   277.3 @@ -1,30 +0,0 @@
   277.4 -[svg]
   277.5 -[svg::SVGSVGElement::createSVGRect]
   277.6 -Creates a new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> object. This object can be used to modify the value of traits which are compatible with the <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>
   277.7 - type using the <a href="#svg__TraitAccess_setRectTrait"><code>setRectTrait</code></a> method. The initial values for <a href="#svg__SVGRect_x"><code>x</code></a>, <a href="#svg__SVGRect_y"><code>y</code></a>, <a href="#svg__SVGRect_width"><code>width</code></a>, <a href="#svg__SVGRect_height"><code>height</code></a> of this new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> are zero.
   277.8 -
   277.9 -     <dl>
  277.10 -       <dt><span class="dom-parameters">No Parameters</span></dt>
  277.11 -     </dl>
  277.12 -
  277.13 -
  277.14 -     <dl>
  277.15 -       <dt><span class="dom-returnvalue">Return value</span></dt>
  277.16 -       <dd>
  277.17 -         <table summary="method return value" border="0">
  277.18 -
  277.19 -           <tbody><tr>
  277.20 -             <td valign="top"><span class="dom-returnvalue-type"><a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a></span></td>
  277.21 -             <td>
  277.22 -             </td>
  277.23 -             <td>The created <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>.</td>
  277.24 -           </tr>
  277.25 -         </tbody></table>
  277.26 -       </dd>
  277.27 -
  277.28 -     </dl>
  277.29 -
  277.30 -
  277.31 -     <dl>
  277.32 -       <dt><span class="dom-parameters">No Exceptions</span></dt>
  277.33 -    </dl>
   278.1 --- a/master/svgfilters.idl	Thu Feb 24 10:19:12 2011 +0000
   278.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   278.3 @@ -1,1262 +0,0 @@
   278.4 -// // File: svg.idl
   278.5 -// #ifndef _SVG_IDL_
   278.6 -// #define _SVG_IDL_
   278.7 -// 
   278.8 -// 
   278.9 -// // For access to DOM2 core
  278.10 -// #include "dom.idl"
  278.11 -// 
  278.12 -// // For access to DOM2 events
  278.13 -// #include "events.idl"
  278.14 -// 
  278.15 -// // For access to those parts from DOM2 CSS OM used by SVG DOM.
  278.16 -// #include "css.idl"
  278.17 -// 
  278.18 -// // For access to those parts from DOM2 Views OM used by SVG DOM.
  278.19 -// #include "views.idl"
  278.20 -// 
  278.21 -// // For access to the SMIL OM used by SVG DOM.
  278.22 -// #include "smil.idl"
  278.23 -// 
  278.24 -// #pragma prefix "dom.w3c.org"
  278.25 -// #pragma javaPackage "org.w3c.dom"
  278.26 -
  278.27 -module dom {
  278.28 -  exception DOMException { };
  278.29 -  interface Element { };
  278.30 -  interface Document { };
  278.31 -  interface NodeList { };
  278.32 -};
  278.33 -
  278.34 -module svg
  278.35 -{
  278.36 -  typedef dom::DOMException DOMException;
  278.37 -  typedef dom::Element Element;
  278.38 -  typedef dom::Document Document;
  278.39 -  typedef dom::NodeList NodeList;
  278.40 -  
  278.41 -  /**
  278.42 -   * The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface.
  278.43 -   */
  278.44 -  interface ImageData {
  278.45 -    /**
  278.46 -     * The width of the bitmap that the ImageData represents.
  278.47 -     */
  278.48 -    readonly attribute long width;
  278.49 -    
  278.50 -    /**
  278.51 -     * The height of the bitmap that the ImageData represents.
  278.52 -     */
  278.53 -    readonly attribute long height;
  278.54 -    
  278.55 -    /**
  278.56 -     * An array of pixel values that is the bitmap. This array must
  278.57 -     * always be in the form of width×height×4 integer values. The
  278.58 -     * pixel data is in left-to-right order, starting from the top-left
  278.59 -     * corner, and going row by row downwards. Every pixel is
  278.60 -     * represented by four integer values, red, green, blue and alpha,
  278.61 -     * in that order. The range of each color component is 0..255. The
  278.62 -     * intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 
  278.63 -     * canvas interfaces, in particular see 
  278.64 -     * <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>.
  278.65 -     */
  278.66 -    readonly attribute sequence<octet> data;
  278.67 -  };
  278.68 -
  278.69 -  /**
  278.70 -   * The <a>SVGFilterElement</a> interface corresponds to the <a>'filter element'</a>
  278.71 -   * element.
  278.72 -   */
  278.73 -  interface SVGFilterElement : 
  278.74 -                SVGElement,
  278.75 -                SVGURIReference,
  278.76 -                SVGLangSpace,
  278.77 -                SVGExternalResourcesRequired,
  278.78 -                SVGStylable,
  278.79 -                SVGUnitTypes { 
  278.80 -
  278.81 -    /**
  278.82 -     * Corresponds to attribute <a>'filterUnits'</a> on the given <a>'filter element'</a>
  278.83 -     * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
  278.84 -     */
  278.85 -    readonly attribute SVGAnimatedEnumeration filterUnits;
  278.86 -
  278.87 -    /**
  278.88 -     * Corresponds to attribute <a>'primitiveUnits'</a> on the given <a>'filter element'</a>
  278.89 -     * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
  278.90 -     */
  278.91 -    readonly attribute SVGAnimatedEnumeration primitiveUnits;
  278.92 -
  278.93 -    /**
  278.94 -     * Corresponds to attribute <a>'x'</a> on the given <a>'filter element'</a> element.
  278.95 -     */
  278.96 -    readonly attribute SVGAnimatedLength x;
  278.97 -
  278.98 -    /**
  278.99 -     * Corresponds to attribute <a>'y'</a> on the given <a>'filter element'</a> element.
 278.100 -     */
 278.101 -    readonly attribute SVGAnimatedLength y;
 278.102 -
 278.103 -    /**
 278.104 -     * Corresponds to attribute <a>'width'</a> on the given <a>'filter element'</a> element.
 278.105 -     */
 278.106 -    readonly attribute SVGAnimatedLength width;
 278.107 -
 278.108 -    /**
 278.109 -     * Corresponds to attribute <a>'height'</a> on the given <a>'filter element'</a> element.
 278.110 -     */
 278.111 -    readonly attribute SVGAnimatedLength height;
 278.112 -
 278.113 -    /**
 278.114 -     * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
 278.115 -     * element.  Contains the X component of attribute <a>'filterRes'</a>.
 278.116 -     */
 278.117 -    readonly attribute SVGAnimatedInteger filterResX;
 278.118 -
 278.119 -    /**
 278.120 -     * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
 278.121 -     * element.  Contains the Y component (possibly computed automatically) of
 278.122 -     * attribute <a>'filterRes'</a>.
 278.123 -     */
 278.124 -    readonly attribute SVGAnimatedInteger filterResY;
 278.125 -
 278.126 -    /**
 278.127 -     * Sets the values for attribute <a>'filterRes'</a>.
 278.128 -     *
 278.129 -     * @param filterResX The X component of attribute <a>'filterRes'</a>.
 278.130 -     * @param filterResY The Y component of attribute <a>'filterRes'</a>.
 278.131 -     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 278.132 -     *   to change the value of a readonly attribute.
 278.133 -     */
 278.134 -    void setFilterRes(in unsigned long filterResX, in unsigned long filterResY) raises(DOMException);
 278.135 -	  
 278.136 -	  /**
 278.137 -	   * Applies the filter to the given ImageData object and returns the result.
 278.138 -	   *
 278.139 -	   * @param source The image to apply the filter to.
 278.140 -	   * @return The result of the filter, see <a>ImageData</a> for how to construct this.
 278.141 -	   */
 278.142 -	  ImageData apply(in ImageData source);
 278.143 -  };
 278.144 -
 278.145 -  /**
 278.146 -   * This interface defines the set of DOM attributes that are common across
 278.147 -   * the filter primitive interfaces.
 278.148 -   */
 278.149 -  interface SVGFilterPrimitiveStandardAttributes : SVGStylable { 
 278.150 -
 278.151 -    /**
 278.152 -     * Corresponds to attribute <a>'x'</a> on the given element.
 278.153 -     */
 278.154 -    readonly attribute SVGAnimatedLength x;
 278.155 -
 278.156 -    /**
 278.157 -     * Corresponds to attribute <a>'y'</a> on the given element.
 278.158 -     */
 278.159 -    readonly attribute SVGAnimatedLength y;
 278.160 -
 278.161 -    /**
 278.162 -     * Corresponds to attribute <a>'width'</a> on the given element.
 278.163 -     */
 278.164 -    readonly attribute SVGAnimatedLength width;
 278.165 -
 278.166 -    /**
 278.167 -     * Corresponds to attribute <a>'height'</a> on the given element.
 278.168 -     */
 278.169 -    readonly attribute SVGAnimatedLength height;
 278.170 -
 278.171 -    /**
 278.172 -     * Corresponds to attribute <a>'result'</a> on the given element.
 278.173 -     */
 278.174 -    readonly attribute SVGAnimatedString result;
 278.175 -  };
 278.176 -
 278.177 -  /**
 278.178 -   * The <a>SVGFEBlendElement</a> interface corresponds to the <a>'feBlend'</a>
 278.179 -   * element.
 278.180 -   */
 278.181 -  interface SVGFEBlendElement : 
 278.182 -                SVGElement,
 278.183 -                SVGFilterPrimitiveStandardAttributes { 
 278.184 -
 278.185 -    /**
 278.186 -     * The type is not one of predefined types. It is invalid to attempt to
 278.187 -     * define a new value of this type or to attempt to switch an existing
 278.188 -     * value to this type.
 278.189 -     *
 278.190 -     * @defgroup Blend Mode Types
 278.191 -     */
 278.192 -    const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0;
 278.193 -
 278.194 -    /**
 278.195 -     * Corresponds to value <span class="attr-value">'normal'</span>.
 278.196 -     *
 278.197 -     * @defgroup Blend Mode Types
 278.198 -     */
 278.199 -    const unsigned short SVG_FEBLEND_MODE_NORMAL = 1;
 278.200 -
 278.201 -    /**
 278.202 -     * Corresponds to value <span class="attr-value">'multiply'</span>.
 278.203 -     *
 278.204 -     * @defgroup Blend Mode Types
 278.205 -     */
 278.206 -    const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;
 278.207 -
 278.208 -    /**
 278.209 -     * Corresponds to value <span class="attr-value">'screen'</span>.
 278.210 -     *
 278.211 -     * @defgroup Blend Mode Types
 278.212 -     */
 278.213 -    const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
 278.214 -
 278.215 -    /**
 278.216 -     * Corresponds to value <span class="attr-value">'darken'</span>.
 278.217 -     *
 278.218 -     * @defgroup Blend Mode Types
 278.219 -     */
 278.220 -    const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
 278.221 -
 278.222 -    /**
 278.223 -     * Corresponds to value <span class="attr-value">'lighten'</span>.
 278.224 -     *
 278.225 -     * @defgroup Blend Mode Types
 278.226 -     */
 278.227 -    const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
 278.228 -
 278.229 -    /**
 278.230 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feBlend'</a>
 278.231 -     * element.
 278.232 -     */
 278.233 -    readonly attribute SVGAnimatedString in1;
 278.234 -
 278.235 -    /**
 278.236 -     * Corresponds to attribute <a>'in2'</a> on the given <a>'feBlend'</a>
 278.237 -     * element.
 278.238 -     */
 278.239 -    readonly attribute SVGAnimatedString in2;
 278.240 -
 278.241 -    /**
 278.242 -     * Corresponds to attribute <a>'mode'</a> on the given <a>'feBlend'</a>
 278.243 -     * element.  Takes one of the SVG_FEBLEND_MODE_* constants defined on
 278.244 -     * this interface.
 278.245 -     */
 278.246 -    readonly attribute SVGAnimatedEnumeration mode;
 278.247 -  };
 278.248 -
 278.249 -  /**
 278.250 -   * The <a>SVGFEColorMatrixElement</a> interface corresponds to the
 278.251 -   * <a>'feColorMatrix'</a> element.
 278.252 -   */
 278.253 -  interface SVGFEColorMatrixElement : 
 278.254 -                SVGElement,
 278.255 -                SVGFilterPrimitiveStandardAttributes { 
 278.256 -
 278.257 -    /**
 278.258 -     * The type is not one of predefined types. It is invalid to attempt to
 278.259 -     * define a new value of this type or to attempt to switch an existing
 278.260 -     * value to this type.
 278.261 -     *
 278.262 -     * @defgroup Color Matrix Types
 278.263 -     */
 278.264 -    const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
 278.265 -
 278.266 -    /**
 278.267 -     * Corresponds to value <span class="attr-value">'matrix'</span>.
 278.268 -     *
 278.269 -     * @defgroup Color Matrix Types
 278.270 -     */
 278.271 -    const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
 278.272 -
 278.273 -    /**
 278.274 -     * Corresponds to value <span class="attr-value">'saturate'</span>.
 278.275 -     *
 278.276 -     * @defgroup Color Matrix Types
 278.277 -     */
 278.278 -    const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
 278.279 -
 278.280 -    /**
 278.281 -     * Corresponds to value <span class="attr-value">'hueRotate'</span>.
 278.282 -     *
 278.283 -     * @defgroup Color Matrix Types
 278.284 -     */
 278.285 -    const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
 278.286 -
 278.287 -    /**
 278.288 -     * Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>.
 278.289 -     *
 278.290 -     * @defgroup Color Matrix Types
 278.291 -     */
 278.292 -    const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
 278.293 -
 278.294 -    /**
 278.295 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feColorMatrix'</a>
 278.296 -     * element.
 278.297 -     */
 278.298 -    readonly attribute SVGAnimatedString in1;
 278.299 -
 278.300 -    /**
 278.301 -     * Corresponds to attribute <a>'type'</a> on the given <a>'feColorMatrix'</a>
 278.302 -     * element.  Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined
 278.303 -     * on this interface.
 278.304 -     */
 278.305 -    readonly attribute SVGAnimatedEnumeration type;
 278.306 -
 278.307 -    /**
 278.308 -     * Corresponds to attribute <a>'values'</a> on the given <a>'feColorMatrix'</a>
 278.309 -     * element.
 278.310 -     */
 278.311 -    readonly attribute SVGAnimatedNumberList values;
 278.312 -  };
 278.313 -
 278.314 -  /**
 278.315 -   * The <a>SVGFEComponentTransferElement</a> interface corresponds to the
 278.316 -   * <a>'feComponentTransfer'</a> element.
 278.317 -   */
 278.318 -  interface SVGFEComponentTransferElement : 
 278.319 -                SVGElement,
 278.320 -                SVGFilterPrimitiveStandardAttributes { 
 278.321 -
 278.322 -    /**
 278.323 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feComponentTransfer'</a>
 278.324 -     * element.
 278.325 -     */
 278.326 -    readonly attribute SVGAnimatedString in1;
 278.327 -  };
 278.328 -
 278.329 -  /**
 278.330 -   * This interface defines a base interface used by the component transfer
 278.331 -   * function interfaces.
 278.332 -   */
 278.333 -  interface SVGComponentTransferFunctionElement : SVGElement { 
 278.334 -
 278.335 -    /**
 278.336 -     * The type is not one of predefined types. It is invalid to attempt to
 278.337 -     * define a new value of this type or to attempt to switch an existing
 278.338 -     * value to this type.
 278.339 -     *
 278.340 -     * @defgroup Component Transfer Types
 278.341 -     */
 278.342 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
 278.343 -
 278.344 -    /**
 278.345 -     * Corresponds to value <span class="attr-value">'identity'</span>.
 278.346 -     *
 278.347 -     * @defgroup Component Transfer Types
 278.348 -     */
 278.349 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
 278.350 -
 278.351 -    /**
 278.352 -     * Corresponds to value <span class="attr-value">'table'</span>.
 278.353 -     *
 278.354 -     * @defgroup Component Transfer Types
 278.355 -     */
 278.356 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
 278.357 -
 278.358 -    /**
 278.359 -     * Corresponds to value <span class="attr-value">'discrete'</span>.
 278.360 -     *
 278.361 -     * @defgroup Component Transfer Types
 278.362 -     */
 278.363 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
 278.364 -
 278.365 -    /**
 278.366 -     * Corresponds to value <span class="attr-value">'linear'</span>.
 278.367 -     *
 278.368 -     * @defgroup Component Transfer Types
 278.369 -     */
 278.370 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
 278.371 -
 278.372 -    /**
 278.373 -     * Corresponds to value <span class="attr-value">'gamma'</span>.
 278.374 -     *
 278.375 -     * @defgroup Component Transfer Types
 278.376 -     */
 278.377 -    const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
 278.378 -
 278.379 -    /**
 278.380 -     * Corresponds to attribute <a>'type'</a> on the given
 278.381 -     * element.  Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined
 278.382 -     * on this interface.
 278.383 -     */
 278.384 -    readonly attribute SVGAnimatedEnumeration type;
 278.385 -
 278.386 -    /**
 278.387 -     * Corresponds to attribute <a>'tableValues'</a> on the given element.
 278.388 -     */
 278.389 -    readonly attribute SVGAnimatedNumberList  tableValues;
 278.390 -
 278.391 -    /**
 278.392 -     * Corresponds to attribute <a>'slope'</a> on the given element.
 278.393 -     */
 278.394 -    readonly attribute SVGAnimatedNumber slope;
 278.395 -
 278.396 -    /**
 278.397 -     * Corresponds to attribute <a>'intercept'</a> on the given element.
 278.398 -     */
 278.399 -    readonly attribute SVGAnimatedNumber intercept;
 278.400 -
 278.401 -    /**
 278.402 -     * Corresponds to attribute <a>'amplitude'</a> on the given element.
 278.403 -     */
 278.404 -    readonly attribute SVGAnimatedNumber amplitude;
 278.405 -
 278.406 -    /**
 278.407 -     * Corresponds to attribute <a>'exponent'</a> on the given element.
 278.408 -     */
 278.409 -    readonly attribute SVGAnimatedNumber exponent;
 278.410 -
 278.411 -    /**
 278.412 -     * Corresponds to attribute <a>'offset'</a> on the given element.
 278.413 -     */
 278.414 -    readonly attribute SVGAnimatedNumber offset;
 278.415 -  };
 278.416 -
 278.417 -  /**
 278.418 -   * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncR'</a>
 278.419 -   * element.
 278.420 -   */
 278.421 -  interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};
 278.422 -
 278.423 -  /**
 278.424 -   * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncG'</a>
 278.425 -   * element.
 278.426 -   */
 278.427 -  interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};
 278.428 -
 278.429 -  /**
 278.430 -   * The <a>SVGFEFuncBElement</a> interface corresponds to the <a>'feFuncB'</a>
 278.431 -   * element.
 278.432 -   */
 278.433 -  interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};
 278.434 -
 278.435 -  /**
 278.436 -   * The <a>SVGFEFuncAElement</a> interface corresponds to the <a>'feFuncA'</a>
 278.437 -   * element.
 278.438 -   */
 278.439 -  interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};
 278.440 -
 278.441 -  /**
 278.442 -   * The <a>SVGFECompositeElement</a> interface corresponds to the
 278.443 -   * <a>'feComposite'</a> element.
 278.444 -   */
 278.445 -  interface SVGFECompositeElement : 
 278.446 -                SVGElement,
 278.447 -                SVGFilterPrimitiveStandardAttributes { 
 278.448 -
 278.449 -    /**
 278.450 -     * The type is not one of predefined types. It is invalid to attempt to
 278.451 -     * define a new value of this type or to attempt to switch an existing
 278.452 -     * value to this type.
 278.453 -     *
 278.454 -     * @defgroup Composite Operators
 278.455 -     */
 278.456 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
 278.457 -
 278.458 -    /**
 278.459 -     * Corresponds to value <span class="attr-value">'over'</span>.
 278.460 -     *
 278.461 -     * @defgroup Composite Operators
 278.462 -     */
 278.463 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1;
 278.464 -
 278.465 -    /**
 278.466 -     * Corresponds to value <span class="attr-value">'in'</span>.
 278.467 -     *
 278.468 -     * @defgroup Composite Operators
 278.469 -     */
 278.470 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2;
 278.471 -
 278.472 -    /**
 278.473 -     * Corresponds to value <span class="attr-value">'out'</span>.
 278.474 -     *
 278.475 -     * @defgroup Composite Operators
 278.476 -     */
 278.477 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3;
 278.478 -
 278.479 -    /**
 278.480 -     * Corresponds to value <span class="attr-value">'atop'</span>.
 278.481 -     *
 278.482 -     * @defgroup Composite Operators
 278.483 -     */
 278.484 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
 278.485 -
 278.486 -    /**
 278.487 -     * Corresponds to value <span class="attr-value">'xor'</span>.
 278.488 -     *
 278.489 -     * @defgroup Composite Operators
 278.490 -     */
 278.491 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5;
 278.492 -
 278.493 -    /**
 278.494 -     * Corresponds to value <span class="attr-value">'arithmetic'</span>.
 278.495 -     *
 278.496 -     * @defgroup Composite Operators
 278.497 -     */
 278.498 -    const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
 278.499 -
 278.500 -    /**
 278.501 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feComposite'</a>
 278.502 -     * element.
 278.503 -     */
 278.504 -    readonly attribute SVGAnimatedString in1;
 278.505 -
 278.506 -    /**
 278.507 -     * Corresponds to attribute <a>'in2'</a> on the given <a>'feComposite'</a>
 278.508 -     * element.
 278.509 -     */
 278.510 -    readonly attribute SVGAnimatedString in2;
 278.511 -
 278.512 -    /**
 278.513 -     * Corresponds to attribute <a>'operator'</a> on the given <a>'feComposite'</a>
 278.514 -     * element.  Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined
 278.515 -     * on this interface.
 278.516 -     */
 278.517 -    readonly attribute SVGAnimatedEnumeration operator;
 278.518 -
 278.519 -    /**
 278.520 -     * Corresponds to attribute <a>'k1'</a> on the given <a>'feComposite'</a>
 278.521 -     * element.
 278.522 -     */
 278.523 -    readonly attribute SVGAnimatedNumber k1;
 278.524 -
 278.525 -    /**
 278.526 -     * Corresponds to attribute <a>'k2'</a> on the given <a>'feComposite'</a>
 278.527 -     * element.
 278.528 -     */
 278.529 -    readonly attribute SVGAnimatedNumber k2;
 278.530 -
 278.531 -    /**
 278.532 -     * Corresponds to attribute <a>'k3'</a> on the given <a>'feComposite'</a>
 278.533 -     * element.
 278.534 -     */
 278.535 -    readonly attribute SVGAnimatedNumber k3;
 278.536 -
 278.537 -    /**
 278.538 -     * Corresponds to attribute <a>'k4'</a> on the given <a>'feComposite'</a>
 278.539 -     * element.
 278.540 -     */
 278.541 -    readonly attribute SVGAnimatedNumber k4;
 278.542 -  };
 278.543 -
 278.544 -  /**
 278.545 -   * The <a>SVGFEConvolveMatrixElement</a> interface corresponds to the
 278.546 -   * <a>'feConvolveMatrix'</a> element.
 278.547 -   */
 278.548 -  interface SVGFEConvolveMatrixElement : 
 278.549 -                SVGElement,
 278.550 -                SVGFilterPrimitiveStandardAttributes { 
 278.551 -
 278.552 -    /**
 278.553 -     * The type is not one of predefined types. It is invalid to attempt to
 278.554 -     * define a new value of this type or to attempt to switch an existing
 278.555 -     * value to this type.
 278.556 -     *
 278.557 -     * @defgroup Edge Mode Values
 278.558 -     */
 278.559 -    const unsigned short SVG_EDGEMODE_UNKNOWN = 0;
 278.560 -
 278.561 -    /**
 278.562 -     * Corresponds to value <span class="attr-value">'duplicate'</span>.
 278.563 -     *
 278.564 -     * @defgroup Edge Mode Values
 278.565 -     */
 278.566 -    const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
 278.567 -
 278.568 -    /**
 278.569 -     * Corresponds to value <span class="attr-value">'wrap'</span>.
 278.570 -     *
 278.571 -     * @defgroup Edge Mode Values
 278.572 -     */
 278.573 -    const unsigned short SVG_EDGEMODE_WRAP = 2;
 278.574 -
 278.575 -    /**
 278.576 -     * Corresponds to value <span class="attr-value">'none'</span>.
 278.577 -     *
 278.578 -     * @defgroup Edge Mode Values
 278.579 -     */
 278.580 -    const unsigned short SVG_EDGEMODE_NONE = 3;
 278.581 -
 278.582 -    /**
 278.583 -     * Corresponds to attribute <a>'in'</a> on the given
 278.584 -     * <a>'feConvolveMatrix'</a> element.
 278.585 -     */
 278.586 -    readonly attribute SVGAnimatedString in1;
 278.587 -
 278.588 -    /**
 278.589 -     * Corresponds to attribute <a>'order'</a> on the given
 278.590 -     * <a>'feConvolveMatrix'</a> element.
 278.591 -     */
 278.592 -    readonly attribute SVGAnimatedInteger orderX;
 278.593 -
 278.594 -    /**
 278.595 -     * Corresponds to attribute <a>'order'</a> on the given
 278.596 -     * <a>'feConvolveMatrix'</a> element.
 278.597 -     */
 278.598 -    readonly attribute SVGAnimatedInteger orderY;
 278.599 -
 278.600 -    /**
 278.601 -     * Corresponds to attribute <a>'kernelMatrix'</a> on the given
 278.602 -     * <a>'feConvolveMatrix'</a> element.
 278.603 -     */
 278.604 -    readonly attribute SVGAnimatedNumberList kernelMatrix;
 278.605 -
 278.606 -    /**
 278.607 -     * Corresponds to attribute <a>'divisor'</a> on the given
 278.608 -     * <a>'feConvolveMatrix'</a> element.
 278.609 -     */
 278.610 -    readonly attribute SVGAnimatedNumber divisor;
 278.611 -
 278.612 -    /**
 278.613 -     * Corresponds to attribute <a>'bias'</a> on the given
 278.614 -     * <a>'feConvolveMatrix'</a> element.
 278.615 -     */
 278.616 -    readonly attribute SVGAnimatedNumber bias;
 278.617 -
 278.618 -    /**
 278.619 -     * Corresponds to attribute <a>'targetX'</a> on the given
 278.620 -     * <a>'feConvolveMatrix'</a> element.
 278.621 -     */
 278.622 -    readonly attribute SVGAnimatedInteger targetX;
 278.623 -
 278.624 -    /**
 278.625 -     * Corresponds to attribute <a>'targetY'</a> on the given
 278.626 -     * <a>'feConvolveMatrix'</a> element.
 278.627 -     */
 278.628 -    readonly attribute SVGAnimatedInteger targetY;
 278.629 -
 278.630 -    /**
 278.631 -     * Corresponds to attribute <a>'edgeMode'</a> on the given
 278.632 -     * <a>'feConvolveMatrix'</a> element.  Takes one of the SVG_EDGEMODE_*
 278.633 -     * constants defined on this interface.
 278.634 -     */
 278.635 -    readonly attribute SVGAnimatedEnumeration edgeMode;
 278.636 -
 278.637 -    /**
 278.638 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 278.639 -     * <a>'feConvolveMatrix'</a> element.
 278.640 -     */
 278.641 -    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
 278.642 -
 278.643 -    /**
 278.644 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 278.645 -     * <a>'feConvolveMatrix'</a> element.
 278.646 -     */
 278.647 -    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
 278.648 -
 278.649 -    /**
 278.650 -     * Corresponds to attribute <a>'preserveAlpha'</a> on the given
 278.651 -     * <a>'feConvolveMatrix'</a> element.
 278.652 -     */
 278.653 -    readonly attribute SVGAnimatedBoolean preserveAlpha;
 278.654 -  };
 278.655 -
 278.656 -  /**
 278.657 -   * The <a>SVGFEDiffuseLightingElement</a> interface corresponds to the
 278.658 -   * <a>'feDiffuseLighting'</a> element.
 278.659 -   */
 278.660 -  interface SVGFEDiffuseLightingElement : 
 278.661 -                SVGElement,
 278.662 -                SVGFilterPrimitiveStandardAttributes { 
 278.663 -
 278.664 -    /**
 278.665 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feDiffuseLighting'</a>
 278.666 -     * element.
 278.667 -     */
 278.668 -    readonly attribute SVGAnimatedString in1;
 278.669 -
 278.670 -    /**
 278.671 -     * Corresponds to attribute <a>'surfaceScale'</a> on the given
 278.672 -     * <a>'feDiffuseLighting'</a> element.
 278.673 -     */
 278.674 -    readonly attribute SVGAnimatedNumber surfaceScale;
 278.675 -
 278.676 -    /**
 278.677 -     * Corresponds to attribute <a>'diffuseConstant'</a> on the given
 278.678 -     * <a>'feDiffuseLighting'</a> element.
 278.679 -     */
 278.680 -    readonly attribute SVGAnimatedNumber diffuseConstant;
 278.681 -
 278.682 -    /**
 278.683 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 278.684 -     * <a>'feDiffuseLighting'</a> element.
 278.685 -     */
 278.686 -    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
 278.687 -
 278.688 -    /**
 278.689 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
 278.690 -     * <a>'feDiffuseLighting'</a> element.
 278.691 -     */
 278.692 -    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
 278.693 -  };
 278.694 -
 278.695 -  /**
 278.696 -   * The <a>SVGFEDistantLightElement</a> interface corresponds to the
 278.697 -   * <a>'feDistantLight'</a> element.
 278.698 -   */
 278.699 -  interface SVGFEDistantLightElement : SVGElement { 
 278.700 -
 278.701 -    /**
 278.702 -     * Corresponds to attribute <a>'azimuth'</a> on the given
 278.703 -     * <a>'feDistantLight'</a> element.
 278.704 -     */
 278.705 -    readonly attribute SVGAnimatedNumber azimuth;
 278.706 -
 278.707 -    /**
 278.708 -     * Corresponds to attribute <a>'elevation'</a> on the given
 278.709 -     * <a>'feDistantLight'</a> element.
 278.710 -     */
 278.711 -    readonly attribute SVGAnimatedNumber elevation;
 278.712 -  };
 278.713 -
 278.714 -  /**
 278.715 -   * The <a>SVGFEPointLightElement</a> interface corresponds to the
 278.716 -   * <a>'fePointLight'</a> element.
 278.717 -   */
 278.718 -  interface SVGFEPointLightElement : SVGElement { 
 278.719 -
 278.720 -    /**
 278.721 -     * Corresponds to attribute <a>'x'</a> on the given
 278.722 -     * <a>'fePointLight'</a> element.
 278.723 -     */
 278.724 -    readonly attribute SVGAnimatedNumber x;
 278.725 -
 278.726 -    /**
 278.727 -     * Corresponds to attribute <a>'y'</a> on the given
 278.728 -     * <a>'fePointLight'</a> element.
 278.729 -     */
 278.730 -    readonly attribute SVGAnimatedNumber y;
 278.731 -
 278.732 -    /**
 278.733 -     * Corresponds to attribute <a>'z'</a> on the given
 278.734 -     * <a>'fePointLight'</a> element.
 278.735 -     */
 278.736 -    readonly attribute SVGAnimatedNumber z;
 278.737 -  };
 278.738 -
 278.739 -  /**
 278.740 -   * The <a>SVGFESpotLightElement</a> interface corresponds to the
 278.741 -   * <a>'feSpotLight'</a> element.
 278.742 -   */
 278.743 -  interface SVGFESpotLightElement : SVGElement { 
 278.744 -
 278.745 -    /**
 278.746 -     * Corresponds to attribute <a>'x'</a> on the given
 278.747 -     * <a>'feSpotLight'</a> element.
 278.748 -     */
 278.749 -    readonly attribute SVGAnimatedNumber x;
 278.750 -
 278.751 -    /**
 278.752 -     * Corresponds to attribute <a>'y'</a> on the given
 278.753 -     * <a>'feSpotLight'</a> element.
 278.754 -     */
 278.755 -    readonly attribute SVGAnimatedNumber y;
 278.756 -
 278.757 -    /**
 278.758 -     * Corresponds to attribute <a>'z'</a> on the given
 278.759 -     * <a>'feSpotLight'</a> element.
 278.760 -     */
 278.761 -    readonly attribute SVGAnimatedNumber z;
 278.762 -
 278.763 -    /**
 278.764 -     * Corresponds to attribute <a>'pointsAtX'</a> on the given
 278.765 -     * <a>'feSpotLight'</a> element.
 278.766 -     */
 278.767 -    readonly attribute SVGAnimatedNumber pointsAtX;
 278.768 -
 278.769 -    /**
 278.770 -     * Corresponds to attribute <a>'pointsAtY'</a> on the given
 278.771 -     * <a>'feSpotLight'</a> element.
 278.772 -     */
 278.773 -    readonly attribute SVGAnimatedNumber pointsAtY;
 278.774 -
 278.775 -    /**
 278.776 -     * Corresponds to attribute <a>'pointsAtZ'</a> on the given
 278.777 -     * <a>'feSpotLight'</a> element.
 278.778 -     */
 278.779 -    readonly attribute SVGAnimatedNumber pointsAtZ;
 278.780 -
 278.781 -    /**
 278.782 -     * Corresponds to attribute <a>'specularExponent'</a> on the given
 278.783 -     * <a>'feSpotLight'</a> element.
 278.784 -     */
 278.785 -    readonly attribute SVGAnimatedNumber specularExponent;
 278.786 -
 278.787 -    /**
 278.788 -     * Corresponds to attribute <a>'limitingConeAngle'</a> on the given
 278.789 -     * <a>'feSpotLight'</a> element.
 278.790 -     */
 278.791 -    readonly attribute SVGAnimatedNumber limitingConeAngle;
 278.792 -  };
 278.793 -
 278.794 -  /**
 278.795 -   * The <a>SVGFEDisplacementMapElement</a> interface corresponds to the
 278.796 -   * <a>'feDisplacementMap'</a> element.
 278.797 -   */
 278.798 -  interface SVGFEDisplacementMapElement : 
 278.799 -                SVGElement,
 278.800 -                SVGFilterPrimitiveStandardAttributes { 
 278.801 -
 278.802 -    /**
 278.803 -     * The type is not one of predefined types. It is invalid to attempt to
 278.804 -     * define a new value of this type or to attempt to switch an existing
 278.805 -     * value to this type.
 278.806 -     *
 278.807 -     * @defgroup Channel Selectors
 278.808 -     */
 278.809 -    const unsigned short SVG_CHANNEL_UNKNOWN = 0;
 278.810 -
 278.811 -    /**
 278.812 -     * Corresponds to value <span class="attr-value">'R'</span>.
 278.813 -     *
 278.814 -     * @defgroup Channel Selectors
 278.815 -     */
 278.816 -    const unsigned short SVG_CHANNEL_R = 1;
 278.817 -
 278.818 -    /**
 278.819 -     * Corresponds to value <span class="attr-value">'G'</span>.
 278.820 -     *
 278.821 -     * @defgroup Channel Selectors
 278.822 -     */
 278.823 -    const unsigned short SVG_CHANNEL_G = 2;
 278.824 -
 278.825 -    /**
 278.826 -     * Corresponds to value <span class="attr-value">'B'</span>.
 278.827 -     *
 278.828 -     * @defgroup Channel Selectors
 278.829 -     */
 278.830 -    const unsigned short SVG_CHANNEL_B = 3;
 278.831 -
 278.832 -    /**
 278.833 -     * Corresponds to value <span class="attr-value">'A'</span>.
 278.834 -     *
 278.835 -     * @defgroup Channel Selectors
 278.836 -     */
 278.837 -    const unsigned short SVG_CHANNEL_A = 4;
 278.838 -
 278.839 -    /**
 278.840 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feDisplacementMap'</a>
 278.841 -     * element.
 278.842 -     */
 278.843 -    readonly attribute SVGAnimatedString in1;
 278.844 -
 278.845 -    /**
 278.846 -     * Corresponds to attribute <a>'in2'</a> on the given <a>'feDisplacementMap'</a>
 278.847 -     * element.
 278.848 -     */
 278.849 -    readonly attribute SVGAnimatedString in2;
 278.850 -
 278.851 -    /**
 278.852 -     * Corresponds to attribute <a>'scale'</a> on the given <a>'feDisplacementMap'</a>
 278.853 -     * element.
 278.854 -     */
 278.855 -    readonly attribute SVGAnimatedNumber scale;
 278.856 -
 278.857 -    /**
 278.858 -     * Corresponds to attribute <a>'xChannelSelector'</a> on the given
 278.859 -     * <a>'feDisplacementMap'</a> element.  Takes one of the SVG_CHANNEL_*
 278.860 -     * constants defined on this interface.
 278.861 -     */
 278.862 -    readonly attribute SVGAnimatedEnumeration xChannelSelector;
 278.863 -
 278.864 -    /**
 278.865 -     * Corresponds to attribute <a>'yChannelSelector'</a> on the given
 278.866 -     * <a>'feDisplacementMap'</a> element.  Takes one of the SVG_CHANNEL_*
 278.867 -     * constants defined on this interface.
 278.868 -     */
 278.869 -    readonly attribute SVGAnimatedEnumeration yChannelSelector;
 278.870 -  };
 278.871 -
 278.872 -  /**
 278.873 -   * The <a>SVGFEFloodElement</a> interface corresponds to the
 278.874 -   * <a>'feFlood'</a> element.
 278.875 -   */
 278.876 -  interface SVGFEFloodElement : 
 278.877 -                SVGElement,
 278.878 -                SVGFilterPrimitiveStandardAttributes { 
 278.879 -  };
 278.880 -
 278.881 -  /**
 278.882 -   * The <a>SVGFEGaussianBlurElement</a> interface corresponds to the
 278.883 -   * <a>'feGaussianBlur'</a> element.
 278.884 -   */
 278.885 -  interface SVGFEGaussianBlurElement : 
 278.886 -                SVGElement,
 278.887 -                SVGFilterPrimitiveStandardAttributes { 
 278.888 -
 278.889 -    /**
 278.890 -     * Corresponds to attribute <a>'in'</a> on the given
 278.891 -     * <a>'feGaussianBlur'</a> element.
 278.892 -     */
 278.893 -    readonly attribute SVGAnimatedString in1;
 278.894 -
 278.895 -    /**
 278.896 -     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 278.897 -     * <a>'feGaussianBlur'</a> element.  Contains the X component
 278.898 -     * of attribute <a>'stdDeviation'</a>.
 278.899 -     */
 278.900 -    readonly attribute SVGAnimatedNumber stdDeviationX;
 278.901 -
 278.902 -    /**
 278.903 -     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 278.904 -     * <a>'feGaussianBlur'</a> element.  Contains the Y component
 278.905 -     * (possibly computed automatically) of attribute <a>'stdDeviation'</a>.
 278.906 -     */
 278.907 -    readonly attribute SVGAnimatedNumber stdDeviationY;
 278.908 -
 278.909 -    /**
 278.910 -     * Sets the values for attribute <a>'stdDeviation'</a>.
 278.911 -     *
 278.912 -     * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>.
 278.913 -     * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>.
 278.914 -     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 278.915 -     *   to change the value of a readonly attribute.
 278.916 -     */
 278.917 -    void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException);
 278.918 -  };
 278.919 -
 278.920 -  /**
 278.921 -   * The <a>SVGFEUnsharpMaskElement</a> interface corresponds to the
 278.922 -   * <a>'feUnsharpMask'</a> element.
 278.923 -   */
 278.924 -  interface SVGFEUnsharpMaskElement : 
 278.925 -                SVGElement,
 278.926 -                SVGFilterPrimitiveStandardAttributes { 
 278.927 -
 278.928 -    /**
 278.929 -     * Corresponds to attribute <a>'in'</a> on the given
 278.930 -     * <a>'feUnsharpMask'</a> element.
 278.931 -     */
 278.932 -    readonly attribute SVGAnimatedString in1;
 278.933 -
 278.934 -    /**
 278.935 -     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 278.936 -     * <a>'feUnsharpMask'</a> element.  Contains the X component
 278.937 -     * of attribute <a>'feUnsharpMask'</a>.
 278.938 -     */
 278.939 -    readonly attribute SVGAnimatedNumber stdDeviationX;
 278.940 -
 278.941 -    /**
 278.942 -     * Corresponds to attribute <a>'stdDeviation'</a> on the given
 278.943 -     * <a>'feUnsharpMask'</a> element.  Contains the Y component
 278.944 -     * (possibly computed automatically) of attribute <a>'stdDeviation'</a>.
 278.945 -     */
 278.946 -    readonly attribute SVGAnimatedNumber stdDeviationY;
 278.947 -
 278.948 -    /**
 278.949 -     * Corresponds to attribute <a>'amount'</a> on the given
 278.950 -     * <a>'feUnsharpMask'</a> element.
 278.951 -     */
 278.952 -    readonly attribute SVGAnimatedNumber amount;
 278.953 -
 278.954 -    /**
 278.955 -     * Corresponds to attribute <a>'threshold'</a> on the given
 278.956 -     * <a>'feUnsharpMask'</a> element.
 278.957 -     */
 278.958 -    readonly attribute SVGAnimatedNumber threshold;
 278.959 -
 278.960 -    /**
 278.961 -     * Sets the values for attribute <a>'stdDeviation'</a>.
 278.962 -     *
 278.963 -     * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>.
 278.964 -     * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>.
 278.965 -     * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
 278.966 -     *   to change the value of a readonly attribute.
 278.967 -     */
 278.968 -    void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException);
 278.969 -  };
 278.970 -
 278.971 -  /**
 278.972 -   * The <a>SVGFEImageElement</a> interface corresponds to the
 278.973 -   * <a>'feImage'</a> element.
 278.974 -   */
 278.975 -  interface SVGFEImageElement : 
 278.976 -                SVGElement,
 278.977 -                SVGURIReference,
 278.978 -                SVGLangSpace,
 278.979 -                SVGExternalResourcesRequired,
 278.980 -                SVGFilterPrimitiveStandardAttributes {
 278.981 -
 278.982 -    /**
 278.983 -     * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given
 278.984 -     * <a>'feImage'</a> element.
 278.985 -     */
 278.986 -    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 278.987 -  };
 278.988 -
 278.989 -  /**
 278.990 -   * The <a>SVGFEMergeElement</a> interface corresponds to the
 278.991 -   * <a>'feMerge'</a> element.
 278.992 -   */
 278.993 -  interface SVGFEMergeElement : 
 278.994 -                SVGElement,
 278.995 -                SVGFilterPrimitiveStandardAttributes {};
 278.996 -
 278.997 -  /**
 278.998 -   * The <a>SVGFEMergeNodeElement</a> interface corresponds to the
 278.999 -   * <a>'feMergeNode'</a> element.
278.1000 -   */
278.1001 -  interface SVGFEMergeNodeElement : SVGElement { 
278.1002 -
278.1003 -    /**
278.1004 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feMergeNode'</a>
278.1005 -     * element.
278.1006 -     */
278.1007 -    readonly attribute SVGAnimatedString in1;
278.1008 -  };
278.1009 -
278.1010 -  /**
278.1011 -   * The <a>SVGFEMorphologyElement</a> interface corresponds to the
278.1012 -   * <a>'feMorphology'</a> element.
278.1013 -   */
278.1014 -  interface SVGFEMorphologyElement : 
278.1015 -                SVGElement,
278.1016 -                SVGFilterPrimitiveStandardAttributes { 
278.1017 -
278.1018 -    /**
278.1019 -     * The type is not one of predefined types. It is invalid to attempt to
278.1020 -     * define a new value of this type or to attempt to switch an existing
278.1021 -     * value to this type.
278.1022 -     *
278.1023 -     * @defgroup Morphology Operators
278.1024 -     */
278.1025 -    const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
278.1026 -
278.1027 -    /**
278.1028 -     * Corresponds to value <span class="attr-value">'erode'</span>.
278.1029 -     *
278.1030 -     * @defgroup Morphology Operators
278.1031 -     */
278.1032 -    const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
278.1033 -
278.1034 -    /**
278.1035 -     * Corresponds to value <span class="attr-value">'dilate'</span>.
278.1036 -     *
278.1037 -     * @defgroup Morphology Operators
278.1038 -     */
278.1039 -    const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
278.1040 -
278.1041 -    /**
278.1042 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feMorphology'</a>
278.1043 -     * element.
278.1044 -     */
278.1045 -    readonly attribute SVGAnimatedString in1;
278.1046 -
278.1047 -    /**
278.1048 -     * Corresponds to attribute <a>'operator'</a> on the given <a>'feMorphology'</a>
278.1049 -     * element.  Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants
278.1050 -     * defined on this interface.
278.1051 -     */
278.1052 -    readonly attribute SVGAnimatedEnumeration operator;
278.1053 -
278.1054 -    /**
278.1055 -     * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
278.1056 -     * element.
278.1057 -     */
278.1058 -    readonly attribute SVGAnimatedNumber radiusX;
278.1059 -
278.1060 -    /**
278.1061 -     * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
278.1062 -     * element.
278.1063 -     */
278.1064 -    readonly attribute SVGAnimatedNumber radiusY;
278.1065 -  };
278.1066 -
278.1067 -  /**
278.1068 -   * The <a>SVGFEOffsetElement</a> interface corresponds to the
278.1069 -   * <a>'feOffset'</a> element.
278.1070 -   */
278.1071 -  interface SVGFEOffsetElement : 
278.1072 -                SVGElement,
278.1073 -                SVGFilterPrimitiveStandardAttributes { 
278.1074 -
278.1075 -    /**
278.1076 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feOffset'</a>
278.1077 -     * element.
278.1078 -     */
278.1079 -    readonly attribute SVGAnimatedString in1;
278.1080 -
278.1081 -    /**
278.1082 -     * Corresponds to attribute <a>'dx'</a> on the given <a>'feOffset'</a>
278.1083 -     * element.
278.1084 -     */
278.1085 -    readonly attribute SVGAnimatedNumber dx;
278.1086 -
278.1087 -    /**
278.1088 -     * Corresponds to attribute <a>'dy'</a> on the given <a>'feOffset'</a>
278.1089 -     * element.
278.1090 -     */
278.1091 -    readonly attribute SVGAnimatedNumber dy;
278.1092 -  };
278.1093 -
278.1094 -  /**
278.1095 -   * The <a>SVGFESpecularLightingElement</a> interface corresponds to the
278.1096 -   * <a>'feSpecularLighting'</a> element.
278.1097 -   */
278.1098 -  interface SVGFESpecularLightingElement : 
278.1099 -                SVGElement,
278.1100 -                SVGFilterPrimitiveStandardAttributes { 
278.1101 -
278.1102 -    /**
278.1103 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feSpecularLighting'</a>
278.1104 -     * element.
278.1105 -     */
278.1106 -    readonly attribute SVGAnimatedString in1;
278.1107 -
278.1108 -    /**
278.1109 -     * Corresponds to attribute <a>'surfaceScale'</a> on the given
278.1110 -     * <a>'feSpecularLighting'</a> element.
278.1111 -     */
278.1112 -    readonly attribute SVGAnimatedNumber surfaceScale;
278.1113 -
278.1114 -    /**
278.1115 -     * Corresponds to attribute <a>'specularConstant'</a> on the given
278.1116 -     * <a>'feSpecularLighting'</a> element.
278.1117 -     */
278.1118 -    readonly attribute SVGAnimatedNumber specularConstant;
278.1119 -
278.1120 -    /**
278.1121 -     * Corresponds to attribute <a>'specularExponent'</a> on the given
278.1122 -     * <a>'feSpecularLighting'</a> element.
278.1123 -     */
278.1124 -    readonly attribute SVGAnimatedNumber specularExponent;
278.1125 -
278.1126 -    /**
278.1127 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
278.1128 -     * <a>'feSpecularLighting'</a> element.
278.1129 -     */
278.1130 -    readonly attribute SVGAnimatedNumber kernelUnitLengthX;
278.1131 -
278.1132 -    /**
278.1133 -     * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
278.1134 -     * <a>'feSpecularLighting'</a> element.
278.1135 -     */
278.1136 -    readonly attribute SVGAnimatedNumber kernelUnitLengthY;
278.1137 -  };
278.1138 -
278.1139 -  /**
278.1140 -   * The <a>SVGFETileElement</a> interface corresponds to the
278.1141 -   * <a>'feTile'</a> element.
278.1142 -   */
278.1143 -  interface SVGFETileElement : 
278.1144 -                SVGElement,
278.1145 -                SVGFilterPrimitiveStandardAttributes { 
278.1146 -
278.1147 -    /**
278.1148 -     * Corresponds to attribute <a>'in'</a> on the given <a>'feTile'</a>
278.1149 -     * element.
278.1150 -     */
278.1151 -    readonly attribute SVGAnimatedString in1;
278.1152 -  };
278.1153 -
278.1154 -  /**
278.1155 -   * The <a>SVGFETurbulenceElement</a> interface corresponds to the
278.1156 -   * <a>'feTurbulence'</a> element.
278.1157 -   */
278.1158 -  interface SVGFETurbulenceElement : 
278.1159 -                SVGElement,
278.1160 -                SVGFilterPrimitiveStandardAttributes { 
278.1161 -
278.1162 -    /**
278.1163 -     * The type is not one of predefined types. It is invalid to attempt to
278.1164 -     * define a new value of this type or to attempt to switch an existing
278.1165 -     * value to this type.
278.1166 -     *
278.1167 -     * @defgroup Turbulence Types
278.1168 -     */
278.1169 -    const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0;
278.1170 -
278.1171 -    /**
278.1172 -     * Corresponds to value <span class="attr-value">'fractalNoise'</span>.
278.1173 -     *
278.1174 -     * @defgroup Turbulence Types
278.1175 -     */
278.1176 -    const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
278.1177 -
278.1178 -    /**
278.1179 -     * Corresponds to value <span class="attr-value">'turbulence'</span>.
278.1180 -     *
278.1181 -     * @defgroup Turbulence Types
278.1182 -     */
278.1183 -    const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2;
278.1184 -
278.1185 -    /**
278.1186 -     * The type is not one of predefined types. It is invalid to attempt to
278.1187 -     * define a new value of this type or to attempt to switch an existing
278.1188 -     * value to this type.
278.1189 -     *
278.1190 -     * @defgroup Stitch Options
278.1191 -     */
278.1192 -    const unsigned short SVG_STITCHTYPE_UNKNOWN = 0;
278.1193 -
278.1194 -    /**
278.1195 -     * Corresponds to value <span class="attr-value">'stitch'</span>.
278.1196 -     *
278.1197 -     * @defgroup Stitch Options
278.1198 -     */
278.1199 -    const unsigned short SVG_STITCHTYPE_STITCH = 1;
278.1200 -
278.1201 -    /**
278.1202 -     * Corresponds to value <span class="attr-value">'noStitch'</span>.
278.1203 -     *
278.1204 -     * @defgroup Stitch Options
278.1205 -     */
278.1206 -    const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
278.1207 -
278.1208 -    /**
278.1209 -     * Corresponds to attribute <a>'baseFrequency'</a> on the given
278.1210 -     * <a>'feTurbulence'</a> element.  Contains the X component of the
278.1211 -     * <a>'baseFrequency'</a> attribute.
278.1212 -     */
278.1213 -    readonly attribute SVGAnimatedNumber baseFrequencyX;
278.1214 -
278.1215 -    /**
278.1216 -     * Corresponds to attribute <a>'baseFrequency'</a> on the given
278.1217 -     * <a>'feTurbulence'</a> element.  Contains the Y component of the
278.1218 -     * (possibly computed automatically) <a>'baseFrequency'</a> attribute.
278.1219 -     */
278.1220 -    readonly attribute SVGAnimatedNumber baseFrequencyY;
278.1221 -
278.1222 -    /**
278.1223 -     * Corresponds to attribute <a>'numOctaves'</a> on the given
278.1224 -     * <a>'feTurbulence'</a> element.
278.1225 -     */
278.1226 -    readonly attribute SVGAnimatedInteger numOctaves;
278.1227 -
278.1228 -    /**
278.1229 -     * Corresponds to attribute <a>'seed'</a> on the given
278.1230 -     * <a>'feTurbulence'</a> element.
278.1231 -     */
278.1232 -    readonly attribute SVGAnimatedNumber seed;
278.1233 -
278.1234 -    /**
278.1235 -     * Corresponds to attribute <a>'stitchTiles'</a> on the given
278.1236 -     * <a>'feTurbulence'</a> element.  Takes one of the SVG_STITCHTYPE_*
278.1237 -     * constants defined on this interface.
278.1238 -     */
278.1239 -    readonly attribute SVGAnimatedEnumeration stitchTiles;
278.1240 -
278.1241 -    /**
278.1242 -     * Corresponds to attribute <a>'type'</a> on the given
278.1243 -     * <a>'feTurbulence'</a> element.  Takes one of the SVG_TURBULENCE_TYPE_*
278.1244 -     * constants defined on this interface.
278.1245 -     */
278.1246 -    readonly attribute SVGAnimatedEnumeration type;
278.1247 -  };
278.1248 -
278.1249 -  /**
278.1250 -   * The <a>SVGFEDropShadowElement</a> interface corresponds to the
278.1251 -   * <a>'feDropShadow'</a> element.
278.1252 -   */
278.1253 -  interface SVGFEDropShadowElement : 
278.1254 -                SVGElement,
278.1255 -                SVGFilterPrimitiveStandardAttributes { 
278.1256 -
278.1257 -    readonly attribute SVGAnimatedString in1;
278.1258 -    readonly attribute SVGAnimatedNumber dx;
278.1259 -    readonly attribute SVGAnimatedNumber dy;
278.1260 -    readonly attribute SVGAnimatedNumber stdDeviationX;
278.1261 -    readonly attribute SVGAnimatedNumber stdDeviationY;
278.1262 -  };
278.1263 -};
278.1264 -
278.1265 -// #endif // _SVG_FILTERS_IDL_
   279.1 --- a/master/xhtml1-transitional+edit.dtd	Thu Feb 24 10:19:12 2011 +0000
   279.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   279.3 @@ -1,1400 +0,0 @@
   279.4 -<!--
   279.5 -   Extensible HTML version 1.0 Transitional plus edit DTD
   279.6 -
   279.7 -   This is the same as HTML 4 Transitional except for
   279.8 -   changes due to the differences between XML and SGML.
   279.9 -   
  279.10 -   ** and except for adding funky xmlns:edit stuff **
  279.11 -   ** and the inclusion of the entities from xhtml-lat1.ent **
  279.12 -
  279.13 -   Namespace = http://www.w3.org/1999/xhtml
  279.14 -
  279.15 -   For further information, see: http://www.w3.org/TR/xhtml1
  279.16 -
  279.17 -   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
  279.18 -   All Rights Reserved. 
  279.19 -
  279.20 -   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
  279.21 -
  279.22 -   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN"
  279.23 -   SYSTEM "xhtml1-transitional+edit.dtd"
  279.24 -
  279.25 -   $Revision$
  279.26 -   $Date$
  279.27 -
  279.28 --->
  279.29 -
  279.30 -<!--================ Character mnemonic entities =========================-->
  279.31 -
  279.32 -<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
  279.33 -                                  U+00A0 ISOnum -->
  279.34 -<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
  279.35 -<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
  279.36 -<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
  279.37 -<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
  279.38 -<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
  279.39 -<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
  279.40 -                                  U+00A6 ISOnum -->
  279.41 -<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
  279.42 -<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
  279.43 -                                  U+00A8 ISOdia -->
  279.44 -<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
  279.45 -<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
  279.46 -<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
  279.47 -                                  = left pointing guillemet, U+00AB ISOnum -->
  279.48 -<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
  279.49 -                                  U+00AC ISOnum -->
  279.50 -<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
  279.51 -                                  U+00AD ISOnum -->
  279.52 -<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
  279.53 -                                  U+00AE ISOnum -->
  279.54 -<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
  279.55 -                                  = APL overbar, U+00AF ISOdia -->
  279.56 -<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
  279.57 -<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
  279.58 -                                  U+00B1 ISOnum -->
  279.59 -<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
  279.60 -                                  = squared, U+00B2 ISOnum -->
  279.61 -<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
  279.62 -                                  = cubed, U+00B3 ISOnum -->
  279.63 -<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
  279.64 -                                  U+00B4 ISOdia -->
  279.65 -<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
  279.66 -<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
  279.67 -                                  U+00B6 ISOnum -->
  279.68 -<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
  279.69 -                                  = Greek middle dot, U+00B7 ISOnum -->
  279.70 -<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
  279.71 -<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
  279.72 -                                  U+00B9 ISOnum -->
  279.73 -<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
  279.74 -                                  U+00BA ISOnum -->
  279.75 -<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
  279.76 -                                  = right pointing guillemet, U+00BB ISOnum -->
  279.77 -<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
  279.78 -                                  = fraction one quarter, U+00BC ISOnum -->
  279.79 -<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
  279.80 -                                  = fraction one half, U+00BD ISOnum -->
  279.81 -<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
  279.82 -                                  = fraction three quarters, U+00BE ISOnum -->
  279.83 -<!ENTITY iquest "&#191;"> <!-- inverted question mark
  279.84 -                                  = turned question mark, U+00BF ISOnum -->
  279.85 -<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
  279.86 -                                  = latin capital letter A grave,
  279.87 -                                  U+00C0 ISOlat1 -->
  279.88 -<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
  279.89 -                                  U+00C1 ISOlat1 -->
  279.90 -<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
  279.91 -                                  U+00C2 ISOlat1 -->
  279.92 -<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
  279.93 -                                  U+00C3 ISOlat1 -->
  279.94 -<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
  279.95 -                                  U+00C4 ISOlat1 -->
  279.96 -<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
  279.97 -                                  = latin capital letter A ring,
  279.98 -                                  U+00C5 ISOlat1 -->
  279.99 -<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
 279.100 -                                  = latin capital ligature AE,
 279.101 -                                  U+00C6 ISOlat1 -->
 279.102 -<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
 279.103 -                                  U+00C7 ISOlat1 -->
 279.104 -<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
 279.105 -                                  U+00C8 ISOlat1 -->
 279.106 -<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
 279.107 -                                  U+00C9 ISOlat1 -->
 279.108 -<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
 279.109 -                                  U+00CA ISOlat1 -->
 279.110 -<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
 279.111 -                                  U+00CB ISOlat1 -->
 279.112 -<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
 279.113 -                                  U+00CC ISOlat1 -->
 279.114 -<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
 279.115 -                                  U+00CD ISOlat1 -->
 279.116 -<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
 279.117 -                                  U+00CE ISOlat1 -->
 279.118 -<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
 279.119 -                                  U+00CF ISOlat1 -->
 279.120 -<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
 279.121 -<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
 279.122 -                                  U+00D1 ISOlat1 -->
 279.123 -<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
 279.124 -                                  U+00D2 ISOlat1 -->
 279.125 -<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
 279.126 -                                  U+00D3 ISOlat1 -->
 279.127 -<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
 279.128 -                                  U+00D4 ISOlat1 -->
 279.129 -<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
 279.130 -                                  U+00D5 ISOlat1 -->
 279.131 -<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
 279.132 -                                  U+00D6 ISOlat1 -->
 279.133 -<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
 279.134 -<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
 279.135 -                                  = latin capital letter O slash,
 279.136 -                                  U+00D8 ISOlat1 -->
 279.137 -<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
 279.138 -                                  U+00D9 ISOlat1 -->
 279.139 -<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
 279.140 -                                  U+00DA ISOlat1 -->
 279.141 -<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
 279.142 -                                  U+00DB ISOlat1 -->
 279.143 -<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
 279.144 -                                  U+00DC ISOlat1 -->
 279.145 -<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
 279.146 -                                  U+00DD ISOlat1 -->
 279.147 -<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
 279.148 -                                  U+00DE ISOlat1 -->
 279.149 -<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
 279.150 -                                  U+00DF ISOlat1 -->
 279.151 -<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
 279.152 -                                  = latin small letter a grave,
 279.153 -                                  U+00E0 ISOlat1 -->
 279.154 -<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
 279.155 -                                  U+00E1 ISOlat1 -->
 279.156 -<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
 279.157 -                                  U+00E2 ISOlat1 -->
 279.158 -<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
 279.159 -                                  U+00E3 ISOlat1 -->
 279.160 -<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
 279.161 -                                  U+00E4 ISOlat1 -->
 279.162 -<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
 279.163 -                                  = latin small letter a ring,
 279.164 -                                  U+00E5 ISOlat1 -->
 279.165 -<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
 279.166 -                                  = latin small ligature ae, U+00E6 ISOlat1 -->
 279.167 -<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
 279.168 -                                  U+00E7 ISOlat1 -->
 279.169 -<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
 279.170 -                                  U+00E8 ISOlat1 -->
 279.171 -<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
 279.172 -                                  U+00E9 ISOlat1 -->
 279.173 -<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
 279.174 -                                  U+00EA ISOlat1 -->
 279.175 -<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
 279.176 -                                  U+00EB ISOlat1 -->
 279.177 -<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
 279.178 -                                  U+00EC ISOlat1 -->
 279.179 -<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
 279.180 -                                  U+00ED ISOlat1 -->
 279.181 -<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
 279.182 -                                  U+00EE ISOlat1 -->
 279.183 -<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
 279.184 -                                  U+00EF ISOlat1 -->
 279.185 -<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
 279.186 -<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
 279.187 -                                  U+00F1 ISOlat1 -->
 279.188 -<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
 279.189 -                                  U+00F2 ISOlat1 -->
 279.190 -<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
 279.191 -                                  U+00F3 ISOlat1 -->
 279.192 -<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
 279.193 -                                  U+00F4 ISOlat1 -->
 279.194 -<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
 279.195 -                                  U+00F5 ISOlat1 -->
 279.196 -<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
 279.197 -                                  U+00F6 ISOlat1 -->
 279.198 -<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
 279.199 -<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
 279.200 -                                  = latin small letter o slash,
 279.201 -                                  U+00F8 ISOlat1 -->
 279.202 -<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
 279.203 -                                  U+00F9 ISOlat1 -->
 279.204 -<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
 279.205 -                                  U+00FA ISOlat1 -->
 279.206 -<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
 279.207 -                                  U+00FB ISOlat1 -->
 279.208 -<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
 279.209 -                                  U+00FC ISOlat1 -->
 279.210 -<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
 279.211 -                                  U+00FD ISOlat1 -->
 279.212 -<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
 279.213 -                                  U+00FE ISOlat1 -->
 279.214 -<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
 279.215 -                                  U+00FF ISOlat1 -->
 279.216 -
 279.217 -<!--================== Imported Names ====================================-->
 279.218 -
 279.219 -<!ENTITY % ContentType "CDATA">
 279.220 -    <!-- media type, as per [RFC2045] -->
 279.221 -
 279.222 -<!ENTITY % ContentTypes "CDATA">
 279.223 -    <!-- comma-separated list of media types, as per [RFC2045] -->
 279.224 -
 279.225 -<!ENTITY % Charset "CDATA">
 279.226 -    <!-- a character encoding, as per [RFC2045] -->
 279.227 -
 279.228 -<!ENTITY % Charsets "CDATA">
 279.229 -    <!-- a space separated list of character encodings, as per [RFC2045] -->
 279.230 -
 279.231 -<!ENTITY % LanguageCode "NMTOKEN">
 279.232 -    <!-- a language code, as per [RFC3066] -->
 279.233 -
 279.234 -<!ENTITY % Character "CDATA">
 279.235 -    <!-- a single character, as per section 2.2 of [XML] -->
 279.236 -
 279.237 -<!ENTITY % Number "CDATA">
 279.238 -    <!-- one or more digits -->
 279.239 -
 279.240 -<!ENTITY % LinkTypes "CDATA">
 279.241 -    <!-- space-separated list of link types -->
 279.242 -
 279.243 -<!ENTITY % MediaDesc "CDATA">
 279.244 -    <!-- single or comma-separated list of media descriptors -->
 279.245 -
 279.246 -<!ENTITY % URI "CDATA">
 279.247 -    <!-- a Uniform Resource Identifier, see [RFC2396] -->
 279.248 -
 279.249 -<!ENTITY % UriList "CDATA">
 279.250 -    <!-- a space separated list of Uniform Resource Identifiers -->
 279.251 -
 279.252 -<!ENTITY % Datetime "CDATA">
 279.253 -    <!-- date and time information. ISO date format -->
 279.254 -
 279.255 -<!ENTITY % Script "CDATA">
 279.256 -    <!-- script expression -->
 279.257 -
 279.258 -<!ENTITY % StyleSheet "CDATA">
 279.259 -    <!-- style sheet data -->
 279.260 -
 279.261 -<!ENTITY % Text "CDATA">
 279.262 -    <!-- used for titles etc. -->
 279.263 -
 279.264 -<!ENTITY % FrameTarget "NMTOKEN">
 279.265 -    <!-- render in this frame -->
 279.266 -
 279.267 -<!ENTITY % Length "CDATA">
 279.268 -    <!-- nn for pixels or nn% for percentage length -->
 279.269 -
 279.270 -<!ENTITY % MultiLength "CDATA">
 279.271 -    <!-- pixel, percentage, or relative -->
 279.272 -
 279.273 -<!ENTITY % Pixels "CDATA">
 279.274 -    <!-- integer representing length in pixels -->
 279.275 -
 279.276 -<!-- these are used for image maps -->
 279.277 -
 279.278 -<!ENTITY % Shape "(rect|circle|poly|default)">
 279.279 -
 279.280 -<!ENTITY % Coords "CDATA">
 279.281 -    <!-- comma separated list of lengths -->
 279.282 -
 279.283 -<!-- used for object, applet, img, input and iframe -->
 279.284 -<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
 279.285 -
 279.286 -<!-- a color using sRGB: #RRGGBB as Hex values -->
 279.287 -<!ENTITY % Color "CDATA">
 279.288 -
 279.289 -<!-- There are also 16 widely known color names with their sRGB values:
 279.290 -
 279.291 -    Black  = #000000    Green  = #008000
 279.292 -    Silver = #C0C0C0    Lime   = #00FF00
 279.293 -    Gray   = #808080    Olive  = #808000
 279.294 -    White  = #FFFFFF    Yellow = #FFFF00
 279.295 -    Maroon = #800000    Navy   = #000080
 279.296 -    Red    = #FF0000    Blue   = #0000FF
 279.297 -    Purple = #800080    Teal   = #008080
 279.298 -    Fuchsia= #FF00FF    Aqua   = #00FFFF
 279.299 --->
 279.300 -
 279.301 -<!--=================== Generic Attributes ===============================-->
 279.302 -
 279.303 -<!-- core attributes common to most elements
 279.304 -  id       document-wide unique id
 279.305 -  class    space separated list of classes
 279.306 -  style    associated style info
 279.307 -  title    advisory title/amplification
 279.308 --->
 279.309 -<!ENTITY % coreattrs
 279.310 - "id          ID             #IMPLIED
 279.311 -  class       CDATA          #IMPLIED
 279.312 -  style       %StyleSheet;   #IMPLIED
 279.313 -  title       %Text;         #IMPLIED"
 279.314 -  >
 279.315 -
 279.316 -<!-- internationalization attributes
 279.317 -  lang        language code (backwards compatible)
 279.318 -  xml:lang    language code (as per XML 1.0 spec)
 279.319 -  dir         direction for weak/neutral text
 279.320 --->
 279.321 -<!ENTITY % i18n
 279.322 - "lang        %LanguageCode; #IMPLIED
 279.323 -  xml:lang    %LanguageCode; #IMPLIED
 279.324 -  dir         (ltr|rtl)      #IMPLIED"
 279.325 -  >
 279.326 -
 279.327 -<!-- attributes for common UI events
 279.328 -  onclick     a pointer button was clicked
 279.329 -  ondblclick  a pointer button was double clicked
 279.330 -  onmousedown a pointer button was pressed down
 279.331 -  onmouseup   a pointer button was released
 279.332 -  onmousemove a pointer was moved onto the element
 279.333 -  onmouseout  a pointer was moved away from the element
 279.334 -  onkeypress  a key was pressed and released
 279.335 -  onkeydown   a key was pressed down
 279.336 -  onkeyup     a key was released
 279.337 --->
 279.338 -<!ENTITY % events
 279.339 - "onclick     %Script;       #IMPLIED
 279.340 -  ondblclick  %Script;       #IMPLIED
 279.341 -  onmousedown %Script;       #IMPLIED
 279.342 -  onmouseup   %Script;       #IMPLIED
 279.343 -  onmouseover %Script;       #IMPLIED
 279.344 -  onmousemove %Script;       #IMPLIED
 279.345 -  onmouseout  %Script;       #IMPLIED
 279.346 -  onkeypress  %Script;       #IMPLIED
 279.347 -  onkeydown   %Script;       #IMPLIED
 279.348 -  onkeyup     %Script;       #IMPLIED"
 279.349 -  >
 279.350 -
 279.351 -<!-- attributes for elements that can get the focus
 279.352 -  accesskey   accessibility key character
 279.353 -  tabindex    position in tabbing order
 279.354 -  onfocus     the element got the focus
 279.355 -  onblur      the element lost the focus
 279.356 --->
 279.357 -<!ENTITY % focus
 279.358 - "accesskey   %Character;    #IMPLIED
 279.359 -  tabindex    %Number;       #IMPLIED
 279.360 -  onfocus     %Script;       #IMPLIED
 279.361 -  onblur      %Script;       #IMPLIED"
 279.362 -  >
 279.363 -
 279.364 -<!ENTITY % attrs "%coreattrs; %i18n; %events;">
 279.365 -
 279.366 -<!-- text alignment for p, div, h1-h6. The default is
 279.367 -     align="left" for ltr headings, "right" for rtl -->
 279.368 -
 279.369 -<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
 279.370 -
 279.371 -<!--=================== Text Elements ====================================-->
 279.372 -
 279.373 -<!ENTITY % editstuff
 279.374 -   "edit:example | edit:schema | edit:thisversion | edit:date | 
 279.375 -    edit:previousversion | edit:latestversion | edit:toc | edit:copyright">
 279.376 -
 279.377 -<!ENTITY % special.extra
 279.378 -   "object | applet | img | map | iframe">
 279.379 -	
 279.380 -<!ENTITY % special.basic
 279.381 -	"br | span | bdo">
 279.382 -
 279.383 -<!ENTITY % special
 279.384 -   "%special.basic; | %special.extra;">
 279.385 -
 279.386 -<!ENTITY % fontstyle.extra "big | small | font | basefont">
 279.387 -
 279.388 -<!ENTITY % fontstyle.basic "tt | i | b | u
 279.389 -                      | s | strike ">
 279.390 -
 279.391 -<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
 279.392 -
 279.393 -<!ENTITY % phrase.extra "sub | sup">
 279.394 -<!ENTITY % phrase.basic "em | strong | dfn | code | q |
 279.395 -                   samp | kbd | var | cite | abbr | acronym">
 279.396 -
 279.397 -<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
 279.398 -
 279.399 -<!ENTITY % inline.forms "input | select | textarea | label | button">
 279.400 -
 279.401 -<!-- these can occur at block or inline level -->
 279.402 -<!ENTITY % misc.inline "ins | del | script">
 279.403 -
 279.404 -<!-- these can only occur at block level -->
 279.405 -<!ENTITY % misc "noscript | %misc.inline;">
 279.406 -
 279.407 -<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
 279.408 -
 279.409 -<!-- %Inline; covers inline or "text-level" elements -->
 279.410 -<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;| %editstuff;)*">
 279.411 -
 279.412 -<!--================== Block level elements ==============================-->
 279.413 -
 279.414 -<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
 279.415 -<!ENTITY % lists "ul | ol | dl | menu | dir">
 279.416 -<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes | %editstuff;">
 279.417 -
 279.418 -<!ENTITY % block
 279.419 -    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
 279.420 -
 279.421 -<!-- %Flow; mixes block and inline and is used for list items etc. -->
 279.422 -<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc; )*">
 279.423 -
 279.424 -<!--================== Content models for exclusions =====================-->
 279.425 -
 279.426 -<!-- a elements use %Inline; excluding a -->
 279.427 -
 279.428 -<!ENTITY % a.content
 279.429 -   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
 279.430 -
 279.431 -<!-- pre uses %Inline excluding img, object, applet, big, small,
 279.432 -     font, or basefont -->
 279.433 -
 279.434 -<!ENTITY % pre.content
 279.435 -   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
 279.436 -	   %inline.forms; | %misc.inline;)*">
 279.437 -
 279.438 -<!-- form uses %Flow; excluding form -->
 279.439 -
 279.440 -<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
 279.441 -
 279.442 -<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
 279.443 -
 279.444 -<!ENTITY % button.content
 279.445 -   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
 279.446 -      table | br | span | bdo | object | applet | img | map |
 279.447 -      %fontstyle; | %phrase; | %misc;)*">
 279.448 -
 279.449 -<!--================ Document Structure ==================================-->
 279.450 -
 279.451 -<!-- the namespace URI designates the document profile -->
 279.452 -
 279.453 -<!ELEMENT html (head, body)>
 279.454 -<!ATTLIST html
 279.455 -  %i18n;
 279.456 -  id          ID             #IMPLIED
 279.457 -  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
 279.458 -  xmlns:edit       %URI;          #FIXED 'http://xmlns.grorg.org/SVGT12NG/'
 279.459 -  >
 279.460 -
 279.461 -<!--================ Document Head =======================================-->
 279.462 -
 279.463 -<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
 279.464 -
 279.465 -<!-- content model is %head.misc; combined with a single
 279.466 -     title and an optional base element in any order -->
 279.467 -
 279.468 -<!ELEMENT head (%head.misc;,
 279.469 -     ((title, %head.misc;, (base, %head.misc;)?) |
 279.470 -      (base, %head.misc;, (title, %head.misc;))))>
 279.471 -
 279.472 -<!ATTLIST head
 279.473 -  %i18n;
 279.474 -  id          ID             #IMPLIED
 279.475 -  profile     %URI;          #IMPLIED
 279.476 -  >
 279.477 -
 279.478 -<!-- The title element is not considered part of the flow of text.
 279.479 -       It should be displayed, for example as the page header or
 279.480 -       window title. Exactly one title is required per document.
 279.481 -    -->
 279.482 -<!ELEMENT title (#PCDATA)>
 279.483 -<!ATTLIST title 
 279.484 -  %i18n;
 279.485 -  id          ID             #IMPLIED
 279.486 -  >
 279.487 -
 279.488 -<!-- document base URI -->
 279.489 -
 279.490 -<!ELEMENT base EMPTY>
 279.491 -<!ATTLIST base
 279.492 -  id          ID             #IMPLIED
 279.493 -  href        %URI;          #IMPLIED
 279.494 -  target      %FrameTarget;  #IMPLIED
 279.495 -  >
 279.496 -
 279.497 -<!-- generic metainformation -->
 279.498 -<!ELEMENT meta EMPTY>
 279.499 -<!ATTLIST meta
 279.500 -  %i18n;
 279.501 -  id          ID             #IMPLIED
 279.502 -  http-equiv  CDATA          #IMPLIED
 279.503 -  name        CDATA          #IMPLIED
 279.504 -  content     CDATA          #REQUIRED
 279.505 -  scheme      CDATA          #IMPLIED
 279.506 -  >
 279.507 -
 279.508 -<!--
 279.509 -  Relationship values can be used in principle:
 279.510 -
 279.511 -   a) for document specific toolbars/menus when used
 279.512 -      with the link element in document head e.g.
 279.513 -        start, contents, previous, next, index, end, help
 279.514 -   b) to link to a separate style sheet (rel="stylesheet")
 279.515 -   c) to make a link to a script (rel="script")
 279.516 -   d) by stylesheets to control how collections of
 279.517 -      html nodes are rendered into printed documents
 279.518 -   e) to make a link to a printable version of this document
 279.519 -      e.g. a PostScript or PDF version (rel="alternate" media="print")
 279.520 --->
 279.521 -
 279.522 -<!ELEMENT link EMPTY>
 279.523 -<!ATTLIST link
 279.524 -  %attrs;
 279.525 -  charset     %Charset;      #IMPLIED
 279.526 -  href        %URI;          #IMPLIED
 279.527 -  hreflang    %LanguageCode; #IMPLIED
 279.528 -  type        %ContentType;  #IMPLIED
 279.529 -  rel         %LinkTypes;    #IMPLIED
 279.530 -  rev         %LinkTypes;    #IMPLIED
 279.531 -  media       %MediaDesc;    #IMPLIED
 279.532 -  target      %FrameTarget;  #IMPLIED
 279.533 -  >
 279.534 -
 279.535 -<!-- style info, which may include CDATA sections -->
 279.536 -<!ELEMENT style (#PCDATA)>
 279.537 -<!ATTLIST style
 279.538 -  %i18n;
 279.539 -  id          ID             #IMPLIED
 279.540 -  type        %ContentType;  #REQUIRED
 279.541 -  media       %MediaDesc;    #IMPLIED
 279.542 -  title       %Text;         #IMPLIED
 279.543 -  xml:space   (preserve)     #FIXED 'preserve'
 279.544 -  >
 279.545 -
 279.546 -<!-- script statements, which may include CDATA sections -->
 279.547 -<!ELEMENT script (#PCDATA)>
 279.548 -<!ATTLIST script
 279.549 -  id          ID             #IMPLIED
 279.550 -  charset     %Charset;      #IMPLIED
 279.551 -  type        %ContentType;  #REQUIRED
 279.552 -  language    CDATA          #IMPLIED
 279.553 -  src         %URI;          #IMPLIED
 279.554 -  defer       (defer)        #IMPLIED
 279.555 -  xml:space   (preserve)     #FIXED 'preserve'
 279.556 -  >
 279.557 -
 279.558 -<!-- alternate content container for non script-based rendering -->
 279.559 -
 279.560 -<!ELEMENT noscript %Flow;>
 279.561 -<!ATTLIST noscript
 279.562 -  %attrs;
 279.563 -  >
 279.564 -
 279.565 -<!--======================= Frames =======================================-->
 279.566 -
 279.567 -<!-- inline subwindow -->
 279.568 -
 279.569 -<!ELEMENT iframe %Flow;>
 279.570 -<!ATTLIST iframe
 279.571 -  %coreattrs;
 279.572 -  longdesc    %URI;          #IMPLIED
 279.573 -  name        NMTOKEN        #IMPLIED
 279.574 -  src         %URI;          #IMPLIED
 279.575 -  frameborder (1|0)          "1"
 279.576 -  marginwidth %Pixels;       #IMPLIED
 279.577 -  marginheight %Pixels;      #IMPLIED
 279.578 -  scrolling   (yes|no|auto)  "auto"
 279.579 -  align       %ImgAlign;     #IMPLIED
 279.580 -  height      %Length;       #IMPLIED
 279.581 -  width       %Length;       #IMPLIED
 279.582 -  >
 279.583 -
 279.584 -<!-- alternate content container for non frame-based rendering -->
 279.585 -
 279.586 -<!ELEMENT noframes %Flow;>
 279.587 -<!ATTLIST noframes
 279.588 -  %attrs;
 279.589 -  >
 279.590 -
 279.591 -<!--=================== Document Body ====================================-->
 279.592 -
 279.593 -<!ELEMENT body %Flow;>
 279.594 -<!ATTLIST body
 279.595 -  %attrs;
 279.596 -  onload      %Script;       #IMPLIED
 279.597 -  onunload    %Script;       #IMPLIED
 279.598 -  background  %URI;          #IMPLIED
 279.599 -  bgcolor     %Color;        #IMPLIED
 279.600 -  text        %Color;        #IMPLIED
 279.601 -  link        %Color;        #IMPLIED
 279.602 -  vlink       %Color;        #IMPLIED
 279.603 -  alink       %Color;        #IMPLIED
 279.604 -  >
 279.605 -
 279.606 -<!ELEMENT div %Flow;>  <!-- generic language/style container -->
 279.607 -<!ATTLIST div
 279.608 -  %attrs;
 279.609 -  %TextAlign;
 279.610 -  >
 279.611 -  
 279.612 - <!--================Special edit inclusions  =========================-->
 279.613 - 
 279.614 -  <!ELEMENT edit:example %Flow;>
 279.615 -  <!ATTLIST edit:example
 279.616 -    href CDATA #IMPLIED
 279.617 -    link CDATA #IMPLIED
 279.618 -    image CDATA #IMPLIED
 279.619 -  >
 279.620 -  
 279.621 -    <!ELEMENT edit:schema %Flow;>
 279.622 -  <!ATTLIST edit:schema
 279.623 -    element CDATA #IMPLIED
 279.624 -  >
 279.625 -
 279.626 -   <!ELEMENT edit:date EMPTY>
 279.627 -   <!ELEMENT edit:thisversion EMPTY>
 279.628 -   <!ELEMENT edit:previousversion EMPTY>
 279.629 -   <!ELEMENT edit:latestversion EMPTY>
 279.630 -   <!ELEMENT edit:toc EMPTY>
 279.631 -   <!ELEMENT edit:copyright EMPTY>
 279.632 -
 279.633 -<!--=================== Paragraphs =======================================-->
 279.634 -
 279.635 -<!ELEMENT p %Inline;>
 279.636 -<!ATTLIST p
 279.637 -  %attrs;
 279.638 -  %TextAlign;
 279.639 -  >
 279.640 -
 279.641 -<!--=================== Headings =========================================-->
 279.642 -
 279.643 -<!--
 279.644 -  There are six levels of headings from h1 (the most important)
 279.645 -  to h6 (the least important).
 279.646 --->
 279.647 -
 279.648 -<!ELEMENT h1  %Inline;>
 279.649 -<!ATTLIST h1
 279.650 -  %attrs;
 279.651 -  %TextAlign;
 279.652 -  >
 279.653 -
 279.654 -<!ELEMENT h2 %Inline;>
 279.655 -<!ATTLIST h2
 279.656 -  %attrs;
 279.657 -  %TextAlign;
 279.658 -  >
 279.659 -
 279.660 -<!ELEMENT h3 %Inline;>
 279.661 -<!ATTLIST h3
 279.662 -  %attrs;
 279.663 -  %TextAlign;
 279.664 -  >
 279.665 -
 279.666 -<!ELEMENT h4 %Inline;>
 279.667 -<!ATTLIST h4
 279.668 -  %attrs;
 279.669 -  %TextAlign;
 279.670 -  >
 279.671 -
 279.672 -<!ELEMENT h5 %Inline;>
 279.673 -<!ATTLIST h5
 279.674 -  %attrs;
 279.675 -  %TextAlign;
 279.676 -  >
 279.677 -
 279.678 -<!ELEMENT h6 %Inline;>
 279.679 -<!ATTLIST h6
 279.680 -  %attrs;
 279.681 -  %TextAlign;
 279.682 -  >
 279.683 -
 279.684 -<!--=================== Lists ============================================-->
 279.685 -
 279.686 -<!-- Unordered list bullet styles -->
 279.687 -
 279.688 -<!ENTITY % ULStyle "(disc|square|circle)">
 279.689 -
 279.690 -<!-- Unordered list -->
 279.691 -
 279.692 -<!ELEMENT ul (li)+>
 279.693 -<!ATTLIST ul
 279.694 -  %attrs;
 279.695 -  type        %ULStyle;     #IMPLIED
 279.696 -  compact     (compact)     #IMPLIED
 279.697 -  >
 279.698 -
 279.699 -<!-- Ordered list numbering style
 279.700 -
 279.701 -    1   arabic numbers      1, 2, 3, ...
 279.702 -    a   lower alpha         a, b, c, ...
 279.703 -    A   upper alpha         A, B, C, ...
 279.704 -    i   lower roman         i, ii, iii, ...
 279.705 -    I   upper roman         I, II, III, ...
 279.706 -
 279.707 -    The style is applied to the sequence number which by default
 279.708 -    is reset to 1 for the first list item in an ordered list.
 279.709 --->
 279.710 -<!ENTITY % OLStyle "CDATA">
 279.711 -
 279.712 -<!-- Ordered (numbered) list -->
 279.713 -
 279.714 -<!ELEMENT ol (li)+>
 279.715 -<!ATTLIST ol
 279.716 -  %attrs;
 279.717 -  type        %OLStyle;      #IMPLIED
 279.718 -  compact     (compact)      #IMPLIED
 279.719 -  start       %Number;       #IMPLIED
 279.720 -  >
 279.721 -
 279.722 -<!-- single column list (DEPRECATED) --> 
 279.723 -<!ELEMENT menu (li)+>
 279.724 -<!ATTLIST menu
 279.725 -  %attrs;
 279.726 -  compact     (compact)     #IMPLIED
 279.727 -  >
 279.728 -
 279.729 -<!-- multiple column list (DEPRECATED) --> 
 279.730 -<!ELEMENT dir (li)+>
 279.731 -<!ATTLIST dir
 279.732 -  %attrs;
 279.733 -  compact     (compact)     #IMPLIED
 279.734 -  >
 279.735 -
 279.736 -<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
 279.737 -<!ENTITY % LIStyle "CDATA">
 279.738 -
 279.739 -<!-- list item -->
 279.740 -
 279.741 -<!ELEMENT li %Flow;>
 279.742 -<!ATTLIST li
 279.743 -  %attrs;
 279.744 -  type        %LIStyle;      #IMPLIED
 279.745 -  value       %Number;       #IMPLIED
 279.746 -  >
 279.747 -
 279.748 -<!-- definition lists - dt for term, dd for its definition -->
 279.749 -
 279.750 -<!ELEMENT dl (dt|dd)+>
 279.751 -<!ATTLIST dl
 279.752 -  %attrs;
 279.753 -  compact     (compact)      #IMPLIED
 279.754 -  >
 279.755 -
 279.756 -<!ELEMENT dt %Inline;>
 279.757 -<!ATTLIST dt
 279.758 -  %attrs;
 279.759 -  >
 279.760 -
 279.761 -<!ELEMENT dd %Flow;>
 279.762 -<!ATTLIST dd
 279.763 -  %attrs;
 279.764 -  >
 279.765 -
 279.766 -<!--=================== Address ==========================================-->
 279.767 -
 279.768 -<!-- information on author -->
 279.769 -
 279.770 -<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
 279.771 -<!ATTLIST address
 279.772 -  %attrs;
 279.773 -  >
 279.774 -
 279.775 -<!--=================== Horizontal Rule ==================================-->
 279.776 -
 279.777 -<!ELEMENT hr EMPTY>
 279.778 -<!ATTLIST hr
 279.779 -  %attrs;
 279.780 -  align       (left|center|right) #IMPLIED
 279.781 -  noshade     (noshade)      #IMPLIED
 279.782 -  size        %Pixels;       #IMPLIED
 279.783 -  width       %Length;       #IMPLIED
 279.784 -  >
 279.785 -
 279.786 -<!--=================== Preformatted Text ================================-->
 279.787 -
 279.788 -<!-- content is %Inline; excluding 
 279.789 -        "img|object|applet|big|small|sub|sup|font|basefont" -->
 279.790 -
 279.791 -<!ELEMENT pre %pre.content;>
 279.792 -<!ATTLIST pre
 279.793 -  %attrs;
 279.794 -  width       %Number;      #IMPLIED
 279.795 -  xml:space   (preserve)    #FIXED 'preserve'
 279.796 -  >
 279.797 -
 279.798 -<!--=================== Block-like Quotes ================================-->
 279.799 -
 279.800 -<!ELEMENT blockquote %Flow;>
 279.801 -<!ATTLIST blockquote
 279.802 -  %attrs;
 279.803 -  cite        %URI;          #IMPLIED
 279.804 -  >
 279.805 -
 279.806 -<!--=================== Text alignment ===================================-->
 279.807 -
 279.808 -<!-- center content -->
 279.809 -<!ELEMENT center %Flow;>
 279.810 -<!ATTLIST center
 279.811 -  %attrs;
 279.812 -  >
 279.813 -
 279.814 -<!--=================== Inserted/Deleted Text ============================-->
 279.815 -
 279.816 -<!--
 279.817 -  ins/del are allowed in block and inline content, but its
 279.818 -  inappropriate to include block content within an ins element
 279.819 -  occurring in inline content.
 279.820 --->
 279.821 -<!ELEMENT ins %Flow;>
 279.822 -<!ATTLIST ins
 279.823 -  %attrs;
 279.824 -  cite        %URI;          #IMPLIED
 279.825 -  datetime    %Datetime;     #IMPLIED
 279.826 -  >
 279.827 -
 279.828 -<!ELEMENT del %Flow;>
 279.829 -<!ATTLIST del
 279.830 -  %attrs;
 279.831 -  cite        %URI;          #IMPLIED
 279.832 -  datetime    %Datetime;     #IMPLIED
 279.833 -  >
 279.834 -
 279.835 -<!--================== The Anchor Element ================================-->
 279.836 -
 279.837 -<!-- content is %Inline; except that anchors shouldn't be nested -->
 279.838 -
 279.839 -<!ELEMENT a %a.content;>
 279.840 -<!ATTLIST a
 279.841 -  %attrs;
 279.842 -  %focus;
 279.843 -  charset     %Charset;      #IMPLIED
 279.844 -  type        %ContentType;  #IMPLIED
 279.845 -  name        NMTOKEN        #IMPLIED
 279.846 -  href        %URI;          #IMPLIED
 279.847 -  hreflang    %LanguageCode; #IMPLIED
 279.848 -  rel         %LinkTypes;    #IMPLIED
 279.849 -  rev         %LinkTypes;    #IMPLIED
 279.850 -  shape       %Shape;        "rect"
 279.851 -  coords      %Coords;       #IMPLIED
 279.852 -  target      %FrameTarget;  #IMPLIED
 279.853 -  >
 279.854 -
 279.855 -<!--===================== Inline Elements ================================-->
 279.856 -
 279.857 -<!ELEMENT span %Inline;> <!-- generic language/style container -->
 279.858 -<!ATTLIST span
 279.859 -  %attrs;
 279.860 -  >
 279.861 -
 279.862 -<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
 279.863 -<!ATTLIST bdo
 279.864 -  %coreattrs;
 279.865 -  %events;
 279.866 -  lang        %LanguageCode; #IMPLIED
 279.867 -  xml:lang    %LanguageCode; #IMPLIED
 279.868 -  dir         (ltr|rtl)      #REQUIRED
 279.869 -  >
 279.870 -
 279.871 -<!ELEMENT br EMPTY>   <!-- forced line break -->
 279.872 -<!ATTLIST br
 279.873 -  %coreattrs;
 279.874 -  clear       (left|all|right|none) "none"
 279.875 -  >
 279.876 -
 279.877 -<!ELEMENT em %Inline;>   <!-- emphasis -->
 279.878 -<!ATTLIST em %attrs;>
 279.879 -
 279.880 -<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
 279.881 -<!ATTLIST strong %attrs;>
 279.882 -
 279.883 -<!ELEMENT dfn %Inline;>   <!-- definitional -->
 279.884 -<!ATTLIST dfn %attrs;>
 279.885 -
 279.886 -<!ELEMENT code %Inline;>   <!-- program code -->
 279.887 -<!ATTLIST code %attrs;>
 279.888 -
 279.889 -<!ELEMENT samp %Inline;>   <!-- sample -->
 279.890 -<!ATTLIST samp %attrs;>
 279.891 -
 279.892 -<!ELEMENT kbd %Inline;>  <!-- something user would type -->
 279.893 -<!ATTLIST kbd %attrs;>
 279.894 -
 279.895 -<!ELEMENT var %Inline;>   <!-- variable -->
 279.896 -<!ATTLIST var %attrs;>
 279.897 -
 279.898 -<!ELEMENT cite %Inline;>   <!-- citation -->
 279.899 -<!ATTLIST cite %attrs;>
 279.900 -
 279.901 -<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
 279.902 -<!ATTLIST abbr %attrs;>
 279.903 -
 279.904 -<!ELEMENT acronym %Inline;>   <!-- acronym -->
 279.905 -<!ATTLIST acronym %attrs;>
 279.906 -
 279.907 -<!ELEMENT q %Inline;>   <!-- inlined quote -->
 279.908 -<!ATTLIST q
 279.909 -  %attrs;
 279.910 -  cite        %URI;          #IMPLIED
 279.911 -  >
 279.912 -
 279.913 -<!ELEMENT sub %Inline;> <!-- subscript -->
 279.914 -<!ATTLIST sub %attrs;>
 279.915 -
 279.916 -<!ELEMENT sup %Inline;> <!-- superscript -->
 279.917 -<!ATTLIST sup %attrs;>
 279.918 -
 279.919 -<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
 279.920 -<!ATTLIST tt %attrs;>
 279.921 -
 279.922 -<!ELEMENT i %Inline;>   <!-- italic font -->
 279.923 -<!ATTLIST i %attrs;>
 279.924 -
 279.925 -<!ELEMENT b %Inline;>   <!-- bold font -->
 279.926 -<!ATTLIST b %attrs;>
 279.927 -
 279.928 -<!ELEMENT big %Inline;>   <!-- bigger font -->
 279.929 -<!ATTLIST big %attrs;>
 279.930 -
 279.931 -<!ELEMENT small %Inline;>   <!-- smaller font -->
 279.932 -<!ATTLIST small %attrs;>
 279.933 -
 279.934 -<!ELEMENT u %Inline;>   <!-- underline -->
 279.935 -<!ATTLIST u %attrs;>
 279.936 -
 279.937 -<!ELEMENT s %Inline;>   <!-- strike-through -->
 279.938 -<!ATTLIST s %attrs;>
 279.939 -
 279.940 -<!ELEMENT strike %Inline;>   <!-- strike-through -->
 279.941 -<!ATTLIST strike %attrs;>
 279.942 -
 279.943 -<!ELEMENT basefont EMPTY>  <!-- base font size -->
 279.944 -<!ATTLIST basefont
 279.945 -  id          ID             #IMPLIED
 279.946 -  size        CDATA          #REQUIRED
 279.947 -  color       %Color;        #IMPLIED
 279.948 -  face        CDATA          #IMPLIED
 279.949 -  >
 279.950 -
 279.951 -<!ELEMENT font %Inline;> <!-- local change to font -->
 279.952 -<!ATTLIST font
 279.953 -  %coreattrs;
 279.954 -  %i18n;
 279.955 -  size        CDATA          #IMPLIED
 279.956 -  color       %Color;        #IMPLIED
 279.957 -  face        CDATA          #IMPLIED
 279.958 -  >
 279.959 -
 279.960 -<!--==================== Object ======================================-->
 279.961 -<!--
 279.962 -  object is used to embed objects as part of HTML pages.
 279.963 -  param elements should precede other content. Parameters
 279.964 -  can also be expressed as attribute/value pairs on the
 279.965 -  object element itself when brevity is desired.
 279.966 --->
 279.967 -
 279.968 -<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
 279.969 -<!ATTLIST object
 279.970 -  %attrs;
 279.971 -  declare     (declare)      #IMPLIED
 279.972 -  classid     %URI;          #IMPLIED
 279.973 -  codebase    %URI;          #IMPLIED
 279.974 -  data        %URI;          #IMPLIED
 279.975 -  type        %ContentType;  #IMPLIED
 279.976 -  codetype    %ContentType;  #IMPLIED
 279.977 -  archive     %UriList;      #IMPLIED
 279.978 -  standby     %Text;         #IMPLIED
 279.979 -  height      %Length;       #IMPLIED
 279.980 -  width       %Length;       #IMPLIED
 279.981 -  usemap      %URI;          #IMPLIED
 279.982 -  name        NMTOKEN        #IMPLIED
 279.983 -  tabindex    %Number;       #IMPLIED
 279.984 -  align       %ImgAlign;     #IMPLIED
 279.985 -  border      %Pixels;       #IMPLIED
 279.986 -  hspace      %Pixels;       #IMPLIED
 279.987 -  vspace      %Pixels;       #IMPLIED
 279.988 -  >
 279.989 -
 279.990 -<!--
 279.991 -  param is used to supply a named property value.
 279.992 -  In XML it would seem natural to follow RDF and support an
 279.993 -  abbreviated syntax where the param elements are replaced
 279.994 -  by attribute value pairs on the object start tag.
 279.995 --->
 279.996 -<!ELEMENT param EMPTY>
 279.997 -<!ATTLIST param
 279.998 -  id          ID             #IMPLIED
 279.999 -  name        CDATA          #REQUIRED
279.1000 -  value       CDATA          #IMPLIED
279.1001 -  valuetype   (data|ref|object) "data"
279.1002 -  type        %ContentType;  #IMPLIED
279.1003 -  >
279.1004 -
279.1005 -<!--=================== Java applet ==================================-->
279.1006 -<!--
279.1007 -  One of code or object attributes must be present.
279.1008 -  Place param elements before other content.
279.1009 --->
279.1010 -<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
279.1011 -<!ATTLIST applet
279.1012 -  %coreattrs;
279.1013 -  codebase    %URI;          #IMPLIED
279.1014 -  archive     CDATA          #IMPLIED
279.1015 -  code        CDATA          #IMPLIED
279.1016 -  object      CDATA          #IMPLIED
279.1017 -  alt         %Text;         #IMPLIED
279.1018 -  name        NMTOKEN        #IMPLIED
279.1019 -  width       %Length;       #REQUIRED
279.1020 -  height      %Length;       #REQUIRED
279.1021 -  align       %ImgAlign;     #IMPLIED
279.1022 -  hspace      %Pixels;       #IMPLIED
279.1023 -  vspace      %Pixels;       #IMPLIED
279.1024 -  >
279.1025 -
279.1026 -<!--=================== Images ===========================================-->
279.1027 -
279.1028 -<!--
279.1029 -   To avoid accessibility problems for people who aren't
279.1030 -   able to see the image, you should provide a text
279.1031 -   description using the alt and longdesc attributes.
279.1032 -   In addition, avoid the use of server-side image maps.
279.1033 --->
279.1034 -
279.1035 -<!ELEMENT img EMPTY>
279.1036 -<!ATTLIST img
279.1037 -  %attrs;
279.1038 -  src         %URI;          #REQUIRED
279.1039 -  alt         %Text;         #REQUIRED
279.1040 -  name        NMTOKEN        #IMPLIED
279.1041 -  longdesc    %URI;          #IMPLIED
279.1042 -  height      %Length;       #IMPLIED
279.1043 -  width       %Length;       #IMPLIED
279.1044 -  usemap      %URI;          #IMPLIED
279.1045 -  ismap       (ismap)        #IMPLIED
279.1046 -  align       %ImgAlign;     #IMPLIED
279.1047 -  border      %Length;       #IMPLIED
279.1048 -  hspace      %Pixels;       #IMPLIED
279.1049 -  vspace      %Pixels;       #IMPLIED
279.1050 -  >
279.1051 -
279.1052 -<!-- usemap points to a map element which may be in this document
279.1053 -  or an external document, although the latter is not widely supported -->
279.1054 -
279.1055 -<!--================== Client-side image maps ============================-->
279.1056 -
279.1057 -<!-- These can be placed in the same document or grouped in a
279.1058 -     separate document although this isn't yet widely supported -->
279.1059 -
279.1060 -<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
279.1061 -<!ATTLIST map
279.1062 -  %i18n;
279.1063 -  %events;
279.1064 -  id          ID             #REQUIRED
279.1065 -  class       CDATA          #IMPLIED
279.1066 -  style       %StyleSheet;   #IMPLIED
279.1067 -  title       %Text;         #IMPLIED
279.1068 -  name        CDATA          #IMPLIED
279.1069 -  >
279.1070 -
279.1071 -<!ELEMENT area EMPTY>
279.1072 -<!ATTLIST area
279.1073 -  %attrs;
279.1074 -  %focus;
279.1075 -  shape       %Shape;        "rect"
279.1076 -  coords      %Coords;       #IMPLIED
279.1077 -  href        %URI;          #IMPLIED
279.1078 -  nohref      (nohref)       #IMPLIED
279.1079 -  alt         %Text;         #REQUIRED
279.1080 -  target      %FrameTarget;  #IMPLIED
279.1081 -  >
279.1082 -
279.1083 -<!--================ Forms ===============================================-->
279.1084 -
279.1085 -<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
279.1086 -
279.1087 -<!ATTLIST form
279.1088 -  %attrs;
279.1089 -  action      %URI;          #REQUIRED
279.1090 -  method      (get|post)     "get"
279.1091 -  name        NMTOKEN        #IMPLIED
279.1092 -  enctype     %ContentType;  "application/x-www-form-urlencoded"
279.1093 -  onsubmit    %Script;       #IMPLIED
279.1094 -  onreset     %Script;       #IMPLIED
279.1095 -  accept      %ContentTypes; #IMPLIED
279.1096 -  accept-charset %Charsets;  #IMPLIED
279.1097 -  target      %FrameTarget;  #IMPLIED
279.1098 -  >
279.1099 -
279.1100 -<!--
279.1101 -  Each label must not contain more than ONE field
279.1102 -  Label elements shouldn't be nested.
279.1103 --->
279.1104 -<!ELEMENT label %Inline;>
279.1105 -<!ATTLIST label
279.1106 -  %attrs;
279.1107 -  for         IDREF          #IMPLIED
279.1108 -  accesskey   %Character;    #IMPLIED
279.1109 -  onfocus     %Script;       #IMPLIED
279.1110 -  onblur      %Script;       #IMPLIED
279.1111 -  >
279.1112 -
279.1113 -<!ENTITY % InputType
279.1114 -  "(text | password | checkbox |
279.1115 -    radio | submit | reset |
279.1116 -    file | hidden | image | button)"
279.1117 -   >
279.1118 -
279.1119 -<!-- the name attribute is required for all but submit & reset -->
279.1120 -
279.1121 -<!ELEMENT input EMPTY>     <!-- form control -->
279.1122 -<!ATTLIST input
279.1123 -  %attrs;
279.1124 -  %focus;
279.1125 -  type        %InputType;    "text"
279.1126 -  name        CDATA          #IMPLIED
279.1127 -  value       CDATA          #IMPLIED
279.1128 -  checked     (checked)      #IMPLIED
279.1129 -  disabled    (disabled)     #IMPLIED
279.1130 -  readonly    (readonly)     #IMPLIED
279.1131 -  size        CDATA          #IMPLIED
279.1132 -  maxlength   %Number;       #IMPLIED
279.1133 -  src         %URI;          #IMPLIED
279.1134 -  alt         CDATA          #IMPLIED
279.1135 -  usemap      %URI;          #IMPLIED
279.1136 -  onselect    %Script;       #IMPLIED
279.1137 -  onchange    %Script;       #IMPLIED
279.1138 -  accept      %ContentTypes; #IMPLIED
279.1139 -  align       %ImgAlign;     #IMPLIED
279.1140 -  >
279.1141 -
279.1142 -<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
279.1143 -<!ATTLIST select
279.1144 -  %attrs;
279.1145 -  name        CDATA          #IMPLIED
279.1146 -  size        %Number;       #IMPLIED
279.1147 -  multiple    (multiple)     #IMPLIED
279.1148 -  disabled    (disabled)     #IMPLIED
279.1149 -  tabindex    %Number;       #IMPLIED
279.1150 -  onfocus     %Script;       #IMPLIED
279.1151 -  onblur      %Script;       #IMPLIED
279.1152 -  onchange    %Script;       #IMPLIED
279.1153 -  >
279.1154 -
279.1155 -<!ELEMENT optgroup (option)+>   <!-- option group -->
279.1156 -<!ATTLIST optgroup
279.1157 -  %attrs;
279.1158 -  disabled    (disabled)     #IMPLIED
279.1159 -  label       %Text;         #REQUIRED
279.1160 -  >
279.1161 -
279.1162 -<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
279.1163 -<!ATTLIST option
279.1164 -  %attrs;
279.1165 -  selected    (selected)     #IMPLIED
279.1166 -  disabled    (disabled)     #IMPLIED
279.1167 -  label       %Text;         #IMPLIED
279.1168 -  value       CDATA          #IMPLIED
279.1169 -  >
279.1170 -
279.1171 -<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
279.1172 -<!ATTLIST textarea
279.1173 -  %attrs;
279.1174 -  %focus;
279.1175 -  name        CDATA          #IMPLIED
279.1176 -  rows        %Number;       #REQUIRED
279.1177 -  cols        %Number;       #REQUIRED
279.1178 -  disabled    (disabled)     #IMPLIED
279.1179 -  readonly    (readonly)     #IMPLIED
279.1180 -  onselect    %Script;       #IMPLIED
279.1181 -  onchange    %Script;       #IMPLIED
279.1182 -  >
279.1183 -
279.1184 -<!--
279.1185 -  The fieldset element is used to group form fields.
279.1186 -  Only one legend element should occur in the content
279.1187 -  and if present should only be preceded by whitespace.
279.1188 --->
279.1189 -<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
279.1190 -<!ATTLIST fieldset
279.1191 -  %attrs;
279.1192 -  >
279.1193 -
279.1194 -<!ENTITY % LAlign "(top|bottom|left|right)">
279.1195 -
279.1196 -<!ELEMENT legend %Inline;>     <!-- fieldset label -->
279.1197 -<!ATTLIST legend
279.1198 -  %attrs;
279.1199 -  accesskey   %Character;    #IMPLIED
279.1200 -  align       %LAlign;       #IMPLIED
279.1201 -  >
279.1202 -
279.1203 -<!--
279.1204 - Content is %Flow; excluding a, form, form controls, iframe
279.1205 ---> 
279.1206 -<!ELEMENT button %button.content;>  <!-- push button -->
279.1207 -<!ATTLIST button
279.1208 -  %attrs;
279.1209 -  %focus;
279.1210 -  name        CDATA          #IMPLIED
279.1211 -  value       CDATA          #IMPLIED
279.1212 -  type        (button|submit|reset) "submit"
279.1213 -  disabled    (disabled)     #IMPLIED
279.1214 -  >
279.1215 -
279.1216 -<!-- single-line text input control (DEPRECATED) -->
279.1217 -<!ELEMENT isindex EMPTY>
279.1218 -<!ATTLIST isindex
279.1219 -  %coreattrs;
279.1220 -  %i18n;
279.1221 -  prompt      %Text;         #IMPLIED
279.1222 -  >
279.1223 -
279.1224 -<!--======================= Tables =======================================-->
279.1225 -
279.1226 -<!-- Derived from IETF HTML table standard, see [RFC1942] -->
279.1227 -
279.1228 -<!--
279.1229 - The border attribute sets the thickness of the frame around the
279.1230 - table. The default units are screen pixels.
279.1231 -
279.1232 - The frame attribute specifies which parts of the frame around
279.1233 - the table should be rendered. The values are not the same as
279.1234 - CALS to avoid a name clash with the valign attribute.
279.1235 --->
279.1236 -<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
279.1237 -
279.1238 -<!--
279.1239 - The rules attribute defines which rules to draw between cells:
279.1240 -
279.1241 - If rules is absent then assume:
279.1242 -     "none" if border is absent or border="0" otherwise "all"
279.1243 --->
279.1244 -
279.1245 -<!ENTITY % TRules "(none | groups | rows | cols | all)">
279.1246 -  
279.1247 -<!-- horizontal placement of table relative to document -->
279.1248 -<!ENTITY % TAlign "(left|center|right)">
279.1249 -
279.1250 -<!-- horizontal alignment attributes for cell contents
279.1251 -
279.1252 -  char        alignment char, e.g. char=':'
279.1253 -  charoff     offset for alignment char
279.1254 --->
279.1255 -<!ENTITY % cellhalign
279.1256 -  "align      (left|center|right|justify|char) #IMPLIED
279.1257 -   char       %Character;    #IMPLIED
279.1258 -   charoff    %Length;       #IMPLIED"
279.1259 -  >
279.1260 -
279.1261 -<!-- vertical alignment attributes for cell contents -->
279.1262 -<!ENTITY % cellvalign
279.1263 -  "valign     (top|middle|bottom|baseline) #IMPLIED"
279.1264 -  >
279.1265 -
279.1266 -<!ELEMENT table
279.1267 -     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
279.1268 -<!ELEMENT caption  %Inline;>
279.1269 -<!ELEMENT thead    (tr)+>
279.1270 -<!ELEMENT tfoot    (tr)+>
279.1271 -<!ELEMENT tbody    (tr)+>
279.1272 -<!ELEMENT colgroup (col)*>
279.1273 -<!ELEMENT col      EMPTY>
279.1274 -<!ELEMENT tr       (th|td)+>
279.1275 -<!ELEMENT th       %Flow;>
279.1276 -<!ELEMENT td       %Flow;>
279.1277 -
279.1278 -<!ATTLIST table
279.1279 -  %attrs;
279.1280 -  summary     %Text;         #IMPLIED
279.1281 -  width       %Length;       #IMPLIED
279.1282 -  border      %Pixels;       #IMPLIED
279.1283 -  frame       %TFrame;       #IMPLIED
279.1284 -  rules       %TRules;       #IMPLIED
279.1285 -  cellspacing %Length;       #IMPLIED
279.1286 -  cellpadding %Length;       #IMPLIED
279.1287 -  align       %TAlign;       #IMPLIED
279.1288 -  bgcolor     %Color;        #IMPLIED
279.1289 -  >
279.1290 -
279.1291 -<!ENTITY % CAlign "(top|bottom|left|right)">
279.1292 -
279.1293 -<!ATTLIST caption
279.1294 -  %attrs;
279.1295 -  align       %CAlign;       #IMPLIED
279.1296 -  >
279.1297 -
279.1298 -<!--
279.1299 -colgroup groups a set of col elements. It allows you to group
279.1300 -several semantically related columns together.
279.1301 --->
279.1302 -<!ATTLIST colgroup
279.1303 -  %attrs;
279.1304 -  span        %Number;       "1"
279.1305 -  width       %MultiLength;  #IMPLIED
279.1306 -  %cellhalign;
279.1307 -  %cellvalign;
279.1308 -  >
279.1309 -
279.1310 -<!--
279.1311 - col elements define the alignment properties for cells in
279.1312 - one or more columns.
279.1313 -
279.1314 - The width attribute specifies the width of the columns, e.g.
279.1315 -
279.1316 -     width=64        width in screen pixels
279.1317 -     width=0.5*      relative width of 0.5
279.1318 -
279.1319 - The span attribute causes the attributes of one
279.1320 - col element to apply to more than one column.
279.1321 --->
279.1322 -<!ATTLIST col
279.1323 -  %attrs;
279.1324 -  span        %Number;       "1"
279.1325 -  width       %MultiLength;  #IMPLIED
279.1326 -  %cellhalign;
279.1327 -  %cellvalign;
279.1328 -  >
279.1329 -
279.1330 -<!--
279.1331 -    Use thead to duplicate headers when breaking table
279.1332 -    across page boundaries, or for static headers when
279.1333 -    tbody sections are rendered in scrolling panel.
279.1334 -
279.1335 -    Use tfoot to duplicate footers when breaking table
279.1336 -    across page boundaries, or for static footers when
279.1337 -    tbody sections are rendered in scrolling panel.
279.1338 -
279.1339 -    Use multiple tbody sections when rules are needed
279.1340 -    between groups of table rows.
279.1341 --->
279.1342 -<!ATTLIST thead
279.1343 -  %attrs;
279.1344 -  %cellhalign;
279.1345 -  %cellvalign;
279.1346 -  >
279.1347 -
279.1348 -<!ATTLIST tfoot
279.1349 -  %attrs;
279.1350 -  %cellhalign;
279.1351 -  %cellvalign;
279.1352 -  >
279.1353 -
279.1354 -<!ATTLIST tbody
279.1355 -  %attrs;
279.1356 -  %cellhalign;
279.1357 -  %cellvalign;
279.1358 -  >
279.1359 -
279.1360 -<!ATTLIST tr
279.1361 -  %attrs;
279.1362 -  %cellhalign;
279.1363 -  %cellvalign;
279.1364 -  bgcolor     %Color;        #IMPLIED
279.1365 -  >
279.1366 -
279.1367 -<!-- Scope is simpler than headers attribute for common tables -->
279.1368 -<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
279.1369 -
279.1370 -<!-- th is for headers, td for data and for cells acting as both -->
279.1371 -
279.1372 -<!ATTLIST th
279.1373 -  %attrs;
279.1374 -  abbr        %Text;         #IMPLIED
279.1375 -  axis        CDATA          #IMPLIED
279.1376 -  headers     IDREFS         #IMPLIED
279.1377 -  scope       %Scope;        #IMPLIED
279.1378 -  rowspan     %Number;       "1"
279.1379 -  colspan     %Number;       "1"
279.1380 -  %cellhalign;
279.1381 -  %cellvalign;
279.1382 -  nowrap      (nowrap)       #IMPLIED
279.1383 -  bgcolor     %Color;        #IMPLIED
279.1384 -  width       %Length;       #IMPLIED
279.1385 -  height      %Length;       #IMPLIED
279.1386 -  >
279.1387 -
279.1388 -<!ATTLIST td
279.1389 -  %attrs;
279.1390 -  abbr        %Text;         #IMPLIED
279.1391 -  axis        CDATA          #IMPLIED
279.1392 -  headers     IDREFS         #IMPLIED
279.1393 -  scope       %Scope;        #IMPLIED
279.1394 -  rowspan     %Number;       "1"
279.1395 -  colspan     %Number;       "1"
279.1396 -  %cellhalign;
279.1397 -  %cellvalign;
279.1398 -  nowrap      (nowrap)       #IMPLIED
279.1399 -  bgcolor     %Color;        #IMPLIED
279.1400 -  width       %Length;       #IMPLIED
279.1401 -  height      %Length;       #IMPLIED
279.1402 -  >
279.1403 -
   280.1 --- a/publish/SVGFilter.html	Thu Feb 24 10:19:12 2011 +0000
   280.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   280.3 @@ -1,4540 +0,0 @@
   280.4 -<!--
   280.5 -  Filter Effects 1.0, Part 2: Language
   280.6 -
   280.7 -  $Id$
   280.8 -
   280.9 -  Note: This document is generated from ../master/SVGFilter.html.
  280.10 -  Run "make" from ../master/ to regenerate it.
  280.11 -  -->
  280.12 -
  280.13 -<!DOCTYPE html
  280.14 -  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  280.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>Filter Effects 1.0, Part 2: Language</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  280.16 -
  280.17 -<div class="head">
  280.18 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  280.19 -  <h1 id="pagetitle">Filter Effects 1.0: Language</h1>
  280.20 -  <h2 id="pagesubtitle">W3C Editor’s Draft <em>24 February 2011</em></h2>
  280.21 -  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html">http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/FilterEffects10/">http://www.w3.org/TR/FilterEffects10/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a></dd><dt>Editors:</dt><dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd><dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd></dl>
  280.22 -  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  280.23 -</div>
  280.24 -
  280.25 -<hr/>
  280.26 -
  280.27 -<h2 id="abstract">Abstract</h2>
  280.28 -
  280.29 -<p>
  280.30 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  280.31 -</p>
  280.32 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  280.33 -</p>
  280.34 -<p>
  280.35 -This document defines the markup used by SVG filters.
  280.36 -</p>
  280.37 -
  280.38 -<h2 id="status">Status of This Document</h2>
  280.39 -
  280.40 -<p><em>This section describes the status of this document at the time of its
  280.41 -publication. Other documents may supersede this document. The latest status
  280.42 -of this document series is maintained at the W3C. </em> </p>
  280.43 -
  280.44 -<p>This document is the first public working draft of this specification.
  280.45 -There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part
  280.46 -1: Primer</a> that lists the ways SVG filters may be used. </p>
  280.47 -
  280.48 -<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  280.49 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  280.50 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  280.51 -</p>
  280.52 -
  280.53 -<p>We explicitly invite comments on this specification. Please send them to
  280.54 -<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>).
  280.55 -Acceptance of the archiving policy is requested automatically upon first post to the
  280.56 -list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with
  280.57 -the word subscribe in the subject line. </p>
  280.58 -
  280.59 -<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  280.60 -related to this document is available on the Web. As of this publication, the
  280.61 -SVG Working Group are not aware of any royalty-bearing patents they believe
  280.62 -to be essential to SVG.</p>
  280.63 -
  280.64 -<p>Publication of this document does not imply endorsement by the W3C
  280.65 -membership. A list of current W3C Recommendations and other technical
  280.66 -documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  280.67 -be updated, replaced, or obsoleted by other documents at any time. It is
  280.68 -inappropriate to cite a W3C Working Draft as anything other than a <em>work
  280.69 -in progress</em>." </p>
  280.70 -
  280.71 -<h2 id="howto">How to read this document and give feedback</h2>
  280.72 -
  280.73 -<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification
  280.74 -can be re-used more easily by other specifications that want to have filter
  280.75 -effects. Some things that have been changed are: error handling is more
  280.76 -similar to SVG Tiny 1.2, the addition of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the
  280.77 -possibility to filter bitmap data with the DOM. </p>
  280.78 -
  280.79 -<p>The main purpose of this document is to encourage public feedback. The
  280.80 -best way to give feedback is by sending an email to <a href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please
  280.81 -include some kind of keyword that identifies the area of the specification
  280.82 -the comment is referring to in the subject line of your message (e.g "Section
  280.83 -X.Y - the 'filter' property" or "Filtering primitive handling"). If you have
  280.84 -comments on multiple areas of this document, then it is probably best to
  280.85 -split those comments into multiple messages. </p>
  280.86 -
  280.87 -<p>The public are welcome to comment on any aspect in this document, but
  280.88 -there are a few areas in which the SVG Working Group are explicitly
  280.89 -requesting feedback. These areas are noted in place within this document.
  280.90 -There is also a specific area related to the specification that is listed
  280.91 -here: </p>
  280.92 -
  280.93 -<ul class="toc">
  280.94 -<li><a href="#introduction">1 Introduction</a></li>
  280.95 -<li><a href="#FilterDefinitions">2 Definitions</a></li>
  280.96 -<li><a href="#FilterElement">3 The <span class="element-name">‘filter’</span>
  280.97 -element</a></li>
  280.98 -<li><a href="#FilterProperty">4 The <span class="prop-name">‘filter’</span>
  280.99 -property</a><ul class="toc">
 280.100 -<li><a href="#">4.1 How the 'filter' property applies to content formatted by CSS (e.g HTML)</a></li></ul></li>
 280.101 -<li><a href="#FilterEffectsRegion">5 Filter effects region</a><ul class="toc">
 280.102 -<li><a href="#filter-margins">5.1 Filter Region extensions</a></li></ul></li>
 280.103 -<li><a href="#AccessBackgroundImage">6 Accessing the background image</a><ul class="toc">
 280.104 -<li><a href="#AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</a></li></ul></li>
 280.105 -<li><a href="#FilterPrimitivesOverview">7 Filter primitives overview</a><ul class="toc">
 280.106 -<li><a href="#FilterPrimitivesOverviewIntro">7.1 Overview</a></li>
 280.107 -<li><a href="#CommonAttributes">7.2 Common attributes</a></li>
 280.108 -<li><a href="#FilterPrimitiveSubRegion">7.3 Filter primitive subregion</a></li></ul></li>
 280.109 -<li><a href="#LightSourceDefinitions">8 Light source elements and properties</a><ul class="toc">
 280.110 -<li><a href="#LightSourceIntro">8.1 Introduction</a></li>
 280.111 -<li><a href="#feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></a></li>
 280.112 -<li><a href="#fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></a></li>
 280.113 -<li><a href="#feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></a></li>
 280.114 -<li><a href="#LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</a></li></ul></li>
 280.115 -<li><a href="#feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></a></li>
 280.116 -<li><a href="#feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></a></li>
 280.117 -<li><a href="#feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></a></li>
 280.118 -<li><a href="#feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></a></li>
 280.119 -<li><a href="#feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></a></li>
 280.120 -<li><a href="#feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></a></li>
 280.121 -<li><a href="#feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></a></li>
 280.122 -<li><a href="#feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></a></li>
 280.123 -<li><a href="#feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li>
 280.124 -<li><a href="#feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></a></li>
 280.125 -<li><a href="#feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></a></li>
 280.126 -<li><a href="#feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></a></li>
 280.127 -<li><a href="#feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></a></li>
 280.128 -<li><a href="#feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></a></li>
 280.129 -<li><a href="#feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></a></li>
 280.130 -<li><a href="#feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></a></li>
 280.131 -<li><a href="#feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></a></li>
 280.132 -<li><a href="#feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></a></li>
 280.133 -<li><a href="#feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></a></li>
 280.134 -<li><a href="#feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></a></li>
 280.135 -<li><a href="#RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</a></li>
 280.136 -<li><a href="#DOMInterfaces">30 DOM interfaces</a></li>
 280.137 -<li><a href="#DOMInterfaces">31 DOM interfaces</a><ul class="toc">
 280.138 -<li><a href="#InterfaceImageData">31.1 Interface ImageData</a></li>
 280.139 -<li><a href="#InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</a></li>
 280.140 -<li><a href="#InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</a></li>
 280.141 -<li><a href="#InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</a></li>
 280.142 -<li><a href="#InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</a></li>
 280.143 -<li><a href="#InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</a></li>
 280.144 -<li><a href="#InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</a></li>
 280.145 -<li><a href="#InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</a></li>
 280.146 -<li><a href="#InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</a></li>
 280.147 -<li><a href="#InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</a></li>
 280.148 -<li><a href="#InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</a></li>
 280.149 -<li><a href="#InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</a></li>
 280.150 -<li><a href="#InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</a></li>
 280.151 -<li><a href="#InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</a></li>
 280.152 -<li><a href="#InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</a></li>
 280.153 -<li><a href="#InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</a></li>
 280.154 -<li><a href="#InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</a></li>
 280.155 -<li><a href="#InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</a></li>
 280.156 -<li><a href="#InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</a></li>
 280.157 -<li><a href="#InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</a></li>
 280.158 -<li><a href="#InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</a></li>
 280.159 -<li><a href="#InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</a></li>
 280.160 -<li><a href="#InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</a></li>
 280.161 -<li><a href="#InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</a></li>
 280.162 -<li><a href="#InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</a></li>
 280.163 -<li><a href="#InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</a></li>
 280.164 -<li><a href="#InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</a></li>
 280.165 -<li><a href="#InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</a></li>
 280.166 -<li><a href="#InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</a></li></ul></li>
 280.167 -<li><a href="#references1">32 References</a><ul class="toc">
 280.168 -<li><a href="#normref">32.1 Normative References</a></li>
 280.169 -<li><a href="#informref">32.2 Informative References</a></li></ul></li>
 280.170 -<li><a href="#changes">33 Changes</a></li></ul>
 280.171 -
 280.172 -<h2 id="introduction">1 Introduction</h2>
 280.173 -
 280.174 -<p>This chapter describes a declarative filter effects feature set, which
 280.175 -when combined with the other web technologies, like SVG or HTML, can describe
 280.176 -much of the common artwork on the Web in such a way that client-side
 280.177 -generation and alteration can be performed easily. In addition, the ability
 280.178 -to apply filter effects to SVG <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> and <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> helps to
 280.179 -maintain the semantic structure of the document, instead of resorting to
 280.180 -images which aside from generally being a fixed resolution tend to obscure
 280.181 -the original semantics of the elements they replace. This is especially true
 280.182 -for effects applied to text.
 280.183 -</p>
 280.184 -
 280.185 -<p>
 280.186 -
 280.187 -</p>
 280.188 -
 280.189 -<p>Note that even though this specification references parts of <a href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1
 280.190 -implementation. <span class="note">Add link to conformance classes here.</span>
 280.191 -</p>
 280.192 -
 280.193 -<p>This document is normative. </p>
 280.194 -
 280.195 -<p>This document contains explicit conformance criteria that overlap with
 280.196 -some RNG definitions in requirements. If there is any conflict between the
 280.197 -two, the explicit conformance criteria are the definitive reference. </p>
 280.198 -
 280.199 -<p>A filter effect consists of a series of graphics operations that are
 280.200 -applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical
 280.201 -result. The result of the filter effect is rendered to the target device
 280.202 -instead of the original source graphic. The following illustrates the
 280.203 -process:</p>
 280.204 -
 280.205 -<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400">
 280.206 -	<img alt="Image showing source graphic transformed by filter effect" src="examples/filters00.png" width="401" height="78"/>
 280.207 -</object></p>
 280.208 -<p class="view-as-svg"><a href="examples/filters00.svg">View this example as
 280.209 -SVG (SVG-enabled browsers only)</a><br/>
 280.210 - 	</p>
 280.211 -
 280.212 -<h2 id="FilterDefinitions">2 Definitions</h2>
 280.213 -  <p>When used in this specification, terms have the meanings assigned in this section.</p>
 280.214 -  <dl><dt id="TermNullFilter"><span class="SVG-TermDefine">null filter</span></dt><dd>
 280.215 -      <p>
 280.216 -      The null filter output is all transparent black pixels. If applied to an element it means
 280.217 -    that the element (and children if any) becomes invisible. Note that it does not affect event processing.
 280.218 -      </p>
 280.219 -    </dd><dt id="TermTransferFunctionElements"><span class="SVG-TermDefine">transfer function elements</span></dt><dd>
 280.220 -      <p>
 280.221 -      The set of elements,
 280.222 -        <a href=""><span class="element-name">‘feFuncR’</span></a>, <a href=""><span class="element-name">‘feFuncG’</span></a>, <a href=""><span class="element-name">‘feFuncB’</span></a>, <a href=""><span class="element-name">‘feFuncA’</span></a>, that define the transfer function for the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> filter primitive.
 280.223 -      </p>
 280.224 -    </dd><dt id="TermClientBoundingRect"><span class="SVG-TermDefine">bounding client rect</span></dt><dd>
 280.225 -    <p>
 280.226 -    The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 
 280.227 -    <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>].
 280.228 -    </p>
 280.229 -	</dd><dt id="TermCSSBoundingBox"><span class="SVG-TermDefine">CSS bounding box</span></dt><dd>
 280.230 -    <p>
 280.231 -    The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>].
 280.232 -    </p>
 280.233 -	</dd><dt id="TermCurrentUserCoordinateSystem"><span class="SVG-TermDefine">current user coordinate system</span></dt><dd>
 280.234 -    <p>
 280.235 -    For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 
 280.236 -    <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the
 280.237 -    <a href="#TermClientBoundingRect">bounding client rect</a>.
 280.238 -    </p>
 280.239 -    <p>
 280.240 -    For SVG elements see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>.
 280.241 -    </p>
 280.242 -	</dd><dt id="TermObjectBoundingBoxUnits"><span class="SVG-TermDefine">object bounding box units</span></dt><dd>
 280.243 -    For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 
 280.244 -    <p>
 280.245 -    For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 
 280.246 -    </p>
 280.247 -    <p>
 280.248 -    For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>.
 280.249 -    </p>
 280.250 -	</dd><dt id="TermFilterPrimitiveReference"><span class="SVG-TermDefine">&lt;filter-primitive-reference&gt;</span></dt><dd>
 280.251 -		<p>
 280.252 -    A string that identifies a particular filter primitive's output.
 280.253 -    </p>
 280.254 -	</dd><dt id="TermFilterPrimitiveElements"><span class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt><dd>
 280.255 -    <p>
 280.256 -		The set of elements that control the output of a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, particularly:  
 280.257 -			<a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
 280.258 -			<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, 
 280.259 -			<a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>,
 280.260 -			<a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>,
 280.261 -			<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>,
 280.262 -			<a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>,
 280.263 -			<a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>,
 280.264 -			<a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>,
 280.265 -			<a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>,
 280.266 -			<a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>,
 280.267 -			<a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>,
 280.268 -			<a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>,
 280.269 -			<a href="#feImageElement"><span class="element-name">‘feImage’</span></a>,
 280.270 -			<a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>,
 280.271 -			<a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>,
 280.272 -			<a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>,
 280.273 -			<a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>,
 280.274 -			<a href="#feTileElement"><span class="element-name">‘feTile’</span></a>,
 280.275 -			<a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>,
 280.276 -			<a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>,
 280.277 -			<a href="#feDiffuseSpecular"><span class="element-name">‘feDiffuseSpecular’</span></a>,
 280.278 -      <a href="#feUnsharpMaskElement"><span class="element-name">‘feUnsharpMask’</span></a>,
 280.279 -			<a href="#feCustom"><span class="element-name">‘feCustom’</span></a>.
 280.280 -      </p>
 280.281 -	</dd></dl>
 280.282 -  <br/>
 280.283 -
 280.284 -<h2 id="FilterElement">3 The <span class="element-name">‘filter’</span>
 280.285 -element</h2>
 280.286 -
 280.287 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘filter’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
 280.288 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermDescriptiveElement">descriptive elements</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#DescElement"><span class="element-name">‘desc’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/metadata.html#MetadataElement"><span class="element-name">‘metadata’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#TitleElement"><span class="element-name">‘title’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive elements</a><span class="expanding"> — <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a></li><li><a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></li><li><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></li><li><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></li><li><a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a></li><li><a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li><li><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a></li><li><a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a></li><li><a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a></li><li><a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></li><li><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></li><li><a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a></li></ul></dd></dl></div>
 280.289 -
 280.290 -
 280.291 -
 280.292 -<p>The description of the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
 280.293 -follows:</p>
 280.294 -
 280.295 -<div class="adef-list">
 280.296 -<p><em>Attribute definitions:</em></p>
 280.297 -<dl><dt id="FilterElementFilterUnitsAttribute"><span class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> |
 280.298 -  <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveUnitsAttribute"><span class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> |
 280.299 -  <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the various length values within
 280.300 -      the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> and for the attributes that define the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/>
 280.301 -      If <span class="attr-value">primitiveUnits="userSpaceOnUse"</span>, any length values
 280.302 -      within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user
 280.303 -      coordinate system</a> in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.304 -      element is referenced (i.e., the user coordinate system for the element
 280.305 -      referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 280.306 -      property).<br/>
 280.307 -      If <span class="attr-value">primitiveUnits="objectBoundingBox"</span>, then any length
 280.308 -      values within the filter definitions represent fractions or percentages
 280.309 -      of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box
 280.310 -      units</a>). Note that if only one number was specified in a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a> value
 280.311 -	  this number is expanded out before the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> computation takes place.
 280.312 -	  <br/>
 280.313 -      If attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> is not
 280.314 -      specified, then the effect is as if a value of <span class="attr-value">userSpaceOnUse</span> were specified.<br/>
 280.315 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterMarginUnitsAttribute"><span class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> |
 280.316 -  <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveMarginUnitsAttribute"><span class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> |
 280.317 -  <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the margin attributes within the
 280.318 -      <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> which is used for determining the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/>
 280.319 -      If <span class="attr-value">primitiveMarginUnits="userSpaceOnUse"</span>, any margin
 280.320 -      attribute values within the filter definitions represent values in the
 280.321 -      current user coordinate system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.322 -      element is referenced (i.e., the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element
 280.323 -      referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 280.324 -      property).<br/>
 280.325 -      If <span class="attr-value">primitiveMarginUnits="objectBoundingBox"</span>, then any
 280.326 -      margin attribute values within the filter definitions represent
 280.327 -      fractions or percentages of the bounding box on the referencing element
 280.328 -      (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).<br/>
 280.329 -
 280.330 -	  <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> is <span class="attr-value">userSpaceOnUse</span></span>.<br/>
 280.331 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementXAttribute">
 280.332 -  <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementYAttribute">
 280.333 -  <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementWidthAttribute"><span class="adef">width</span> =
 280.334 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHeightAttribute"><span class="adef">height</span> =
 280.335 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterPrimitiveMxAttribute">
 280.336 -  <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>The margin delta for the x coordinate of the subregion which
 280.337 -      restricts calculation and rendering of the given filter primitive. If
 280.338 -      this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 280.339 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMyAttribute">
 280.340 -  <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd>The margin delta for the y coordinate of the subregion which
 280.341 -      restricts calculation and rendering of the given filter primitive. If
 280.342 -      this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br/>
 280.343 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMwAttribute">
 280.344 -  <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>The margin delta for the width of the subregion which restricts
 280.345 -      calculation and rendering of the given filter primitive. If this
 280.346 -      attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 280.347 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMhAttribute">
 280.348 -  <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd>The margin delta for the height of the subregion which restricts
 280.349 -      calculation and rendering of the given filter primitive. If this
 280.350 -      attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/>
 280.351 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterResAttribute"><span class="adef">filterRes</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"
 280.352 -  </dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span>
 280.353 -  = "<span class="attr-value">&lt;IRI&gt;</span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 280.354 -      to another <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element within
 280.355 -      the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermSVGDocumentFragment"><span class="svg-term">SVG document fragment</span></a>. Any attributes which are defined on
 280.356 -      the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which
 280.357 -      are not defined on this element are inherited by this element. If this
 280.358 -      element has no defined filter nodes, and the referenced element has
 280.359 -      defined filter nodes (possibly due to its own <span class="attr-name">href</span> attribute), then this element inherits
 280.360 -      the filter nodes defined from the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. Inheritance can be
 280.361 -      indirect to an arbitrary level; thus, if the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element inherits attributes or its
 280.362 -      filter node specification due to its own <span class="attr-name">href</span> attribute, then the current element can
 280.363 -      inherit those attributes or filter node specifications. 
 280.364 -
 280.365 -      <div class="note">
 280.366 -      This attribute is deprecated and should not be used, it's included for
 280.367 -      backwards compatibility reasons only.</div>
 280.368 -      <br/>
 280.369 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
 280.370 -</div>
 280.371 -
 280.372 -<p>Properties inherit into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.373 -element from its ancestors; properties do <em>not</em> inherit from the
 280.374 -element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.375 -element.</p>
 280.376 -
 280.377 -<p><a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are never rendered
 280.378 -directly; their only usage is as something that can be referenced using the
 280.379 -<a href="#FilterProperty"><span class="prop-name">‘filter’</span></a>
 280.380 -property. The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property does not
 280.381 -apply to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are not directly rendered even
 280.382 -if the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property is set to a value
 280.383 -other than <span class="prop-value">none</span>, and <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are available for referencing
 280.384 -even when the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element or any of its ancestors is set
 280.385 -to <span class="prop-value">none</span>.</p>
 280.386 -<br/>
 280.387 -
 280.388 -<h2 id="FilterProperty">4 The <span class="prop-name">‘filter’</span>
 280.389 -property</h2>
 280.390 -
 280.391 -<p>The description of the <span class="prop-name">‘filter’</span> property is
 280.392 -as follows:</p>
 280.393 -
 280.394 -<div class="propdef">
 280.395 -<dl><dt id="propdef-filter"><span class="propdef-title prop-name">‘filter’</span></dt><dd>
 280.396 -      <table summary="filter property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a> | none | <a class="noxref" href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>none</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>All elements
 280.397 -
 280.398 -              .</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
 280.399 -    </dd></dl>
 280.400 -</div>
 280.401 -
 280.402 -<dl><dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI">&lt;FuncIRI&gt;</a></span></dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
 280.403 -      to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which defines the
 280.404 -      filter effects that shall be applied to this element.
 280.405 -    </dd><dt><span class="prop-value">none</span></dt><dd>Do not apply any filter effects to this element.</dd></dl>
 280.406 -
 280.407 -<p>If a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property references a non-existent object or the referenced  
 280.408 -object is not a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then the <a href="#TermNullFilter"><span class="svg-term">null filter</span></a> will be applied instead.
 280.409 -</p>
 280.410 -
 280.411 -<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 
 280.412 -<p>
 280.413 -The application of the <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 
 280.414 -that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 
 280.415 -and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole.
 280.416 -</p>
 280.417 -<p>
 280.418 -The <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property has no effect on the geometry of the target element's CSS boxes, even though <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> can cause painting outside of an element's border-box. 
 280.419 -</p>
 280.420 -<p>
 280.421 -The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 
 280.422 -first any filter effect is applied, then any clipping, masking and/or group opacity. 
 280.423 -These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> has no effect on mouse event hit-testing.
 280.424 -</p>
 280.425 -
 280.426 -<br/>
 280.427 -
 280.428 -
 280.429 -<h2 id="FilterEffectsRegion">5 Filter effects region</h2>
 280.430 -
 280.431 -<p>A <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.432 -element can define a region on the canvas to which a given filter effect
 280.433 -applies and can provide a resolution for any intermediate continuous tone
 280.434 -images used to process any raster-based <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 
 280.435 -
 280.436 -<h3 id="filter-margins">5.1 Filter Region extensions</h3>
 280.437 -
 280.438 -<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span>
 280.439 -defines the area upon which it applies. This makes it difficult to develop a
 280.440 -generic filter that can be applied to arbitrary graphics, since the filter
 280.441 -must define a large enough area to cover any graphical object to which it is
 280.442 -applied. An example of this is a generic "drop shadow" filter, which is
 280.443 -commonly specified as a combination of a Gaussian blur <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>) that is offset <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>) and then composed <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>) with the original source graphic.
 280.444 -Since the shadow has to extend beyond the original graphic's boundaries, the
 280.445 -filter must be defined to have a larger area than the original graphic.
 280.446 -Overestimating this margin has a negative effect on performance, since the
 280.447 -complex filter operation has to touch a larger amount of user space (ie.
 280.448 -pixels). </p>
 280.449 -
 280.450 -<p>In order to solve this problem this spec allows additional control over
 280.451 -the filter region. The outer filter region is expressed by delta to the
 280.452 -<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 
 280.453 -<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 
 280.454 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, 
 280.455 -<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>
 280.456 - of the input filter region. </p>
 280.457 -
 280.458 -<p>In particular, the <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>, <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a>, 
 280.459 -<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are
 280.460 -added to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. The <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> specifies the coordinate space of
 280.461 -the margin attributes, which are used to increase or decrease the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element's 
 280.462 -<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 
 280.463 -<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 
 280.464 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and 
 280.465 -<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>
 280.466 -attributes (once they have been calculated). The <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> specifies the units for the
 280.467 -new margin attributes on the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, also named 
 280.468 -<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, 
 280.469 -<a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 
 280.470 -<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, 
 280.471 -<a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>. 
 280.472 -These margins attribute override those set on the parent <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 
 280.473 -Note that this doesn't mean that a  can expand the filter region itself, just that the
 280.474 -coordinate system used for filter primitive's margin attributes can be
 280.475 -different than the one used for the margin attributes on the 
 280.476 -<a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. </p>
 280.477 -
 280.478 -<p>An example of the new attributes, which defines a generic drop shadow
 280.479 -filter: </p>
 280.480 -<pre class="examplesource">	&lt;filter id="dropShadow" x="0" y="0" width="1" height="1"
 280.481 -			  filterMarginUnits="userSpaceOnUse"
 280.482 -			  mx="0" my="0" mw="5" mh="5" &gt;
 280.483 -		  &lt;feGaussianBlur stdDeviation="2" in="SourceAlpha" /&gt;
 280.484 -		  &lt;feOffset dx="2" /&gt;
 280.485 -		  &lt;feMerge&gt;
 280.486 -			   &lt;feMergeNode /&gt;
 280.487 -			   &lt;feMergeNode in="SourceGraphic" /&gt;
 280.488 -		  &lt;/feMerge&gt;
 280.489 -	&lt;/filter&gt; </pre>
 280.490 -
 280.491 -<p>In the above example, the filter region by default covers the entire
 280.492 -bounds of the object (which is not enough to show the shadow). Adding the new
 280.493 -margins extends the width and height by 5 user units each, which is always
 280.494 -enough to display the blur (which has a standard deviation of 2 user units)
 280.495 -and offset (which is another 2 units). </p>
 280.496 -
 280.497 -The <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.498 -element has the following attributes which work together to define the filter
 280.499 -effects region:</p>
 280.500 -
 280.501 - <dl class="definitions unemphasized-names"><dt id="FilterUnitsAttribute"><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></dt><dd>
 280.502 -	    <p>Defines the coordinate system for attributes <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 280.503 -	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>.</p>
 280.504 -    
 280.505 -		<p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 280.506 -	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent values in the current user coordinate
 280.507 -	    system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the
 280.508 -	    user coordinate system for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.509 -	    element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p>
 280.510 -
 280.511 -	    <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>,
 280.512 -	    <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent fractions or percentages of the
 280.513 -	    bounding box on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p>
 280.514 -
 280.515 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> is <span class="attr-value">objectBoundingBox</span>.</p>
 280.516 -
 280.517 -	    <p><span class="anim-target">Animatable: yes.</span></p>
 280.518 -	</dd><dt id="FilterRegionXYWidthHeightAttributes"><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></dt><dd>
 280.519 -		<p>These attributes define a rectangular region on the canvas to which this filter applies.</p>
 280.520 -    	<p>The amount of memory and processing time required to apply the filter are
 280.521 -    	   related to the size of this rectangle and the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute of the filter.</p>
 280.522 -		<p>The coordinate system for these attributes depends on the value for attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a>.</p>
 280.523 -		<p>The bounds of this rectangle act as a hard clipping region for each <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> 
 280.524 -		   included with a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, if the effect of
 280.525 -    	   a given filter primitive would extend beyond the bounds of the rectangle
 280.526 -    	   (this sometimes happens when using a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive with a
 280.527 -    	   very large <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>), parts of the effect will get clipped.</p>
 280.528 -    
 280.529 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> and <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> is <span class="attr-value">-10%</span>.</p>
 280.530 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> is <span class="attr-value">120%</span>.</p>
 280.531 -    	<p>Negative or zero values for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> or <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> disable rendering of the element which
 280.532 -		   referenced the filter. </p>
 280.533 -		
 280.534 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 280.535 -	</dd><dt id="FilterMarginAttribute"><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></dt><dd>
 280.536 -		<p>Defines the coordinate system for attributes <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 280.537 -    		<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>.</p>
 280.538 -		<p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 280.539 -		    <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent values in the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>
 280.540 -		    in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the
 280.541 -		    <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.542 -		    element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p>
 280.543 -		<p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>,
 280.544 -	  		<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent fractions or percentages of the 
 280.545 -    		on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p>
 280.546 -    	<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> is 
 280.547 -			<span class="attr-value">userSpaceOnUse</span>.</p>
 280.548 -		<p><span class="anim-target">Animatable: yes.</span></p>
 280.549 -	</dd><dt id="FilterRegionMyAttribute"><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></dt><dd>
 280.550 -    	<p>Defines the deltas to the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> of the filter region.</p>
 280.551 -	
 280.552 -		<p>After the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> have been calculated for the 
 280.553 -			<a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> the <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are calculated and added 
 280.554 -			to the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 
 280.555 -			<a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> has a negative or zero width or height, the rendering of the element which 
 280.556 -			referenced the filter is disabled.</span></p>
 280.557 -	
 280.558 -    	<p>The coordinate system for these attributes depends on the value for
 280.559 -    		attribute <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>.</p>
 280.560 -
 280.561 -    	<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> is <span class="attr-value">0</span>.</p>
 280.562 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 280.563 -	</dd><dt id="FilterRegionFilterRes"><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></dt><dd>
 280.564 -		<p>Defines the width and height of the intermediate
 280.565 -	    images in pixels. If not provided, then a reasonable default resolution
 280.566 -	    appropriate for the target device will be used. (For displays, an
 280.567 -	    appropriate display resolution, preferably the current display's pixel
 280.568 -	    resolution, is the default. For printing, an appropriate common printer
 280.569 -	    resolution, such as 1200dpi, is the default.)</p>
 280.570 -	    <p>Care should be taken when assigning a non-default value to this
 280.571 -	    attribute. Too small of a value may result in unwanted pixelation in the
 280.572 -	    result. Too large of a value may result in slow processing and large
 280.573 -	    memory usage.</p>
 280.574 -	    <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p>
 280.575 -    	<p><span class="anim-target">Animatable: yes.</span></p>
 280.576 -	</dd></dl>
 280.577 -
 280.578 -<p>Note that both of the two possible value for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> (i.e., <span class="attr-value">objectBoundingBox</span> and <span class="attr-value">userSpaceOnUse</span>) result in a <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> whose
 280.579 -coordinate system has its X-axis and Y-axis each parallel to the X-axis and
 280.580 -Y-axis, respectively, of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element to which
 280.581 -the filter will be applied.</p>
 280.582 -
 280.583 -<p class="note implementation">Sometimes implementers can achieve faster performance when the filter
 280.584 -region can be mapped directly to device pixels; thus, for best performance on
 280.585 -display devices, it is suggested that authors define their region such that
 280.586 -the user agent can align the filter region pixel-for-pixel with the
 280.587 -background. In particular, for best filter effects performance, avoid
 280.588 -rotating or skewing the user coordinate system. Explicit values for attribute
 280.589 -<a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> can either help or harm performance.
 280.590 -If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is smaller than the automatic
 280.591 -(i.e., default) filter resolution, then filter effect might have faster
 280.592 -performance (usually at the expense of quality). If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is larger than the automatic (i.e.,
 280.593 -default) filter resolution, then filter effects performance will usually be
 280.594 -slower.</p>
 280.595 -
 280.596 -<p class="note authoring">It is often necessary to provide padding space because the filter effect
 280.597 -might impact bits slightly outside the tight-fitting  on a given
 280.598 -object. For these purposes, it is possible to provide negative percentage
 280.599 -values for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> and percentages values greater than <span class="attr-value">100%</span> for
 280.600 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>. This, for example, is why the defaults for
 280.601 -the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%"
 280.602 -height="120%"</span>.</p>
 280.603 -
 280.604 -<h2 id="AccessBackgroundImage">6 Accessing the background image</h2>
 280.605 -
 280.606 -<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, which each represent an image
 280.607 -snapshot of the canvas under the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
 280.608 -is invoked. <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> represents both
 280.609 -the color values and alpha channel of the canvas (i.e., RGBA pixel values),
 280.610 -whereas <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> represents only the
 280.611 -alpha channel.</p>
 280.612 -
 280.613 -<p>Implementations 
 280.614 -will often need to maintain supplemental background image buffers in order to
 280.615 -support the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images. Sometimes,
 280.616 -the background image buffers will contain an in-memory copy of the
 280.617 -accumulated painting operations on the current canvas.</p>
 280.618 -
 280.619 -<p>Because in-memory image buffers can take up significant system resources, 
 280.620 -content must explicitly indicate to the 
 280.621 -user agent that the document needs access to the background image before <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images can be used.
 280.622 -</p>
 280.623 -
 280.624 -A background image is what's been <i>rendered before</i> the current element.
 280.625 - For SVG, that uses the painter's algorithm, <i>rendered before</i> means
 280.626 -all of the prior elements in pre order traversal previous to the element to
 280.627 -which the filter is applied.
 280.628 -
 280.629 -<p>The property which enables access to the background image is
 280.630 -<a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a>:</p>
 280.631 -
 280.632 -
 280.633 -<div class="propdef">
 280.634 -<dl><dt id="EnableBackgroundProperty"><span class="propdef-title prop-name">‘enable-background’</span></dt><dd>
 280.635 -      <table summary="enable-background property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>accumulate | new [ &lt;x&gt; &lt;y&gt; &lt;width&gt;
 280.636 -              &lt;height&gt; ] | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>accumulate</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>Typically elements that can contain renderable elements. 
 280.637 -              language is responsible for defining the applicable set of
 280.638 -              elements.
 280.639 -              For SVG: <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a></td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>no</td></tr></tbody></table>
 280.640 -    </dd></dl>
 280.641 -</div>
 280.642 -<p><a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> is only
 280.643 -  applicable to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a>
 280.644 -  and specifies how the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">SVG user agent</span></a> manages the accumulation
 280.645 -  of the background image.</p>
 280.646 -
 280.647 -<p>A value of <strong>new</strong> indicates two things:</p>
 280.648 -<ul><li>It enables the ability of children of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.649 -    element to access the background image.</li><li>It indicates that a new (i.e., initially transparent black) background
 280.650 -    image canvas is established and that (in effect) all children of the
 280.651 -    current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.652 -    element shall be rendered into the new background image canvas in
 280.653 -    addition to being rendered onto the target device.</li></ul>
 280.654 -
 280.655 -<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the
 280.656 -initial/default value) depends on context:</p>
 280.657 -<ul><li>If an ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.658 -    element has a property value of <span class="attr-value">'enable-background:new'</span>, then all
 280.659 -    renderable child elements of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.660 -    element are rendered both onto the parent <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.661 -    element's background image canvas and onto the target device.</li><li>Otherwise, there is no current background image canvas, so it is only
 280.662 -    necessary to render <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a>
 280.663 -    the renderable elements onto the target device. (No need to render to the
 280.664 -    background image canvas.)</li></ul>
 280.665 -
 280.666 -<p>If a filter effect specifies either the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> or the 
 280.667 -	<a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images and no
 280.668 -ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.669 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background
 280.670 -image request is technically in error. Processing will proceed without
 280.671 -interruption (i.e., no error message) and a transparent black image shall be
 280.672 -provided in response to the request.</p>
 280.673 -
 280.674 -<p>The optional
 280.675 -<strong>&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt;</strong> 
 280.676 -<span class="specissue">ISSUE: define the type of each of these, probably &lt;number&gt;</span>
 280.677 -	parameters
 280.678 -on the <span class="attr-value">new</span> value indicate the subregion of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>
 280.679 - element to which <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> applies' user space where access to the
 280.680 -background image is allowed to happen. These parameters enable the user
 280.681 -agent potentially to allocate smaller temporary image buffers than the
 280.682 -default values, which might require the user agent to allocate buffers as
 280.683 -large as the current viewport. Thus, the values
 280.684 -&lt;x&gt;,&lt;y&gt;,&lt;width&gt;,&lt;height&gt; act as a clipping rectangle
 280.685 -on the background image canvas. If more than zero but less than four of the
 280.686 -values &lt;x&gt;,&lt;y&gt;,&lt;width&gt; and &lt;height&gt; are specified or
 280.687 -if negative or zero values are specified for &lt;width&gt; or &lt;height&gt;,
 280.688 -<a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> are processed as if background
 280.689 -image processing were not enabled. </p>
 280.690 -
 280.691 -<h3 id="AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</h3>
 280.692 -<p>This section only applies to the SVG definition of enable-background.</p>
 280.693 -
 280.694 -<p>Assume you have an element E in the document and that E has a series of
 280.695 -ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note:
 280.696 -A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding
 280.697 -temporary background image offscreen buffer BUF<sub>i</sub>. The contents of
 280.698 -the <em>background image</em> available to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> referenced by E is defined as
 280.699 -follows:</p>
 280.700 -<ul><li>Find the element A<sub>i</sub> with the smallest subscript i (including
 280.701 -    A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> property has the value
 280.702 -    <span class="prop-value">new</span>. (Note: if there is no such ancestor
 280.703 -    element, then there is no background image available to E, in which case
 280.704 -    a transparent black image will be used as E's background image.)</li><li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to
 280.705 -    transparent black. Render all children of A<sub>i</sub> up to but not
 280.706 -    including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted,
 280.707 -    then filtered, clipped, masked and composited using the various painting,
 280.708 -    filtering, clipping, masking and object opacity settings on the given
 280.709 -    child. Any filter effects, masking and group opacity that might be set on
 280.710 -    A<sub>i</sub> do <em>not</em> apply when rendering the children of
 280.711 -    A<sub>i</sub> into BUF<sub>i</sub>.<br/>
 280.712 -    (Note that for the case of A<sub>0</sub>=E, the graphical contents of E
 280.713 -    are not rendered into BUF<sub>1</sub> and thus are not part of the
 280.714 -    background image available to E. Instead, the graphical contents of E are
 280.715 -    available via the <a href="#SourceGraphic">SourceGraphic</a> and <a href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li><li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite
 280.716 -    BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li><li>The accumulated result (i.e., BUF<sub>n</sub>) represents the
 280.717 -    background image available to E.</li></ul>
 280.718 -
 280.719 -<pre class="xml">&lt;?xml version="1.0" standalone="no"?&gt;
 280.720 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
 280.721 -  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
 280.722 -&lt;svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
 280.723 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
 280.724 -  &lt;title&gt;Example enable-background01&lt;/title&gt;
 280.725 -  &lt;desc&gt;This test case shows five pictures which illustrate the rules
 280.726 -        for background image processing.&lt;/desc&gt;
 280.727 -
 280.728 -  &lt;defs&gt;
 280.729 -    &lt;filter id="ShiftBGAndBlur" 
 280.730 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"&gt;
 280.731 -      &lt;desc&gt;
 280.732 -        This filter discards the SourceGraphic, if any, and just produces
 280.733 -        a result consisting of the BackgroundImage shifted down 125 units
 280.734 -        and then blurred.
 280.735 -      &lt;/desc&gt;
 280.736 -      &lt;feOffset in="BackgroundImage" dx="0" dy="125" /&gt;
 280.737 -      &lt;feGaussianBlur stdDeviation="8" /&gt;
 280.738 -    &lt;/filter&gt;
 280.739 -    &lt;filter id="ShiftBGAndBlur_WithSourceGraphic" 
 280.740 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"&gt;
 280.741 -      &lt;desc&gt;
 280.742 -        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
 280.743 -        and then renders the SourceGraphic on top of the shifted/blurred background.
 280.744 -      &lt;/desc&gt;
 280.745 -      &lt;feOffset in="BackgroundImage" dx="0" dy="125" /&gt;
 280.746 -      &lt;feGaussianBlur stdDeviation="8" result="blur" /&gt;
 280.747 -      &lt;feMerge&gt;
 280.748 -        &lt;feMergeNode in="blur"/&gt;
 280.749 -        &lt;feMergeNode in="SourceGraphic"/&gt;
 280.750 -      &lt;/feMerge&gt;
 280.751 -    &lt;/filter&gt;
 280.752 -  &lt;/defs&gt;
 280.753 -
 280.754 -  &lt;g transform="translate(0,0)"&gt;
 280.755 -    &lt;desc&gt;The first picture is our reference graphic without filters.&lt;/desc&gt;
 280.756 -    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 280.757 -    &lt;g opacity=".5"&gt;
 280.758 -      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 280.759 -      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 280.760 -    &lt;/g&gt;
 280.761 -    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 280.762 -  &lt;/g&gt;
 280.763 -
 280.764 -  &lt;g enable-background="new" transform="translate(270,0)"&gt;
 280.765 -    &lt;desc&gt;The second adds an empty 'g' element which invokes ShiftBGAndBlur.&lt;/desc&gt;
 280.766 -    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 280.767 -    &lt;g opacity=".5"&gt;
 280.768 -      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 280.769 -      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 280.770 -    &lt;/g&gt;
 280.771 -    &lt;g filter="url(#ShiftBGAndBlur)"/&gt;
 280.772 -    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 280.773 -  &lt;/g&gt;
 280.774 -
 280.775 -  &lt;g enable-background="new" transform="translate(540,0)"&gt;
 280.776 -    &lt;desc&gt;The third invokes ShiftBGAndBlur on the inner group.&lt;/desc&gt;
 280.777 -    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 280.778 -    &lt;g filter="url(#ShiftBGAndBlur)" opacity=".5"&gt;
 280.779 -      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 280.780 -      &lt;polygon points="160,25 160,125 240,75" fill="blue"/&gt;
 280.781 -    &lt;/g&gt;
 280.782 -    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 280.783 -  &lt;/g&gt;
 280.784 -
 280.785 -  &lt;g enable-background="new" transform="translate(810,0)"&gt;
 280.786 -    &lt;desc&gt;The fourth invokes ShiftBGAndBlur on the triangle.&lt;/desc&gt;
 280.787 -    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 280.788 -    &lt;g opacity=".5"&gt;
 280.789 -      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 280.790 -      &lt;polygon points="160,25 160,125 240,75" fill="blue"
 280.791 -               filter="url(#ShiftBGAndBlur)"/&gt;
 280.792 -    &lt;/g&gt;
 280.793 -    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 280.794 -  &lt;/g&gt;
 280.795 -
 280.796 -  &lt;g enable-background="new" transform="translate(1080,0)"&gt;
 280.797 -    &lt;desc&gt;The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.&lt;/desc&gt;
 280.798 -    &lt;rect x="25" y="25" width="100" height="100" fill="red"/&gt;
 280.799 -    &lt;g opacity=".5"&gt;
 280.800 -      &lt;circle cx="125" cy="75" r="45" fill="green"/&gt;
 280.801 -      &lt;polygon points="160,25 160,125 240,75" fill="blue"
 280.802 -               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/&gt;
 280.803 -    &lt;/g&gt;
 280.804 -    &lt;rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/&gt;
 280.805 -  &lt;/g&gt;
 280.806 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/enable-background-01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/enable-background-01.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 280.807 -
 280.808 -<p>The example above contains five parts, described as follows:</p>
 280.809 -<ol><li>The first set is the reference graphic. The reference graphic consists
 280.810 -    of a red rectangle followed by a 50% transparent <span class="element-name">‘g’</span>
 280.811 -    element. Inside the <span class="element-name">‘g’</span>
 280.812 -    is a green circle that partially overlaps the rectangle and a a blue
 280.813 -    triangle that partially overlaps the circle. The three objects are then
 280.814 -    outlined by a rectangle stroked with a thin blue line. No filters are
 280.815 -    applied to the reference graphic.</li><li>The second set enables background image processing and adds an empty
 280.816 -    <span class="element-name">‘g’</span>
 280.817 -    element which invokes the ShiftBGAndBlur filter. This filter takes the
 280.818 -    current accumulated background image (i.e., the entire reference graphic)
 280.819 -    as input, shifts its offscreen down, blurs it, and then writes the result
 280.820 -    to the canvas. Note that the offscreen for the filter is initialized to
 280.821 -    transparent black, which allows the already rendered rectangle, circle
 280.822 -    and triangle to show through after the filter renders its own result to
 280.823 -    the canvas.</li><li>The third set enables background image processing and instead invokes
 280.824 -    the ShiftBGAndBlur filter on the inner <span class="element-name">‘g’</span>
 280.825 -    element. The accumulated background at the time the filter is applied
 280.826 -    contains only the red rectangle. Because the children of the inner <span class="element-name">‘g’</span>
 280.827 -    (i.e., the circle and triangle) are not part of the inner <span class="element-name">‘g’</span>
 280.828 -    element's background and because ShiftBGAndBlur ignores SourceGraphic,
 280.829 -    the children of the inner <span class="element-name">‘g’</span>
 280.830 -    do not appear in the result.</li><li>The fourth set enables background image processing and invokes the
 280.831 -    ShiftBGAndBlur on the <span class="element-name">‘polygon’</span>
 280.832 -    element that draws the triangle. The accumulated background at the time
 280.833 -    the filter is applied contains the red rectangle plus the green circle
 280.834 -    ignoring the effect of the <span class="prop-name">‘opacity’</span>
 280.835 -    property on the inner <span class="element-name">‘g’</span>
 280.836 -    element. (Note that the blurred green circle at the bottom does not let
 280.837 -    the red rectangle show through on its left side. This is due to ignoring
 280.838 -    the effect of the <span class="prop-name">‘opacity’</span>
 280.839 -    property.) Because the triangle itself is not part of the accumulated
 280.840 -    background and because ShiftBGAndBlur ignores SourceGraphic, the triangle
 280.841 -    does not appear in the result.</li><li>The fifth set is the same as the fourth except that filter
 280.842 -    ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur.
 280.843 -    ShiftBGAndBlur_WithSourceGraphic performs the same effect as
 280.844 -    ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted,
 280.845 -    blurred background image. In this case, SourceGraphic is the blue
 280.846 -    triangle; thus, the result is the same as in the fourth case except that
 280.847 -    the blue triangle now appears.</li></ol>
 280.848 -
 280.849 -
 280.850 -<h2 id="FilterPrimitivesOverview">7 Filter primitives overview</h2>
 280.851 -
 280.852 -<h3 id="FilterPrimitivesOverviewIntro">7.1 Overview</h3>
 280.853 -
 280.854 -<p>This section describes the various filter primtives that can be assembled
 280.855 -to achieve a particular filter effect.</p>
 280.856 -
 280.857 -<p>Unless otherwise stated, all image filters operate on premultiplied RGBA
 280.858 -samples. Filters which work more naturally on non-premultiplied data
 280.859 -(<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> and <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>) will temporarily undo and redo
 280.860 -premultiplication as specified. All raster effect filtering operations take 1
 280.861 -to N input RGBA images, additional attributes as parameters, and produce a
 280.862 -single output RGBA image.</p>
 280.863 -
 280.864 -<p>The RGBA result from each filter primitive will be clamped into the
 280.865 -allowable ranges for colors and opacity values. Thus, for example, the result
 280.866 -from a given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will have any negative color values or opacity
 280.867 -values adjusted up to color/opacity of zero.</p>
 280.868 -
 280.869 -<p id="filtersColorSpace">The color space in which a particular <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> performs its
 280.870 -operations is determined by the value of property <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> on the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter
 280.871 -primitive</span></a>. A different property, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> determines the color space for
 280.872 -other color operations. Because these two properties have different initial
 280.873 -values (<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> has an
 280.874 -initial value of <span class="prop-value">linearRGB</span> whereas <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results
 280.875 -(e.g., when coordinating gradient interpolation with a filtering operation)
 280.876 -it will be necessary to explicitly set <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> to <span class="prop-value">linearRGB</span> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> to <span class="prop-value">sRGB</span> on particular elements. Note that the examples
 280.877 -below do not explicitly set either <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a>, so the initial values for these properties apply to the examples.</p>
 280.878 -
 280.879 -<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> result in undefined pixels. For example,
 280.880 -filter primitive <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the
 280.881 -right, leaving undefined pixels at the top and left. In these cases, the
 280.882 -undefined pixels are set to transparent black.</span></p>
 280.883 -
 280.884 -<h3 id="CommonAttributes">7.2 Common attributes</h3>
 280.885 -
 280.886 -<p>The following attributes are available for most of the filter
 280.887 -primitives:</p>
 280.888 -
 280.889 -<div class="adef-list">
 280.890 -<p><em>Attribute definitions:</em></p>
 280.891 -<dl><dt id="FilterPrimitiveXAttribute">
 280.892 -  <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The minimum x coordinate for the subregion which restricts
 280.893 -      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 280.894 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p>
 280.895 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.896 -	</dd><dt id="FilterPrimitiveYAttribute">
 280.897 -  <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The minimum y coordinate for the subregion which restricts
 280.898 -      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. </p>
 280.899 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p>
 280.900 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.901 -	</dd><dt id="FilterPrimitiveWidthAttribute">
 280.902 -  <span class="adef">width</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The width of the subregion which restricts calculation and rendering
 280.903 -      of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 280.904 -      <p>A negative or zero value disables the effect of the given filter
 280.905 -      primitive (i.e., the result is a transparent black image).</p>
 280.906 -	  <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p>
 280.907 -      <p><span class="anim-target">Animatable: yes.</span></p>
 280.908 -	</dd><dt id="FilterPrimitiveHeightAttribute">
 280.909 -  <span class="adef">height</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The height of the subregion which restricts calculation and rendering
 280.910 -      of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 280.911 -      <p>A negative or zero value disables the effect of the given filter
 280.912 -      primitive (i.e., the result is a transparent black image).</p>
 280.913 -	  <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p>
 280.914 -      <p><span class="anim-target">Animatable: yes.</span></p>
 280.915 -	</dd><dt id="FilterPrimitiveMxAttribute">
 280.916 -  <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The margin delta for the x coordinate of the subregion which
 280.917 -      	restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 280.918 -		see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 
 280.919 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p>
 280.920 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.921 -	</dd><dt id="FilterPrimitiveMyAttribute">
 280.922 -  <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></em>"</dt><dd><p>The margin delta for the y coordinate of the subregion which
 280.923 -      restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 280.924 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p>
 280.925 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.926 -	</dd><dt id="FilterPrimitiveMwAttribute">
 280.927 -  <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The margin delta for the width of the subregion which restricts
 280.928 -      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 
 280.929 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p>
 280.930 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.931 -	</dd><dt id="FilterPrimitiveMhAttribute">
 280.932 -  <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength">&lt;length&gt;</a></em>"</dt><dd><p>The margin delta for the height of the subregion which restricts
 280.933 -      calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
 280.934 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p>
 280.935 -      	<p><span class="anim-target">Animatable: yes.</span></p>
 280.936 -	</dd><dt id="FilterPrimitiveResultAttribute">
 280.937 -  <span class="adef">result</span> =
 280.938 -  "<em><a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a></em>"</dt><dd><p>Assigned name for this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. If supplied, then graphics
 280.939 -      that result from processing this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> can be referenced by
 280.940 -      an <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute on a subsequent filter
 280.941 -      primitive within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. If no value is
 280.942 -      provided, the output will only be available for re-use as the implicit
 280.943 -      input into the next <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> if that <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> provides
 280.944 -      no value for its <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.</p>
 280.945 -      <p>Note that a <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> is not an XML
 280.946 -      ID; instead, a <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> is only
 280.947 -      meaningful within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element and thus have only
 280.948 -      local scope. It is legal for the same
 280.949 -      <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> to appear multiple times
 280.950 -      within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. When referenced, the
 280.951 -      <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a> will use the closest
 280.952 -      preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the given result.</p>
 280.953 -      <p><span class="anim-target">Animatable: yes.</span></p>
 280.954 -	</dd><dt id="FilterPrimitiveInAttribute">
 280.955 -  <span class="adef">in</span> = "<em><a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> | <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> | <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> | <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> | <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> | <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> |
 280.956 -  <a href="#TermFilterPrimitiveReference">&lt;filter-primitive-reference&gt;</a></em>"</dt><dd><p>Identifies input for the given filter primitive. The value can be
 280.957 -      either one of six keywords or can be a string which matches a previous
 280.958 -      <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> attribute value within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
 280.959 -      element. If no value is provided and this is the first <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 280.960 -	then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>
 280.961 -      as its input. If no value is provided and this is a subsequent <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 
 280.962 -	then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use the result from the
 280.963 -      previous <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> as its input.</p> 
 280.964 -      <p>If the value for <span class="attr-name">result</span> appears
 280.965 -      multiple times within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then a reference to
 280.966 -      that result will use the closest preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the
 280.967 -      given value for attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a>.
 280.968 -      Forward references to results are not allowed, and will be treated as
 280.969 -      if no result was specified. </p>
 280.970 -      <p>Definitions for the six keywords: </p>
 280.971 -      <dl><dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt><dd><p>This keyword represents the graphics elements
 280.972 -            that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. For raster
 280.973 -            effects <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, the graphics elements
 280.974 -            will be rasterized into an initially clear RGBA raster in image
 280.975 -            space. Pixels left untouched by the original graphic will be left
 280.976 -            clear. The image is specified to be rendered in linear RGBA
 280.977 -            pixels. The alpha channel of this image captures any
 280.978 -            anti-aliasing specified by SVG. (Since the raster is linear, the
 280.979 -            alpha channel of this image will represent the exact percent
 280.980 -            coverage of each pixel.)</p></dd><dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt><dd><p>This keyword represents the graphics elements
 280.981 -            that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 
 280.982 -			<a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> has all of the same rules
 280.983 -            as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that only the
 280.984 -            alpha channel is used. The input image is an RGBA image
 280.985 -            consisting of implicitly black color values for the RGB channels,
 280.986 -            but whose alpha channel is the same as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>.</p>
 280.987 -			<p class="note implementation">If this option is
 280.988 -            used, then some implementations might need to rasterize the
 280.989 -            graphics elements
 280.990 -            in order to extract the alpha channel.</p>
 280.991 -		</dd><dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt><dd><p>This keyword represents an image snapshot of the canvas under
 280.992 -            the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element was invoked. See
 280.993 -            <a href="#AccessingBackgroundImage">accessing the background
 280.994 -            image</a>.</p>
 280.995 -		  </dd><dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt><dd><p>Same as <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> except
 280.996 -            only the alpha channel is used. See <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> and <a href="#AccessingBackgroundImage">accessing the background
 280.997 -            image</a>.</p>
 280.998 -		  </dd><dt id="FillPaint"><span class="attr-value">FillPaint</span></dt><dd>
 280.999 -      <p>This keyword represents the target element <i>rendered filled</i>.</p>
280.1000 -			<p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="prop-name">‘fill’</span></a>
280.1001 -            property on the target element for the filter effect.</p>
280.1002 -      <p>For non-SVG cases <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> generates a transparent black image. 
280.1003 -        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span>
280.1004 -      </p>
280.1005 -			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
280.1006 -			<p>The <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> image has conceptually infinite extent. 
280.1007 -			Frequently this image is opaque everywhere, but it might not be if the "paint"
280.1008 -			itself has alpha, as in the case of a gradient or pattern which
280.1009 -			itself includes transparent or semi-transparent parts.</p>
280.1010 -	  	</dd><dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt><dd>
280.1011 -			<p>This keyword represents the target element <i>rendered stroked</i>.</p>
280.1012 -      <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="prop-name">‘stroke’</span></a>
280.1013 -         on the target element for the filter effect.</p>
280.1014 -      <p>For non-SVG cases <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> generates a transparent black image. 
280.1015 -        <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span>
280.1016 -      </p>
280.1017 -			<p class="note authoring">Note that text is generally painted filled, not stroked.</p>
280.1018 -	  		<p>The <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> image has conceptually infinite extent.
280.1019 -			Frequently this image is opaque everywhere, but it 
280.1020 -			might not be if the "paint"
280.1021 -			itself has alpha, as in the case of a gradient or pattern which
280.1022 -			itself includes transparent or semi-transparent parts.
280.1023 -			</p>
280.1024 -		  </dd></dl>
280.1025 -      <p><span class="anim-target">Animatable: yes.</span></p>
280.1026 -	</dd></dl>
280.1027 -</div>
280.1028 -
280.1029 -<h3 id="FilterPrimitiveSubRegion">7.3 Filter primitive subregion</h3>
280.1030 -
280.1031 -
280.1032 -<p>
280.1033 -All <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> have attributes <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
280.1034 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, and <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>,
280.1035 -<a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a>, which
280.1036 -together identify a subregion which restricts calculation and rendering of
280.1037 -the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. The <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
280.1038 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes are defined
280.1039 -according to the same rules as other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>' coordinate and length
280.1040 -attributes and thus represent values in the coordinate system established by
280.1041 -attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.1042 -The <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and
280.1043 -<a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a> attributes contain deltas to the corresponding
280.1044 -<a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and
280.1045 -<a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes and contain values in the coordinate
280.1046 -system established by attribute <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.1047 -</p>
280.1048 -
280.1049 -<p><a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>,
280.1050 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> default to the union (i.e., tightest fitting bounding
280.1051 -box) of the subregions defined for all referenced nodes. If there are no
280.1052 -referenced nodes (e.g., for <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> or <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>), or one or more of the
280.1053 -referenced nodes is a standard input (one of <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a>, <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>,
280.1054 -<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for
280.1055 -<a href="#feTileElement"><span class="element-name">‘feTile’</span></a>
280.1056 -(which is special because its principal function is to replicate the
280.1057 -referenced node in X and Y and thereby produce a usually larger result), the
280.1058 -default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the
280.1059 -dimensions of the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>.</p>
280.1060 -
280.1061 -<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>,
280.1062 -<strong>height</strong> have been calculated for the filter primitive
280.1063 -subregion the margin attributes <strong>mx</strong>, <strong>my</strong>,
280.1064 -<strong>mw</strong>, <strong>mh</strong> are calculated and added to the
280.1065 -former to make the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. If the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive
280.1066 -subregion</span></a> has a negative or zero width or height, the effect of the filter
280.1067 -primitive is disabled. </p>
280.1068 -
280.1069 -<p>The <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> act as a hard clip clipping rectangle for
280.1070 -the filter primitive.</p>
280.1071 -
280.1072 -<p>All intermediate offscreens are defined to not exceed the intersection of
280.1073 -the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> with the <a href="#FilterEffectsRegion">filter
280.1074 -region</a>. The filter region and any of the filter primitive subregions are
280.1075 -to be set up such that all offscreens are made big enough to accommodate any
280.1076 -pixels which even partly intersect with either the filter region or the
280.1077 -filter primitive subregions.</p>
280.1078 -
280.1079 -<p><a href="#feTileElement"><span class="element-name">‘feTile’</span></a> references a previous filter primitive and then stitches the tiles together
280.1080 -based on the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> of the referenced filter primitive in
280.1081 -order to fill its own <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p>
280.1082 -
280.1083 -<pre class="xml">&lt;svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"&gt; 
280.1084 -	&lt;defs&gt;
280.1085 -		&lt;filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"&gt;
280.1086 -		   &lt;feFlood x="25%" y="25%" width="50%" height="50%"
280.1087 -					flood-color="green" flood-opacity="0.75"/&gt;
280.1088 -		&lt;/filter&gt;
280.1089 -		&lt;filter id="blend" primitiveUnits="objectBoundingBox"&gt;
280.1090 -		   &lt;feBlend x="25%" y="25%" width="50%" height="50%"
280.1091 -					in2="SourceGraphic" mode="multiply"/&gt;
280.1092 -		&lt;/filter&gt;
280.1093 -		&lt;filter id="merge" primitiveUnits="objectBoundingBox"&gt;
280.1094 -		   &lt;feMerge x="25%" y="25%" width="50%" height="50%"&gt;
280.1095 -				&lt;feMergeNode in="SourceGraphic"/&gt;
280.1096 -				&lt;feMergeNode in="FillPaint"/&gt;
280.1097 -		   &lt;/feMerge&gt;
280.1098 -		&lt;/filter&gt;
280.1099 -	&lt;/defs&gt;
280.1100 -	
280.1101 -	&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
280.1102 -	   &lt;rect width="200" height="200"/&gt;
280.1103 -	   &lt;line x2="200" y2="200"/&gt;
280.1104 -	   &lt;line x1="200" y2="200"/&gt;
280.1105 -	&lt;/g&gt;
280.1106 -	&lt;circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/&gt;
280.1107 -
280.1108 -	&lt;g transform="translate(200 0)"&gt;
280.1109 -		&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
280.1110 -		   &lt;rect width="200" height="200"/&gt;
280.1111 -		   &lt;line x2="200" y2="200"/&gt;
280.1112 -		   &lt;line x1="200" y2="200"/&gt;
280.1113 -		&lt;/g&gt;
280.1114 -		&lt;circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/&gt;
280.1115 -	&lt;/g&gt;
280.1116 -	
280.1117 -	&lt;g transform="translate(0 200)"&gt;
280.1118 -		&lt;g fill="none" stroke="blue" stroke-width="4"&gt;
280.1119 -		   &lt;rect width="200" height="200"/&gt;
280.1120 -		   &lt;line x2="200" y2="200"/&gt;
280.1121 -		   &lt;line x1="200" y2="200"/&gt;
280.1122 -		&lt;/g&gt;
280.1123 -		&lt;circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/&gt;
280.1124 -	&lt;/g&gt;
280.1125 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filtersubregion00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filtersubregion00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.1126 -
280.1127 -<p>
280.1128 -In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. The filter output should be limited to the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>, so you should never see the circles themselves, just the rects that make up the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. 
280.1129 -</p>
280.1130 -<ul><li>
280.1131 -The upper left rect shows an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle.
280.1132 -</li><li>
280.1133 -The lower left rect shows an <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> that merges <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> with <a href="#FillPaint"><span class="attr-value">FillPaint</span></a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle.
280.1134 -</li><li>The upper right rect shows an <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it.
280.1135 -</li></ul>
280.1136 -
280.1137 -
280.1138 -
280.1139 -<h2 id="LightSourceDefinitions">8 Light source elements and properties</h2>
280.1140 -
280.1141 -<h3 id="LightSourceIntro">8.1 Introduction</h3>
280.1142 -
280.1143 -<p>The following sections define the elements that define a light source, <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
280.1144 -<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> and <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>,
280.1145 -and property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>, which defines the color of the
280.1146 -light.</p>
280.1147 -
280.1148 -<h3 id="feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></h3>
280.1149 -
280.1150 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDistantLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1151 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a></li><li><a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a></li></ul></dd></dl></div>
280.1152 -
280.1153 -<div class="adef-list">
280.1154 -<p><em>Attribute definitions:</em></p>
280.1155 -<dl><dt id="feDistantLightAzimuthAttribute"><span class="adef">azimuth</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Direction angle for the light source on the XY plane (clockwise), in
280.1156 -      degrees.<br/>
280.1157 -      If the attribute is not specified, then the effect is as if a value of
280.1158 -      <span class="attr-value">0</span> were specified.<br/>
280.1159 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDistantLightElevationAttribute"><span class="adef">elevation</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Direction angle for the light source on the YZ plane, in degrees.<br/>
280.1160 -      If the attribute is not specified, then the effect is as if a value of
280.1161 -      <span class="attr-value">0</span> were specified.<br/>
280.1162 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1163 -</div>
280.1164 -
280.1165 -<h3 id="fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></h3>
280.1166 -
280.1167 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘fePointLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1168 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a></li></ul></dd></dl></div>
280.1169 -
280.1170 -<div class="adef-list">
280.1171 -<p><em>Attribute definitions:</em></p>
280.1172 -<dl><dt id="fePointLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location for the light source in the coordinate system established
280.1173 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1174 -      element.<br/>
280.1175 -      If the attribute is not specified, then the effect is as if a value of
280.1176 -      <span class="attr-value">0</span> were specified.<br/>
280.1177 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location for the light source in the coordinate system established
280.1178 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1179 -      element.<br/>
280.1180 -      If the attribute is not specified, then the effect is as if a value of
280.1181 -      <span class="attr-value">0</span> were specified.<br/>
280.1182 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location for the light source in the coordinate system established
280.1183 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1184 -      element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>
280.1185 -      , the positive Z-axis comes out towards the person viewing the content
280.1186 -      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/>
280.1187 -      If the attribute is not specified, then the effect is as if a value of
280.1188 -      <span class="attr-value">0</span> were specified.<br/>
280.1189 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1190 -</div>
280.1191 -
280.1192 -<h3 id="feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></h3>
280.1193 -
280.1194 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpotLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1195 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a></li><li><a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a></li><li><a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a></li><li><a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a></li><li><a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a></li></ul></dd></dl></div>
280.1196 -
280.1197 -<div class="adef-list">
280.1198 -<p><em>Attribute definitions:</em></p>
280.1199 -<dl><dt id="feSpotLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location for the light source in the coordinate system established
280.1200 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1201 -      element.<br/>
280.1202 -      If the attribute is not specified, then the effect is as if a value of
280.1203 -      <span class="attr-value">0</span> were specified.<br/>
280.1204 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location for the light source in the coordinate system established
280.1205 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1206 -      element.<br/>
280.1207 -      If the attribute is not specified, then the effect is as if a value of
280.1208 -      <span class="attr-value">0</span> were specified.<br/>
280.1209 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location for the light source in the coordinate system established
280.1210 -      by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1211 -      element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>
280.1212 -      , the positive Z-axis comes out towards the person viewing the content
280.1213 -      and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/>
280.1214 -      If the attribute is not specified, then the effect is as if a value of
280.1215 -      <span class="attr-value">0</span> were specified.<br/>
280.1216 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtXAttribute"><span class="adef">pointsAtX</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>X location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 
280.1217 -    	on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.1218 -      element of the point at which the light source is pointing.<br/>
280.1219 -      If the attribute is not specified, then the effect is as if a value of
280.1220 -      <span class="attr-value">0</span> were specified.<br/>
280.1221 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtYAttribute"><span class="adef">pointsAtY</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Y location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 
280.1222 -    	on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of the point at which the light source is pointing.<br/>
280.1223 -      If the attribute is not specified, then the effect is as if a value of
280.1224 -      <span class="attr-value">0</span> were specified.<br/>
280.1225 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtZAttribute"><span class="adef">pointsAtZ</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Z location in the coordinate system established by the
280.1226 -		    attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of
280.1227 -		    the point at which the light source is pointing, assuming that, in the
280.1228 -    		<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>, the positive Z-axis comes out
280.1229 -         towards the person viewing the content and assuming that
280.1230 -         one unit along the Z-axis equals 
280.1231 -         <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">
280.1232 -         one unit in X and Y</a>.<br/>
280.1233 -      If the attribute is not specified, then the effect is as if a value of
280.1234 -      <span class="attr-value">0</span> were specified.<br/>
280.1235 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Exponent value controlling the focus for the light source.<br/>
280.1236 -      If the attribute is not specified, then the effect is as if a value of
280.1237 -      <span class="attr-value">1</span> were specified.<br/>
280.1238 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightLimitingConeAngleAttribute"><span class="adef">limitingConeAngle</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>A limiting cone which restricts the region where the light is
280.1239 -      projected. No light is projected outside the cone. <span class="attr-name">limitingConeAngle</span> represents the angle in degrees between
280.1240 -      the spot light axis (i.e. the axis between the light source and the
280.1241 -      point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents
280.1242 -      should apply a smoothing technique such as anti-aliasing at the
280.1243 -      boundary of the cone.</span><br/>
280.1244 -      If no value is specified, then no limiting cone will be applied.<br/>
280.1245 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1246 -</div>
280.1247 -
280.1248 -<h3 id="LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</h3>
280.1249 -
280.1250 -<p>The <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a> property defines the
280.1251 -color of the light source for <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>.</p>
280.1252 -
280.1253 -<div class="propdef">
280.1254 -<dl><dt><span class="index-def" title="'margin-top'"><a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a></span></dt><dd>
280.1255 -      <table summary="lighting-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/>
280.1256 -              <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor">&lt;color&gt;</a>
280.1257 -              [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor">&lt;icccolor&gt;</a>] |<br/>
280.1258 -              <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>white</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>
280.1259 -            elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
280.1260 -    </dd></dl>
280.1261 -</div>
280.1262 -
280.1263 -<h2 id="feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></h2>
280.1264 -
280.1265 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feBlend’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1266 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a></li></ul></dd></dl></div>
280.1267 -
280.1268 -<p>This filter composites two objects together using commonly used imaging
280.1269 -software blending modes. It performs a pixel-wise combination of two input
280.1270 -images.</p>
280.1271 -
280.1272 -<div class="adef-list">
280.1273 -<p><em>Attribute definitions:</em></p>
280.1274 -<dl><dt id="feBlendModeAttribute"><span class="adef">mode</span> = "<em>normal | multiply | screen | darken |
280.1275 -  lighten</em>"</dt><dd>One of the image blending modes (see <a href="#BlendingTable">table</a> below). Default is: normal.<br/>
280.1276 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feBlendIn2Attribute"><span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
280.1277 -  attribute)</em>"</dt><dd>The second input image to the blending operation. This attribute can
280.1278 -      take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/>
280.1279 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1280 -</div>
280.1281 -
280.1282 -<p>For all feBlend modes, the result opacity is computed as follows:</p>
280.1283 -<pre>qr = 1 - (1-qa)*(1-qb)</pre>
280.1284 -
280.1285 -<p>For the compositing formulas below, the following definitions apply:</p>
280.1286 -<pre>image A = in
280.1287 -image B = in2
280.1288 -cr = Result color (RGB) - premultiplied 
280.1289 -qa = Opacity value at a given pixel for image A 
280.1290 -qb = Opacity value at a given pixel for image B 
280.1291 -ca = Color (RGB) at a given pixel for image A - premultiplied 
280.1292 -cb = Color (RGB) at a given pixel for image B - premultiplied </pre>
280.1293 -
280.1294 -<p id="BlendingTable">The following table
280.1295 -provides the list of available image blending modes:</p>
280.1296 -
280.1297 -<div class="note-editor">
280.1298 -ED: make table look nicer</div>
280.1299 -
280.1300 -<table summary="blending modes" width="500" border="1"><tbody><tr><td>Image Blending Mode</td><td>Formula for computing result color</td></tr><tr><td>normal</td><td>cr = (1 - qa) * cb + ca</td></tr><tr><td>multiply</td><td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td></tr><tr><td>screen</td><td>cr = cb + ca - ca * cb</td></tr><tr><td>darken</td><td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr><tr><td>lighten</td><td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr></tbody></table>
280.1301 -
280.1302 -<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a href="#feCompositeOperatorAttribute"><span class="attr-value">operator="over"</span></a> on the <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.1303 -filter primitive, matches the blending method used by <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> and matches
280.1304 -the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#SimpleAlphaBlending"><span class="svg-term">simple alpha compositing</span></a> technique used in SVG for all compositing outside of filter effects.</p>
280.1305 -
280.1306 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.1307 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.1308 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.1309 -&lt;svg width="5cm" height="5cm" viewBox="0 0 500 500"
280.1310 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
280.1311 -  &lt;title&gt;Example feBlend - Examples of feBlend modes&lt;/title&gt;
280.1312 -  &lt;desc&gt;Five text strings blended into a gradient,
280.1313 -        with one text string for each of the five feBlend modes.&lt;/desc&gt;
280.1314 -  &lt;defs&gt;
280.1315 -    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
280.1316 -            x1="100" y1="0" x2="300" y2="0"&gt;
280.1317 -      &lt;stop offset="0" stop-color="#000000" /&gt;
280.1318 -      &lt;stop offset=".33" stop-color="#ffffff" /&gt;
280.1319 -      &lt;stop offset=".67" stop-color="#ff0000" /&gt;
280.1320 -      &lt;stop offset="1" stop-color="#808080" /&gt;
280.1321 -    &lt;/linearGradient&gt;
280.1322 -    &lt;filter id="Normal"&gt;
280.1323 -      &lt;feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/&gt;
280.1324 -    &lt;/filter&gt;
280.1325 -    &lt;filter id="Multiply"&gt;
280.1326 -      &lt;feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/&gt;
280.1327 -    &lt;/filter&gt;
280.1328 -    &lt;filter id="Screen"&gt;
280.1329 -      &lt;feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/&gt;
280.1330 -    &lt;/filter&gt;
280.1331 -    &lt;filter id="Darken"&gt;
280.1332 -      &lt;feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/&gt;
280.1333 -    &lt;/filter&gt;
280.1334 -    &lt;filter id="Lighten"&gt;
280.1335 -      &lt;feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/&gt;
280.1336 -    &lt;/filter&gt;
280.1337 -  &lt;/defs&gt;
280.1338 -  &lt;rect fill="none" stroke="blue"  
280.1339 -        x="1" y="1" width="498" height="498"/&gt;
280.1340 -  &lt;g enable-background="new" &gt;
280.1341 -    &lt;rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /&gt;
280.1342 -    &lt;g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" &gt;
280.1343 -      &lt;text x="50" y="90" filter="url(#Normal)" &gt;Normal&lt;/text&gt;
280.1344 -      &lt;text x="50" y="180" filter="url(#Multiply)" &gt;Multiply&lt;/text&gt;
280.1345 -      &lt;text x="50" y="270" filter="url(#Screen)" &gt;Screen&lt;/text&gt;
280.1346 -      &lt;text x="50" y="360" filter="url(#Darken)" &gt;Darken&lt;/text&gt;
280.1347 -      &lt;text x="50" y="450" filter="url(#Lighten)" &gt;Lighten&lt;/text&gt;
280.1348 -    &lt;/g&gt;
280.1349 -  &lt;/g&gt;
280.1350 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feBlend.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feBlend.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.1351 -
280.1352 -<h2 id="feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></h2>
280.1353 -
280.1354 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feColorMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1355 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a></li><li><a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a></li></ul></dd></dl></div>
280.1356 -
280.1357 -<p>This filter applies a matrix transformation:</p>
280.1358 -<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140">
280.1359 -<pre>| R' |     | a00 a01 a02 a03 a04 |   | R |
280.1360 -| G' |     | a10 a11 a12 a13 a14 |   | G |
280.1361 -| B' |  =  | a20 a21 a22 a23 a24 | * | B |
280.1362 -| A' |     | a30 a31 a32 a33 a34 |   | A |
280.1363 -| 1  |     |  0   0   0   0   1  |   | 1 |</pre>
280.1364 -</object>
280.1365 -
280.1366 -<p>on the RGBA color and alpha values of every pixel on the input graphics to
280.1367 -produce a result with a new set of RGBA color and alpha values.</p>
280.1368 -
280.1369 -<p>The calculations are performed on non-premultiplied color values. If the
280.1370 -input graphics consists of premultiplied color values, those values are
280.1371 -automatically converted into non-premultiplied color values for this
280.1372 -operation.</p>
280.1373 -
280.1374 -<p>These matrices often perform an identity mapping in the alpha channel. If
280.1375 -that is the case, an implementation can avoid the costly undoing and redoing
280.1376 -of the premultiplication for all pixels with A = 1.</p>
280.1377 -
280.1378 -<div class="adef-list">
280.1379 -<p><em>Attribute definitions:</em></p>
280.1380 -<dl><dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> =
280.1381 -  "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt><dd>Indicates the type of matrix operation. The keyword <span class="attr-name">matrix</span> indicates that a full 5x4 matrix of
280.1382 -      values will be provided. The other keywords represent convenience
280.1383 -      shortcuts to allow commonly used color operations to be performed
280.1384 -      without specifying a complete matrix.<br/>
280.1385 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> =
280.1386 -  "<em>list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s</em>"</dt><dd>The contents of <span class="attr-name">values</span> depends on the
280.1387 -      value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">type</span></a>: 
280.1388 -      <ul><li>For <span class="attr-value">type="matrix"</span>, <span class="attr-name">values</span> is a list of 20 matrix values (a00
280.1389 -          a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a
280.1390 -          comma. For example, the identity matrix could be expressed as: 
280.1391 -          <pre>type="matrix" 
280.1392 -values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"</pre>
280.1393 -        </li><li>For <span class="attr-value">type="saturate"</span>, <span class="attr-name">values</span> is a single real number value (0 to
280.1394 -          1). A <span class="attr-value">saturate</span> operation is
280.1395 -          equivalent to the following matrix operation: 
280.1396 -		  <p>
280.1397 -		  <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130">
280.1398 -          <pre>| R' |     |0.213+0.787s  0.715-0.715s  0.072-0.072s 0  0 |   | R |
280.1399 -| G' |     |0.213-0.213s  0.715+0.285s  0.072-0.072s 0  0 |   | G |
280.1400 -| B' |  =  |0.213-0.213s  0.715-0.715s  0.072+0.928s 0  0 | * | B |
280.1401 -| A' |     |           0            0             0  1  0 |   | A |
280.1402 -| 1  |     |           0            0             0  0  1 |   | 1 |</pre>
280.1403 -		  </object>
280.1404 -		</p>
280.1405 -        </li><li>For <span class="attr-value">type="hueRotate"</span>, <span class="attr-name">values</span> is a single one real number value
280.1406 -          (degrees). A <span class="attr-value">hueRotate</span> operation is
280.1407 -          equivalent to the following matrix operation: 
280.1408 -		  <p>
280.1409 -		  <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130">
280.1410 -          <pre>| R' |     | a00  a01  a02  0  0 |   | R |
280.1411 -| G' |     | a10  a11  a12  0  0 |   | G |
280.1412 -| B' |  =  | a20  a21  a22  0  0 | * | B |
280.1413 -| A' |     | 0    0    0    1  0 |   | A |
280.1414 -| 1  |     | 0    0    0    0  1 |   | 1 |</pre>
280.1415 -		</object>
280.1416 -		</p>
280.1417 -
280.1418 -          where the terms a00, a01, etc. are calculated as follows: 
280.1419 -		  <p>
280.1420 -		<object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230">
280.1421 -          <pre>| a00 a01 a02 |    [+0.213 +0.715 +0.072]
280.1422 -| a10 a11 a12 | =  [+0.213 +0.715 +0.072] +
280.1423 -| a20 a21 a22 |    [+0.213 +0.715 +0.072]
280.1424 -                        [+0.787 -0.715 -0.072]
280.1425 -cos(hueRotate value) *  [-0.213 +0.285 -0.072] +
280.1426 -                        [-0.213 -0.715 +0.928]
280.1427 -                        [-0.213 -0.715+0.928]
280.1428 -sin(hueRotate value) *  [+0.143 +0.140-0.283]
280.1429 -                        [-0.787 +0.715+0.072]</pre>
280.1430 -		</object>
280.1431 -		</p>
280.1432 -          Thus, the upper left term of the hue matrix turns out to be:
280.1433 -		  <p>
280.1434 -		<object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 
280.1435 -          <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre>
280.1436 -		  </object>
280.1437 -		  </p>
280.1438 -
280.1439 -        </li><li>For <span class="attr-value">type="luminanceToAlpha"</span>,
280.1440 -          <span class="attr-name">values</span> is not applicable. A <span class="attr-value">luminanceToAlpha</span> operation is equivalent
280.1441 -          to the following matrix operation: 
280.1442 -		  <p>
280.1443 -		  <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130">
280.1444 -          <pre>   | R' |     |      0        0        0  0  0 |   | R |
280.1445 -   | G' |     |      0        0        0  0  0 |   | G |
280.1446 -   | B' |  =  |      0        0        0  0  0 | * | B |
280.1447 -   | A' |     | 0.2125   0.7154   0.0721  0  0 |   | A |
280.1448 -   | 1  |     |      0        0        0  0  1 |   | 1 |</pre>
280.1449 -   </object>
280.1450 -   </p>
280.1451 -	      </li></ul>
280.1452 -      If the attribute is not specified, then the default behavior depends on
280.1453 -      the value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a>. If <span class="attr-value">type="matrix"</span>, then this attribute defaults
280.1454 -      to the identity matrix. If <span class="attr-value">type="saturate"</span>, then this attribute defaults
280.1455 -      to the value <span class="attr-value">1</span>, which results in the
280.1456 -      identify matrix. If <span class="attr-value">type="hueRotate"</span>,
280.1457 -      then this attribute defaults to the value <span class="attr-value">0</span>, which results in the identify matrix.<br/>
280.1458 -      <span class="anim-target">Animatable: yes.</span> </dd></dl>
280.1459 -</div>
280.1460 -
280.1461 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.1462 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.1463 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.1464 -&lt;svg width="8cm" height="5cm" viewBox="0 0 800 500"
280.1465 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
280.1466 -  &lt;title&gt;Example feColorMatrix - Examples of feColorMatrix operations&lt;/title&gt;
280.1467 -  &lt;desc&gt;Five text strings showing the effects of feColorMatrix: 
280.1468 -        an unfiltered text string acting as a reference, 
280.1469 -        use of the feColorMatrix matrix option to convert to grayscale,
280.1470 -        use of the feColorMatrix saturate option,
280.1471 -        use of the feColorMatrix hueRotate option,
280.1472 -        and use of the feColorMatrix luminanceToAlpha option.&lt;/desc&gt;
280.1473 -  &lt;defs&gt;
280.1474 -    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
280.1475 -            x1="100" y1="0" x2="500" y2="0"&gt;
280.1476 -      &lt;stop offset="0" stop-color="#ff00ff" /&gt;
280.1477 -      &lt;stop offset=".33" stop-color="#88ff88" /&gt;
280.1478 -      &lt;stop offset=".67" stop-color="#2020ff" /&gt;
280.1479 -      &lt;stop offset="1" stop-color="#d00000" /&gt;
280.1480 -    &lt;/linearGradient&gt;
280.1481 -    &lt;filter id="Matrix" filterUnits="objectBoundingBox" 
280.1482 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1483 -      &lt;feColorMatrix type="matrix" in="SourceGraphic"
280.1484 -           values=".33 .33 .33 0 0 
280.1485 -                   .33 .33 .33 0 0 
280.1486 -                   .33 .33 .33 0 0 
280.1487 -                   .33 .33 .33 0 0"/&gt;
280.1488 -    &lt;/filter&gt;
280.1489 -    &lt;filter id="Saturate40" filterUnits="objectBoundingBox" 
280.1490 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1491 -      &lt;feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/&gt;
280.1492 -    &lt;/filter&gt;
280.1493 -    &lt;filter id="HueRotate90" filterUnits="objectBoundingBox" 
280.1494 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1495 -      &lt;feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/&gt;
280.1496 -    &lt;/filter&gt;
280.1497 -    &lt;filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
280.1498 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1499 -      &lt;feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/&gt;
280.1500 -      &lt;feComposite in="SourceGraphic" in2="a" operator="in" /&gt;
280.1501 -    &lt;/filter&gt;
280.1502 -  &lt;/defs&gt;
280.1503 -  &lt;rect fill="none" stroke="blue"  
280.1504 -        x="1" y="1" width="798" height="498"/&gt;
280.1505 -  &lt;g font-family="Verdana" font-size="75" 
280.1506 -            font-weight="bold" fill="url(#MyGradient)" &gt;
280.1507 -    &lt;rect x="100" y="0" width="500" height="20" /&gt;
280.1508 -    &lt;text x="100" y="90"&gt;Unfiltered&lt;/text&gt;
280.1509 -    &lt;text x="100" y="190" filter="url(#Matrix)" &gt;Matrix&lt;/text&gt;
280.1510 -    &lt;text x="100" y="290" filter="url(#Saturate40)" &gt;Saturate&lt;/text&gt;
280.1511 -    &lt;text x="100" y="390" filter="url(#HueRotate90)" &gt;HueRotate&lt;/text&gt;
280.1512 -    &lt;text x="100" y="490" filter="url(#LuminanceToAlpha)" &gt;Luminance&lt;/text&gt;
280.1513 -  &lt;/g&gt;
280.1514 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feColorMatrix.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feColorMatrix.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.1515 -
280.1516 -<h2 id="feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></h2>
280.1517 -
280.1518 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComponentTransfer’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1519 -                <ul class="no-bullets"><li><a href=""><span class="element-name">‘feFuncA’</span></a></li><li><a href=""><span class="element-name">‘feFuncB’</span></a></li><li><a href=""><span class="element-name">‘feFuncG’</span></a></li><li><a href=""><span class="element-name">‘feFuncR’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a></li></ul></dd></dl></div>
280.1520 -
280.1521 -<p>This filter primitive performs component-wise remapping of data as
280.1522 -follows:</p>
280.1523 -<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R )
280.1524 -G' = <a href="#feFuncGElement">feFuncG</a>( G )
280.1525 -B' = <a href="#feFuncBElement">feFuncB</a>( B )
280.1526 -A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre>
280.1527 -
280.1528 -<p>for every pixel. It allows operations like brightness adjustment, contrast
280.1529 -adjustment, color balance or thresholding.</p>
280.1530 -
280.1531 -<p>The calculations are performed on non-premultiplied color values. If the
280.1532 -input graphics consists of premultiplied color values, those values are
280.1533 -automatically converted into non-premultiplied color values for this
280.1534 -operation. (Note that the undoing and redoing of the premultiplication can be
280.1535 -avoided if <a href=""><span class="element-name">‘feFuncA’</span></a> is the identity transform
280.1536 -and all alpha values on the source graphic are set to 1.)</p>
280.1537 -
280.1538 -<p>The child elements of a <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element specify the
280.1539 -transfer functions for the four channels:</p>
280.1540 -
280.1541 -<ul id="transferFuncElements"><li><a href=""><span class="element-name">‘feFuncR’</span></a> — transfer function for the red component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncG’</span></a> — transfer function for the green component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncB’</span></a> — transfer function for the blue component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncA’</span></a> — transfer function for the alpha component of the input graphic</li></ul>
280.1542 -
280.1543 -<p>The following rules apply to the processing of the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element:</p>
280.1544 -<ul><li>If more than one <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function element</span></a> of the same kind is specified, the last occurrence is to be used.</li><li>If any of the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> are unspecified, the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> must be processed as if those <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> were specified with their <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> attributes set to <span class="attr-value">'identity'</span>.</li></ul>
280.1545 -	
280.1546 -
280.1547 -
280.1548 -<div id="feFuncRElement">
280.1549 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncR’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1550 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a></li></ul></dd></dl></div>
280.1551 -</div>
280.1552 -
280.1553 -<div id="feFuncGElement">
280.1554 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncG’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1555 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncGElement">SVGFEFuncGElement</a></li></ul></dd></dl></div>
280.1556 -</div>
280.1557 -
280.1558 -<div id="feFuncBElement">
280.1559 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncB’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1560 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a></li></ul></dd></dl></div>
280.1561 -</div>
280.1562 -
280.1563 -<div id="feFuncAElement">
280.1564 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncA’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1565 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a></li></ul></dd></dl></div>
280.1566 -</div>
280.1567 -
280.1568 -<p id="TransferFunctionElementAttributes">The attributes below are the
280.1569 -<span class="SVG-TermDefine">transfer function element attributes</span>,
280.1570 -which apply to the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a>.</p>
280.1571 -
280.1572 -<div class="adef-list">
280.1573 -<p><em>Attribute definitions:</em></p>
280.1574 -<dl><dt id="feComponentTransferTypeAttribute"><span class="adef">type</span>
280.1575 -  = "<em>identity | table | discrete | linear | gamma</em>"</dt><dd><p>Indicates the type of component transfer function. The type of
280.1576 -      function determines the applicability of the other attributes.</p>
280.1577 -      <ul><li>For <span class="attr-value">identity</span>: 
280.1578 -          <pre>C' = C</pre>
280.1579 -        </li><li>For <span class="attr-value">table</span>, the function is
280.1580 -          defined by linear interpolation into a lookup table by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of
280.1581 -          <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order
280.1582 -          to identify <em>n</em> interpolation ranges. Interpolations use the
280.1583 -          following formula. 
280.1584 -          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
280.1585 -          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
280.1586 -          <p>The result <code>C'</code> is given by:</p>
280.1587 -          <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N *
280.1588 -          (v<sub>k+1</sub> - v<sub>k</sub>)</p>
280.1589 -        </li><li>For <span class="attr-value">discrete</span>, the function is
280.1590 -          defined by the step function defined by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of
280.1591 -          <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order
280.1592 -          to identify a step function consisting of <em>n</em> steps. The
280.1593 -          step function is defined by the following formula. 
280.1594 -          <p>For a value <code>C</code> pick a <code>k</code> such that:</p>
280.1595 -          <p class="filterformula">k/N &lt;= C &lt; (k+1)/N</p>
280.1596 -          <p>The result <code>C'</code> is given by:</p>
280.1597 -          <p class="filterformula">C' = v<sub>k</sub></p>
280.1598 -        </li><li>For <span class="attr-value">linear</span>, the function is
280.1599 -          defined by the following linear equation: 
280.1600 -          <p class="filterformula">C' = <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">slope</span></a> * C + <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">intercept</span></a></p>
280.1601 -        </li><li>For <span class="attr-value">gamma</span>, the function is
280.1602 -          defined by the following exponential function: 
280.1603 -          <p class="filterformula">C' = <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">amplitude</span></a> * pow(C, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">exponent</span></a>) + <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">offset</span></a></p>
280.1604 -        </li></ul>
280.1605 -      <span class="anim-target">Animatable: yes.</span> </dd><dt id="feComponentTransferTableValuesAttribute"><span class="adef">tableValues</span> = "<em>(list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s)</em>"</dt><dd>When <span class="attr-value">type="table"</span>, the list of
280.1606 -      <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
280.1607 -      s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which
280.1608 -      define the lookup table. An empty list results in an identity transfer
280.1609 -      function. If the attribute is not specified, then the effect is as if
280.1610 -      an empty list were provided.<br/>
280.1611 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferSlopeAttribute"><span class="adef">slope</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the slope of the
280.1612 -      linear function.<br/>
280.1613 -      If the attribute is not specified, then the effect is as if a value of
280.1614 -      <span class="attr-value">1</span> were specified.<br/>
280.1615 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferInterceptAttribute"><span class="adef">intercept</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the intercept of
280.1616 -      the linear function.<br/>
280.1617 -      If the attribute is not specified, then the effect is as if a value of
280.1618 -      <span class="attr-value">0</span> were specified.<br/>
280.1619 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferAmplitudeAttribute"><span class="adef">amplitude</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the amplitude of
280.1620 -      the gamma function.<br/>
280.1621 -      If the attribute is not specified, then the effect is as if a value of
280.1622 -      <span class="attr-value">1</span> were specified.<br/>
280.1623 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferExponentAttribute"><span class="adef">exponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the exponent of
280.1624 -      the gamma function.<br/>
280.1625 -      If the attribute is not specified, then the effect is as if a value of
280.1626 -      <span class="attr-value">1</span> were specified.<br/>
280.1627 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferOffsetAttribute"><span class="adef">offset</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the offset of the
280.1628 -      gamma function.<br/>
280.1629 -      If the attribute is not specified, then the effect is as if a value of
280.1630 -      <span class="attr-value">0</span> were specified.<br/>
280.1631 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1632 -</div>
280.1633 -
280.1634 -
280.1635 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.1636 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.1637 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.1638 -&lt;svg width="8cm" height="4cm" viewBox="0 0 800 400"
280.1639 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
280.1640 -  &lt;title&gt;Example feComponentTransfer - Examples of feComponentTransfer operations&lt;/title&gt;
280.1641 -  &lt;desc&gt;Four text strings showing the effects of feComponentTransfer: 
280.1642 -        an identity function acting as a reference, 
280.1643 -        use of the feComponentTransfer table option,
280.1644 -        use of the feComponentTransfer linear option,
280.1645 -        and use of the feComponentTransfer gamma option.&lt;/desc&gt;
280.1646 -  &lt;defs&gt;
280.1647 -    &lt;linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
280.1648 -            x1="100" y1="0" x2="600" y2="0"&gt;
280.1649 -      &lt;stop offset="0" stop-color="#ff0000" /&gt;
280.1650 -      &lt;stop offset=".33" stop-color="#00ff00" /&gt;
280.1651 -      &lt;stop offset=".67" stop-color="#0000ff" /&gt;
280.1652 -      &lt;stop offset="1" stop-color="#000000" /&gt;
280.1653 -    &lt;/linearGradient&gt;
280.1654 -    &lt;filter id="Identity" filterUnits="objectBoundingBox" 
280.1655 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1656 -      &lt;feComponentTransfer&gt;
280.1657 -        &lt;feFuncR type="identity"/&gt;
280.1658 -        &lt;feFuncG type="identity"/&gt;
280.1659 -        &lt;feFuncB type="identity"/&gt;
280.1660 -        &lt;feFuncA type="identity"/&gt;
280.1661 -      &lt;/feComponentTransfer&gt;
280.1662 -    &lt;/filter&gt;
280.1663 -    &lt;filter id="Table" filterUnits="objectBoundingBox" 
280.1664 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1665 -      &lt;feComponentTransfer&gt;
280.1666 -        &lt;feFuncR type="table" tableValues="0 0 1 1"/&gt;
280.1667 -        &lt;feFuncG type="table" tableValues="1 1 0 0"/&gt;
280.1668 -        &lt;feFuncB type="table" tableValues="0 1 1 0"/&gt;
280.1669 -      &lt;/feComponentTransfer&gt;
280.1670 -    &lt;/filter&gt;
280.1671 -    &lt;filter id="Linear" filterUnits="objectBoundingBox" 
280.1672 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1673 -      &lt;feComponentTransfer&gt;
280.1674 -        &lt;feFuncR type="linear" slope=".5" intercept=".25"/&gt;
280.1675 -        &lt;feFuncG type="linear" slope=".5" intercept="0"/&gt;
280.1676 -        &lt;feFuncB type="linear" slope=".5" intercept=".5"/&gt;
280.1677 -      &lt;/feComponentTransfer&gt;
280.1678 -    &lt;/filter&gt;
280.1679 -    &lt;filter id="Gamma" filterUnits="objectBoundingBox" 
280.1680 -            x="0%" y="0%" width="100%" height="100%"&gt;
280.1681 -      &lt;feComponentTransfer&gt;
280.1682 -        &lt;feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/&gt;
280.1683 -        &lt;feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/&gt;
280.1684 -        &lt;feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/&gt;
280.1685 -      &lt;/feComponentTransfer&gt;
280.1686 -    &lt;/filter&gt;
280.1687 -  &lt;/defs&gt;
280.1688 -  &lt;rect fill="none" stroke="blue"  
280.1689 -        x="1" y="1" width="798" height="398"/&gt;
280.1690 -  &lt;g font-family="Verdana" font-size="75" 
280.1691 -            font-weight="bold" fill="url(#MyGradient)" &gt;
280.1692 -    &lt;rect x="100" y="0" width="600" height="20" /&gt;
280.1693 -    &lt;text x="100" y="90"&gt;Identity&lt;/text&gt;
280.1694 -    &lt;text x="100" y="190" filter="url(#Table)" &gt;TableLookup&lt;/text&gt;
280.1695 -    &lt;text x="100" y="290" filter="url(#Linear)" &gt;LinearFunc&lt;/text&gt;
280.1696 -    &lt;text x="100" y="390" filter="url(#Gamma)" &gt;GammaFunc&lt;/text&gt;
280.1697 -  &lt;/g&gt;
280.1698 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComponentTransfer.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComponentTransfer.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.1699 -
280.1700 -<h2 id="feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></h2>
280.1701 -
280.1702 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComposite’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1703 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a></li><li><a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a></li><li><a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a></li><li><a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a></li></ul></dd></dl></div>
280.1704 -
280.1705 -<p>This filter performs the combination of the two input images pixel-wise in
280.1706 -image space using one of the Porter-Duff [<a href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in,
280.1707 -atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em>
280.1708 -operation (with the result clamped between [0..1]) can be applied.</p>
280.1709 -
280.1710 -<p>The <em>arithmetic</em> operation is useful for combining the output from
280.1711 -the <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> filters with texture
280.1712 -data. It is also useful for implementing <em>dissolve</em>. If the
280.1713 -<em>arithmetic</em> operation is chosen, each result pixel is computed using
280.1714 -the following formula:</p>
280.1715 -<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre>
280.1716 -
280.1717 -<p>For this filter primitive, the extent of the resulting image might grow as
280.1718 -described in the section that describes the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
280.1719 -
280.1720 -<div class="adef-list">
280.1721 -<p><em>Attribute definitions:</em></p>
280.1722 -<dl><dt id="feCompositeOperatorAttribute"><span class="adef">operator</span>
280.1723 -  = "<em>over | in | out | atop | xor | arithmetic</em>"</dt><dd>The compositing operation that is to be performed. All of the <span class="attr-name">operator</span> types except <span class="attr-value">arithmetic</span> match the correspond operation as
280.1724 -      described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span class="attr-value">arithmetic</span> operator is described above.<br/>
280.1725 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK1Attribute"><span class="adef">k1</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
280.1726 -      If the attribute is not specified, the effect is as if a value of "0"
280.1727 -      were specified.<br/>
280.1728 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK2Attribute"><span class="adef">k2</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
280.1729 -      If the attribute is not specified, the effect is as if a value of "0"
280.1730 -      were specified.<br/>
280.1731 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK3Attribute"><span class="adef">k3</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
280.1732 -      If the attribute is not specified, the effect is as if a value of "0"
280.1733 -      were specified.<br/>
280.1734 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK4Attribute"><span class="adef">k4</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/>
280.1735 -      If the attribute is not specified, the effect is as if a value of "0"
280.1736 -      were specified.<br/>
280.1737 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeIn2Attribute">
280.1738 -  <span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a>
280.1739 -  attribute)</em>"</dt><dd>The second input image to the compositing operation. This attribute
280.1740 -      can take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/>
280.1741 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.1742 -</div>
280.1743 -
280.1744 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.1745 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.1746 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.1747 -&lt;svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
280.1748 -     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;
280.1749 -  &lt;title&gt;Example feComposite - Examples of feComposite operations&lt;/title&gt;
280.1750 -  &lt;desc&gt;Four rows of six pairs of overlapping triangles depicting
280.1751 -        the six different feComposite operators under different
280.1752 -        opacity values and different clearing of the background.&lt;/desc&gt;
280.1753 -	&lt;defs&gt;
280.1754 -    &lt;desc&gt;Define two sets of six filters for each of the six compositing operators.
280.1755 -          The first set wipes out the background image by flooding with opaque white.
280.1756 -          The second set does not wipe out the background, with the result
280.1757 -          that the background sometimes shines through and is other cases
280.1758 -          is blended into itself (i.e., "double-counting").&lt;/desc&gt;
280.1759 -    &lt;filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1760 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1761 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/&gt;
280.1762 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1763 -    &lt;/filter&gt;
280.1764 -    &lt;filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1765 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1766 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/&gt;
280.1767 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1768 -    &lt;/filter&gt;
280.1769 -    &lt;filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1770 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1771 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/&gt;
280.1772 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1773 -    &lt;/filter&gt;
280.1774 -    &lt;filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1775 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1776 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/&gt;
280.1777 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1778 -    &lt;/filter&gt;
280.1779 -    &lt;filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1780 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1781 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/&gt;
280.1782 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1783 -    &lt;/filter&gt;
280.1784 -    &lt;filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
280.1785 -            x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1786 -      &lt;feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/&gt;
280.1787 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
280.1788 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/&gt;
280.1789 -      &lt;feMerge&gt; &lt;feMergeNode in="flood"/&gt; &lt;feMergeNode in="comp"/&gt; &lt;/feMerge&gt;
280.1790 -    &lt;/filter&gt;
280.1791 -    &lt;filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1792 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/&gt;
280.1793 -    &lt;/filter&gt;
280.1794 -    &lt;filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1795 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/&gt;
280.1796 -    &lt;/filter&gt;
280.1797 -    &lt;filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1798 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/&gt;
280.1799 -    &lt;/filter&gt;
280.1800 -    &lt;filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1801 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/&gt;
280.1802 -    &lt;/filter&gt;
280.1803 -    &lt;filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1804 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/&gt;
280.1805 -    &lt;/filter&gt;
280.1806 -    &lt;filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
280.1807 -            x="-5%" y="-5%" width="110%" height="110%"&gt;
280.1808 -      &lt;feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
280.1809 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/&gt;
280.1810 -    &lt;/filter&gt;
280.1811 -    &lt;path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /&gt;
280.1812 -    &lt;path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /&gt;
280.1813 -    &lt;path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /&gt;
280.1814 -    &lt;path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /&gt;
280.1815 -    &lt;g id="TwoBlueTriangles"&gt;
280.1816 -      &lt;use xlink:href="#Blue100"/&gt;
280.1817 -      &lt;use xlink:href="#Blue50"/&gt;
280.1818 -    &lt;/g&gt;
280.1819 -    &lt;g id="BlueTriangles"&gt;
280.1820 -      &lt;use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1821 -      &lt;use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1822 -      &lt;use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1823 -      &lt;use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1824 -      &lt;use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1825 -      &lt;use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/&gt;
280.1826 -    &lt;/g&gt;
280.1827 -  &lt;/defs&gt;
280.1828 -
280.1829 -  &lt;rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/&gt;
280.1830 -  &lt;g font-family="Verdana" font-size="40" shape-rendering="crispEdges"&gt;
280.1831 -    &lt;desc&gt;Render the examples using the filters that draw on top of
280.1832 -          an opaque white surface, thus obliterating the background.&lt;/desc&gt;
280.1833 -    &lt;g enable-background="new"&gt;
280.1834 -      &lt;text x="15" y="75"&gt;opacity 1.0&lt;/text&gt;
280.1835 -      &lt;text x="15" y="115" font-size="27"&gt;(with feFlood)&lt;/text&gt;
280.1836 -      &lt;text x="15" y="200"&gt;opacity 0.5&lt;/text&gt;
280.1837 -      &lt;text x="15" y="240" font-size="27"&gt;(with feFlood)&lt;/text&gt;
280.1838 -      &lt;use xlink:href="#BlueTriangles"/&gt;
280.1839 -      &lt;g transform="translate(275,25)"&gt;
280.1840 -        &lt;use xlink:href="#Red100" filter="url(#overFlood)" /&gt;
280.1841 -        &lt;use xlink:href="#Red50" filter="url(#overFlood)" /&gt;
280.1842 -        &lt;text x="5" y="275"&gt;over&lt;/text&gt;
280.1843 -      &lt;/g&gt;
280.1844 -      &lt;g transform="translate(400,25)"&gt;
280.1845 -        &lt;use xlink:href="#Red100" filter="url(#inFlood)" /&gt;
280.1846 -        &lt;use xlink:href="#Red50" filter="url(#inFlood)" /&gt;
280.1847 -        &lt;text x="35" y="275"&gt;in&lt;/text&gt;
280.1848 -      &lt;/g&gt;
280.1849 -      &lt;g transform="translate(525,25)"&gt;
280.1850 -        &lt;use xlink:href="#Red100" filter="url(#outFlood)" /&gt;
280.1851 -        &lt;use xlink:href="#Red50" filter="url(#outFlood)" /&gt;
280.1852 -        &lt;text x="15" y="275"&gt;out&lt;/text&gt;
280.1853 -      &lt;/g&gt;
280.1854 -      &lt;g transform="translate(650,25)"&gt;
280.1855 -        &lt;use xlink:href="#Red100" filter="url(#atopFlood)" /&gt;
280.1856 -        &lt;use xlink:href="#Red50" filter="url(#atopFlood)" /&gt;
280.1857 -        &lt;text x="10" y="275"&gt;atop&lt;/text&gt;
280.1858 -      &lt;/g&gt;
280.1859 -      &lt;g transform="translate(775,25)"&gt;
280.1860 -        &lt;use xlink:href="#Red100" filter="url(#xorFlood)" /&gt;
280.1861 -        &lt;use xlink:href="#Red50" filter="url(#xorFlood)" /&gt;
280.1862 -        &lt;text x="15" y="275"&gt;xor&lt;/text&gt;
280.1863 -      &lt;/g&gt;
280.1864 -      &lt;g transform="translate(900,25)"&gt;
280.1865 -        &lt;use xlink:href="#Red100" filter="url(#arithmeticFlood)" /&gt;
280.1866 -        &lt;use xlink:href="#Red50" filter="url(#arithmeticFlood)" /&gt;
280.1867 -        &lt;text x="-25" y="275"&gt;arithmetic&lt;/text&gt;
280.1868 -      &lt;/g&gt;
280.1869 -    &lt;/g&gt;
280.1870 -    &lt;g transform="translate(0,325)" enable-background="new"&gt;
280.1871 -    &lt;desc&gt;Render the examples using the filters that do not obliterate
280.1872 -          the background, thus sometimes causing the background to continue
280.1873 -          to appear in some cases, and in other cases the background
280.1874 -          image blends into itself ("double-counting").&lt;/desc&gt;
280.1875 -      &lt;text x="15" y="75"&gt;opacity 1.0&lt;/text&gt;
280.1876 -      &lt;text x="15" y="115" font-size="27"&gt;(without feFlood)&lt;/text&gt;
280.1877 -      &lt;text x="15" y="200"&gt;opacity 0.5&lt;/text&gt;
280.1878 -      &lt;text x="15" y="240" font-size="27"&gt;(without feFlood)&lt;/text&gt;
280.1879 -      &lt;use xlink:href="#BlueTriangles"/&gt;
280.1880 -      &lt;g transform="translate(275,25)"&gt;
280.1881 -        &lt;use xlink:href="#Red100" filter="url(#overNoFlood)" /&gt;
280.1882 -        &lt;use xlink:href="#Red50" filter="url(#overNoFlood)" /&gt;
280.1883 -        &lt;text x="5" y="275"&gt;over&lt;/text&gt;
280.1884 -      &lt;/g&gt;
280.1885 -      &lt;g transform="translate(400,25)"&gt;
280.1886 -        &lt;use xlink:href="#Red100" filter="url(#inNoFlood)" /&gt;
280.1887 -        &lt;use xlink:href="#Red50" filter="url(#inNoFlood)" /&gt;
280.1888 -        &lt;text x="35" y="275"&gt;in&lt;/text&gt;
280.1889 -      &lt;/g&gt;
280.1890 -      &lt;g transform="translate(525,25)"&gt;
280.1891 -        &lt;use xlink:href="#Red100" filter="url(#outNoFlood)" /&gt;
280.1892 -        &lt;use xlink:href="#Red50" filter="url(#outNoFlood)" /&gt;
280.1893 -        &lt;text x="15" y="275"&gt;out&lt;/text&gt;
280.1894 -      &lt;/g&gt;
280.1895 -      &lt;g transform="translate(650,25)"&gt;
280.1896 -        &lt;use xlink:href="#Red100" filter="url(#atopNoFlood)" /&gt;
280.1897 -        &lt;use xlink:href="#Red50" filter="url(#atopNoFlood)" /&gt;
280.1898 -        &lt;text x="10" y="275"&gt;atop&lt;/text&gt;
280.1899 -      &lt;/g&gt;
280.1900 -      &lt;g transform="translate(775,25)"&gt;
280.1901 -        &lt;use xlink:href="#Red100" filter="url(#xorNoFlood)" /&gt;
280.1902 -        &lt;use xlink:href="#Red50" filter="url(#xorNoFlood)" /&gt;
280.1903 -        &lt;text x="15" y="275"&gt;xor&lt;/text&gt;
280.1904 -      &lt;/g&gt;
280.1905 -      &lt;g transform="translate(900,25)"&gt;
280.1906 -        &lt;use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /&gt;
280.1907 -        &lt;use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /&gt;
280.1908 -        &lt;text x="-25" y="275"&gt;arithmetic&lt;/text&gt;
280.1909 -      &lt;/g&gt;
280.1910 -    &lt;/g&gt;
280.1911 -  &lt;/g&gt;
280.1912 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComposite.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComposite.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.1913 -
280.1914 -<h2 id="feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></h2>
280.1915 -
280.1916 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feConvolveMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.1917 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a></li><li><a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a></li><li><a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a></li><li><a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a></li><li><a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a></li><li><a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a></li><li><a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a></li><li><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li><li><a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a></li></ul></dd></dl></div>
280.1918 -
280.1919 -
280.1920 -<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution
280.1921 -combines pixels in the input image with neighboring pixels to produce a
280.1922 -resulting image. A wide variety of imaging operations can be achieved through
280.1923 -convolutions, including blurring, edge detection, sharpening, embossing and
280.1924 -beveling.</p>
280.1925 -
280.1926 -<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel)
280.1927 -which describes how a given pixel value in the input image is combined with
280.1928 -its neighboring pixel values to produce a resulting pixel value. Each result
280.1929 -pixel is determined by applying the kernel matrix to the corresponding source
280.1930 -pixel and its neighboring pixels. The basic convolution formula which is
280.1931 -applied to each color value for a given pixel is:</p>
280.1932 -
280.1933 -<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br/>
280.1934 -              SUM <sub>I=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br/>
280.1935 -                SUM <sub>J=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br/>
280.1936 -                  SOURCE <sub>X-<a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a>+J, Y-<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>+I</sub> *  <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a><sub><a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1,  <a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br/>
280.1937 -                } <br/>
280.1938 -              } <br/>
280.1939 -            ) /  <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> +  <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a><br/>
280.1940 -</p>
280.1941 -
280.1942 -<div class="note-editor">
280.1943 -ED: Consider making this into mathml</div>
280.1944 -
280.1945 -<p>where "orderX" and "orderY" represent the X and Y values for the <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> attribute, "targetX" represents the value
280.1946 -of the <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> attribute, "targetY" represents the
280.1947 -value of the <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> attribute, "kernelMatrix" represents the
280.1948 -value of the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> attribute, "divisor" represents the
280.1949 -value of the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> attribute, and "bias" represents the
280.1950 -value of the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute.</p>
280.1951 -
280.1952 -<p>Note in the above formulas that the values in the kernel matrix are
280.1953 -applied such that the kernel matrix is rotated 180 degrees relative to the
280.1954 -source and destination images in order to match convolution theory as
280.1955 -described in many computer graphics textbooks.</p>
280.1956 -
280.1957 -<p>To illustrate, suppose you have a input image which is 5 pixels by 5
280.1958 -pixels, whose color values for one of the color channels are as follows:</p>
280.1959 -<pre>    0  20  40 235 235
280.1960 -  100 120 140 235 235
280.1961 -  200 220 240 235 235
280.1962 -  225 225 255 255 255
280.1963 -  225 225 255 255 255</pre>
280.1964 -
280.1965 -<div class="note-editor">
280.1966 -ED: Consider making this into mathml</div>
280.1967 -
280.1968 -<p>and you define a 3-by-3 convolution kernel as follows:</p>
280.1969 -<pre>  1 2 3
280.1970 -  4 5 6
280.1971 -  7 8 9</pre>
280.1972 -
280.1973 -<div class="note-editor">
280.1974 -ED: Consider making this into mathml</div>
280.1975 -
280.1976 -<p>Let's focus on the color value at the second row and second column of the
280.1977 -image (source pixel value is 120). Assuming the simplest case (where the
280.1978 -input image's pixel grid aligns perfectly with the kernel's pixel grid) and
280.1979 -assuming default values for attributes <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> and
280.1980 -<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>, then resulting color value will
280.1981 -be:</p>
280.1982 -<pre>(9*  0 + 8* 20 + 7* 40 +
280.1983 -6*100 + 5*120 + 4*140 +
280.1984 -3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre>
280.1985 -
280.1986 -<div class="note-editor">
280.1987 -ED: Consider making this into mathml</div>
280.1988 -
280.1989 -<p>Because they operate on pixels, matrix convolutions are inherently
280.1990 -resolution-dependent. To make <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> produce resolution-independent
280.1991 -results, an explicit value should be provided for either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
280.1992 -and/or attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
280.1993 -
280.1994 -<p><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other
280.1995 -attributes, defines an implicit pixel grid in the filter effects coordinate
280.1996 -system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid
280.1997 -established by <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the
280.1998 -pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the
280.1999 -input image will be temporarily rescaled to match its pixels with <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The convolution happens on the
280.2000 -resampled image. After applying the convolution, the image is resampled back
280.2001 -to the original resolution.</p>
280.2002 -
280.2003 -<p>When the image must be resampled to match the coordinate system defined by
280.2004 -<a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> prior to convolution, or
280.2005 -resampled to match the device coordinate system after convolution, it is
280.2006 -recommended that high quality viewers make use of appropriate interpolation
280.2007 -techniques, for example bilinear or bicubic. Depending on the speed of the
280.2008 -available interpolents, this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that
280.2009 -implementations might choose approaches that minimize or eliminate resampling
280.2010 -when not necessary to produce proper results, such as when the document is
280.2011 -zoomed out such that <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is
280.2012 -considerably smaller than a device pixel.</p>
280.2013 -
280.2014 -<div class="adef-list">
280.2015 -<p><em>Attribute definitions:</em></p>
280.2016 -<dl><dt id="feConvolveMatrixElementOrderAttribute"><span class="adef">order</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>Indicates the number of cells in each dimension for <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. The values provided must be
280.2017 -      <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a>
280.2018 -      s greater than zero. The first number, &lt;orderX&gt;, indicates the
280.2019 -      number of columns in the matrix. The second number, &lt;orderY&gt;,
280.2020 -      indicates the number of rows in the matrix. If &lt;orderY&gt; is not
280.2021 -      provided, it defaults to &lt;orderX&gt;.<br/>
280.2022 -      A typical value is order="3". It is recommended that only small values
280.2023 -      (e.g., 3) be used; higher values may result in very high CPU overhead
280.2024 -      and usually do not produce results that justify the impact on
280.2025 -      performance.<br/>
280.2026 -      If the attribute is not specified, the effect is as if a value of "3"
280.2027 -      were specified.<br/>
280.2028 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementKernelMatrixAttribute"><span class="adef">kernelMatrix</span> = "<span class="attr-value">&lt;list of
280.2029 -  numbers&gt;</span>"</dt><dd>The list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
280.2030 -      s that make up the kernel matrix for the convolution. Values are
280.2031 -      separated by space characters and/or a comma. The number of entries in
280.2032 -      the list must equal &lt;orderX&gt; times &lt;orderY&gt;.<br/>
280.2033 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementDivisorAttribute"><span class="adef">divisor</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the
280.2034 -      input image to yield a number, that number is divided by <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> to yield the final destination color
280.2035 -      value. A divisor that is the sum of all the matrix values tends to have
280.2036 -      an evening effect on the overall color intensity of the result. If the
280.2037 -      specified divisor is zero then the default value will be used instead.
280.2038 -      The default value is the sum of all values in kernelMatrix, with the
280.2039 -      exception that if the sum is zero, then the divisor is set to 1.<br/>
280.2040 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementBiasAttribute"><span class="adef">bias</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the
280.2041 -      input image to yield a number and applying the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute is added to each component. One
280.2042 -      application of <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is when it is
280.2043 -      desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If
280.2044 -      <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is not specified, then the effect
280.2045 -      is as if a value of zero were specified.<br/>
280.2046 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetXAttribute"><span class="adef">targetX</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></span>"</dt><dd>Determines the positioning in X of the convolution matrix relative to
280.2047 -      a given target pixel in the input image. The leftmost column of the
280.2048 -      matrix is column number zero. The value must be such that: 0 &lt;=
280.2049 -      targetX &lt; orderX. By default, the convolution matrix is centered in
280.2050 -      X over each pixel of the input image (i.e., targetX = floor ( orderX /
280.2051 -      2 )).<br/>
280.2052 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetYAttribute"><span class="adef">targetY</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></span>"</dt><dd>Determines the positioning in Y of the convolution matrix relative to
280.2053 -      a given target pixel in the input image. The topmost row of the matrix
280.2054 -      is row number zero. The value must be such that: 0 &lt;= targetY &lt;
280.2055 -      orderY. By default, the convolution matrix is centered in Y over each
280.2056 -      pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br/>
280.2057 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementEdgeModeAttribute"><span class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap |
280.2058 -  none</span>"</dt><dd><p>Determines how to extend the input image as necessary with color
280.2059 -      values so that the matrix operations can be applied when the kernel is
280.2060 -      positioned at or near the edge of the input image.</p>
280.2061 -      <p>"duplicate" indicates that the input image is extended along each of
280.2062 -      its borders as necessary by duplicating the color values at the given
280.2063 -      edge of the input image.</p>
280.2064 -      <pre>Original N-by-M image, where m=M-1 and n=N-1:
280.2065 -          11 12 ... 1m 1M
280.2066 -          21 22 ... 2m 2M
280.2067 -          .. .. ... .. ..
280.2068 -          n1 n2 ... nm nM
280.2069 -          N1 N2 ... Nm NM
280.2070 -Extended by two pixels using "duplicate":
280.2071 -  11 11   11 12 ... 1m 1M   1M 1M
280.2072 -  11 11   11 12 ... 1m 1M   1M 1M
280.2073 -  11 11   11 12 ... 1m 1M   1M 1M
280.2074 -  21 21   21 22 ... 2m 2M   2M 2M
280.2075 -  .. ..   .. .. ... .. ..   .. ..
280.2076 -  n1 n1   n1 n2 ... nm nM   nM nM
280.2077 -  N1 N1   N1 N2 ... Nm NM   NM NM
280.2078 -  N1 N1   N1 N2 ... Nm NM   NM NM
280.2079 -  N1 N1   N1 N2 ... Nm NM   NM NM</pre>
280.2080 -
280.2081 -      <div class="note-editor">
280.2082 -      ED: Consider making this into mathml</div>
280.2083 -      <p>"wrap" indicates that the input image is extended by taking the
280.2084 -      color values from the opposite edge of the image.</p>
280.2085 -      <pre>Extended by two pixels using "wrap":
280.2086 -  nm nM   n1 n2 ... nm nM   n1 n2
280.2087 -  Nm NM   N1 N2 ... Nm NM   N1 N2
280.2088 -  1m 1M   11 12 ... 1m 1M   11 12
280.2089 -  2m 2M   21 22 ... 2m 2M   21 22
280.2090 -  .. ..   .. .. ... .. ..   .. ..
280.2091 -  nm nM   n1 n2 ... nm nM   n1 n2
280.2092 -  Nm NM   N1 N2 ... Nm NM   N1 N2
280.2093 -  1m 1M   11 12 ... 1m 1M   11 12
280.2094 -  2m 2M   21 22 ... 2m 2M   21 22</pre>
280.2095 -
280.2096 -      <div class="note-editor">
280.2097 -      ED: Consider making this into mathml</div>
280.2098 -      <p>"none" indicates that the input image is extended with pixel values
280.2099 -      of zero for R, G, B and A.</p>
280.2100 -      <p><span class="anim-target">Animatable: yes.</span></p>
280.2101 -    </dd><dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
280.2102 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
280.2103 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
280.2104 -      current filter units (i.e., units as determined by the value of
280.2105 -      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) between successive columns
280.2106 -      and rows, respectively, in the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. By specifying value(s) for 
280.2107 -      <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, the kernel becomes defined
280.2108 -      in a scalable, abstract coordinate system. If <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not specified, the default
280.2109 -      value is one pixel in the offscreen bitmap, which is a pixel-based
280.2110 -      coordinate system, and thus potentially not scalable. For some level of
280.2111 -      consistency across display media and user agents, it is necessary that
280.2112 -      a value be provided for at least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. 
280.2113 -      In some implementations, the most consistent results and the fastest performance will be achieved if
280.2114 -      the pixel grid of the temporary offscreen images aligns with the pixel
280.2115 -      grid of the kernel.<br/>
280.2116 -      If a negative or zero value is specified the default value will be used
280.2117 -      instead. <br/>
280.2118 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span class="adef">preserveAlpha</span> = "<span class="attr-value">false |
280.2119 -  true</span>"</dt><dd>A value of <span class="attr-value">false</span> indicates that the
280.2120 -      convolution will apply to all channels, including the alpha channel.<br/>
280.2121 -      A value of <span class="attr-value">true</span> indicates that the
280.2122 -      convolution will only apply to the color channels. In this case, the
280.2123 -      filter will temporarily unpremultiply the color component values, apply
280.2124 -      the kernel, and then re-premultiply at the end.<br/>
280.2125 -      If <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> is not specified, then
280.2126 -      the effect is as if a value of <span class="attr-value">false</span>
280.2127 -      were specified.<br/>
280.2128 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2129 -</div>
280.2130 -
280.2131 -
280.2132 -
280.2133 -<h2 id="feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></h2>
280.2134 -
280.2135 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDiffuseLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2136 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a></li><li><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a></li></ul></dd></dl></div>
280.2137 -
280.2138 -<p>This filter primitive lights an image using the alpha channel as a bump
280.2139 -map. The resulting image is an RGBA opaque image based on the light color
280.2140 -with alpha = 1.0 everywhere. The lighting calculation follows the standard
280.2141 -diffuse component of the Phong lighting model. The resulting image depends on
280.2142 -the light color, light position and surface geometry of the input bump
280.2143 -map.</p>
280.2144 -
280.2145 -<p>The light map produced by this filter primitive can be combined with a
280.2146 -texture image using the multiply term of the <em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> compositing method. Multiple
280.2147 -light sources can be simulated by adding several of these light maps together
280.2148 -before applying it to the texture image.</p>
280.2149 -
280.2150 -<p>The formulas below make use of 3x3 filters. Because they operate on
280.2151 -pixels, such filters are inherently resolution-dependent. To make <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> produce
280.2152 -resolution-independent results, an explicit value should be provided for
280.2153 -either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element
280.2154 -and/or attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
280.2155 -
280.2156 -<p><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other
280.2157 -attributes, defines an implicit pixel grid in the filter effects coordinate
280.2158 -system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid
280.2159 -established by <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the
280.2160 -pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the
280.2161 -input image will be temporarily rescaled to match its pixels with <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back
280.2162 -to its original resolution.</p>
280.2163 -
280.2164 -<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example
280.2165 -bilinear or bicubic.</span> Depending on the speed of the available interpolents,
280.2166 -this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that
280.2167 -implementations might choose approaches that minimize or eliminate resampling
280.2168 -when not necessary to produce proper results, such as when the document is
280.2169 -zoomed out such that <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is
280.2170 -considerably smaller than a device pixel.</p>
280.2171 -
280.2172 -<p>For the formulas that follow, the
280.2173 -<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is
280.2174 -defined as:</p>
280.2175 -
280.2176 -<div class="note-editor">
280.2177 -ED: Consider making the following in mathml</div>
280.2178 -
280.2179 -<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) =
280.2180 -sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p>
280.2181 -
280.2182 -<p>The resulting RGBA image is computed as follows:</p>
280.2183 -
280.2184 -<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L *
280.2185 -L<sub>r</sub><br/>
280.2186 -D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br/>
280.2187 -D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br/>
280.2188 -D<sub>a</sub> = 1.0</p>
280.2189 -
280.2190 -<p>where</p>
280.2191 -<dl><dd>k<sub>d</sub> = diffuse lighting constant<br/>
280.2192 -      N = surface normal unit vector, a function of x and y<br/>
280.2193 -      L = unit vector pointing from surface to light, a function of x and y
280.2194 -      in the point and spot light cases<br/>
280.2195 -      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a
280.2196 -      function of x and y in the spot light case</dd></dl>
280.2197 -
280.2198 -<p>N is a function of x and y and depends on the surface gradient as
280.2199 -follows:</p>
280.2200 -
280.2201 -<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p>
280.2202 -
280.2203 -<p class="filterformula">Z (x,y) = surfaceScale *  A<sub>in</sub>(x,y)</p>
280.2204 -
280.2205 -<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter.
280.2206 -Different filter kernels are used depending on whether the given pixel is on
280.2207 -the interior or an edge. For each case, the formula is:</p>
280.2208 -
280.2209 -<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale *
280.2210 -FACTOR<sub>x</sub> *<br/>
280.2211 -           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) +
280.2212 -K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br/>
280.2213 -            K <sub>x</sub>(0,1)*I(x-dx,y)   +
280.2214 -K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br/>
280.2215 -            K <sub>x</sub>(0,2)*I(x-dx,y+dy) +
280.2216 -K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br/>
280.2217 -N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br/>
280.2218 -           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) +
280.2219 -K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br/>
280.2220 -            K <sub>y</sub>(0,1)*I(x-dx,y)   +
280.2221 -K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br/>
280.2222 -            K <sub>y</sub>(0,2)*I(x-dx,y+dy) +
280.2223 -K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br/>
280.2224 -N<sub>z</sub> (x,y) = 1.0<br/>
280.2225 -<br/>
280.2226 -N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) /
280.2227 -Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p>
280.2228 -
280.2229 -<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g.,
280.2230 -<code>I(x-dx,y-dy)</code>), represent deltas relative to a given
280.2231 -<code>(x,y)</code> position for the purpose of estimating the slope of the
280.2232 -surface at that point. These deltas are determined by the value (explicit or
280.2233 -implicit) of attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p>
280.2234 -
280.2235 -<table summary="feDiffuseLighting formulas" border="1"><colgroup><col width="33.3%"/><col width="33.3%"/><col width="*"/></colgroup><tbody><tr><td><p>Top/left corner:</p>
280.2236 -
280.2237 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
280.2238 -        K<sub>x</sub> =<br/>
280.2239 -            |  0  0  0 |<br/>
280.2240 -            |  0 -2  2 |<br/>
280.2241 -            |  0 -1  1 |<br/>
280.2242 -        <br/>
280.2243 -        FACTOR<sub>y</sub>=2/(3*dy)<br/>
280.2244 -        K<sub>y</sub> =  <br/>
280.2245 -            |  0  0  0 |<br/>
280.2246 -            |  0 -2 -1 |<br/>
280.2247 -            |  0  2  1 |</p>
280.2248 -      </td><td><p>Top row:</p>
280.2249 -
280.2250 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/>
280.2251 -        K<sub>x</sub> =<br/>
280.2252 -            |  0  0  0 |<br/>
280.2253 -            | -2  0  2 |<br/>
280.2254 -            | -1  0  1 |<br/>
280.2255 -        <br/>
280.2256 -        FACTOR<sub>y</sub>=1/(2*dy)<br/>
280.2257 -        K<sub>y</sub> =  <br/>
280.2258 -            |  0  0  0 |<br/>
280.2259 -            | -1 -2 -1 |<br/>
280.2260 -            |  1  2  1 |</p>
280.2261 -      </td><td><p>Top/right corner:</p>
280.2262 -
280.2263 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
280.2264 -        K<sub>x</sub> =<br/>
280.2265 -            |  0  0  0 |<br/>
280.2266 -            | -2  2  0 |<br/>
280.2267 -            | -1  1  0 |<br/>
280.2268 -        <br/>
280.2269 -        FACTOR<sub>y</sub>=2/(3*dy)<br/>
280.2270 -        K<sub>y</sub> =  <br/>
280.2271 -            |  0  0  0 |<br/>
280.2272 -            | -1 -2  0 |<br/>
280.2273 -            |  1  2  0 |</p>
280.2274 -      </td></tr><tr><td><p>Left column:</p>
280.2275 -
280.2276 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/>
280.2277 -        K<sub>x</sub> =<br/>
280.2278 -            | 0 -1  1 |<br/>
280.2279 -            | 0 -2  2 |<br/>
280.2280 -            | 0 -1  1 |<br/>
280.2281 -        <br/>
280.2282 -        FACTOR<sub>y</sub>=1/(3*dy)<br/>
280.2283 -        K<sub>y</sub> =  <br/>
280.2284 -            |  0 -2 -1 |<br/>
280.2285 -            |  0  0  0 |<br/>
280.2286 -            |  0  2  1 |</p>
280.2287 -      </td><td><p>Interior pixels:</p>
280.2288 -
280.2289 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br/>
280.2290 -        K<sub>x</sub> =<br/>
280.2291 -            | -1  0  1 |<br/>
280.2292 -            | -2  0  2 |<br/>
280.2293 -            | -1  0  1 |<br/>
280.2294 -        <br/>
280.2295 -        FACTOR<sub>y</sub>=1/(4*dy)<br/>
280.2296 -        K<sub>y</sub> =  <br/>
280.2297 -            | -1 -2 -1 |<br/>
280.2298 -            |  0  0  0 |<br/>
280.2299 -            |  1  2  1 |</p>
280.2300 -      </td><td><p>Right column:</p>
280.2301 -
280.2302 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/>
280.2303 -        K<sub>x</sub> =<br/>
280.2304 -            | -1  1  0|<br/>
280.2305 -            | -2  2  0|<br/>
280.2306 -            | -1  1  0|<br/>
280.2307 -        <br/>
280.2308 -        FACTOR<sub>y</sub>=1/(3*dy)<br/>
280.2309 -        K<sub>y</sub> =  <br/>
280.2310 -            | -1 -2  0 |<br/>
280.2311 -            |  0  0  0 |<br/>
280.2312 -            |  1  2  0 |</p>
280.2313 -      </td></tr><tr><td><p>Bottom/left corner:</p>
280.2314 -
280.2315 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
280.2316 -        K<sub>x</sub> =<br/>
280.2317 -            | 0 -1  1 |<br/>
280.2318 -            | 0 -2  2 |<br/>
280.2319 -            | 0  0  0 |<br/>
280.2320 -        <br/>
280.2321 -        FACTOR<sub>y</sub>=2/(3*dy)<br/>
280.2322 -        K<sub>y</sub> =  <br/>
280.2323 -            |  0 -2 -1 |<br/>
280.2324 -            |  0  2  1 |<br/>
280.2325 -            |  0  0  0 |</p>
280.2326 -      </td><td><p>Bottom row:</p>
280.2327 -
280.2328 -        <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/>
280.2329 -        K<sub>x</sub> =<br/>
280.2330 -            | -1  0  1 |<br/>
280.2331 -            | -2  0  2 |<br/>
280.2332 -            |  0  0  0 |<br/>
280.2333 -        <br/>
280.2334 -        FACTOR<sub>y</sub>=1/(2*dy)<br/>
280.2335 -        K<sub>y</sub> =  <br/>
280.2336 -            | -1 -2 -1 |<br/>
280.2337 -            |  1  2  1 |<br/>
280.2338 -            |  0  0  0 |</p>
280.2339 -      </td><td><p>Bottom/right corner:</p>
280.2340 -
280.2341 -        <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/>
280.2342 -        K<sub>x</sub> =<br/>
280.2343 -            | -1  1  0 |<br/>
280.2344 -            | -2  2  0 |<br/>
280.2345 -            |  0  0  0 |<br/>
280.2346 -        <br/>
280.2347 -        FACTOR<sub>y</sub>=2/(3*dy)<br/>
280.2348 -        K<sub>y</sub> =  <br/>
280.2349 -            | -1 -2  0 |<br/>
280.2350 -            |  1  2  0 |<br/>
280.2351 -            |  0  0  0 |</p>
280.2352 -      </td></tr></tbody></table>
280.2353 -
280.2354 -<p>L, the unit vector from the image sample to the light, is calculated as
280.2355 -follows:</p>
280.2356 -
280.2357 -<p>For Infinite light sources it is constant:</p>
280.2358 -
280.2359 -<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br/>
280.2360 -L<sub>y</sub> = sin(azimuth)*cos(elevation)<br/>
280.2361 -L<sub>z</sub> = sin(elevation)</p>
280.2362 -
280.2363 -<p>For Point and spot lights it is a function of position:</p>
280.2364 -
280.2365 -<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br/>
280.2366 -L<sub>y</sub> = Light<sub>y</sub> - y<br/>
280.2367 -L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br/>
280.2368 -<br/>
280.2369 -L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>,
280.2370 -L<sub>y</sub>, L<sub>z</sub>)</p>
280.2371 -
280.2372 -<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the
280.2373 -input light position.</p>
280.2374 -
280.2375 -<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a
280.2376 -function of position in the spot light case only:</p>
280.2377 -
280.2378 -<p class="filterformula">L<sub>r</sub> =
280.2379 -Light<sub>r</sub>*pow((-L.S),specularExponent)<br/>
280.2380 -L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br/>
280.2381 -L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p>
280.2382 -
280.2383 -<p>where S is the unit vector pointing from the light to the point
280.2384 -(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p>
280.2385 -
280.2386 -<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br/>
280.2387 -S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br/>
280.2388 -S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br/>
280.2389 -<br/>
280.2390 -S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>,
280.2391 -S<sub>y</sub>, S<sub>z</sub>)</p>
280.2392 -
280.2393 -<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> =
280.2394 -L<sub>b</sub> = 0). If <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> is specified, -L.S &lt; cos(limitingConeAngle) also indicates that no light is present.</p>
280.2395 -
280.2396 -<div class="adef-list">
280.2397 -<p><em>Attribute definitions:</em></p>
280.2398 -<dl><dt id="feDiffuseLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/>
280.2399 -      If the attribute is not specified, then the effect is as if a value of
280.2400 -      <span class="attr-value">1</span> were specified.<br/>
280.2401 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingDiffuseConstantAttribute"><span class="adef">diffuseConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>kd in Phong lighting model. In SVG, this can be any non-negative
280.2402 -      number.<br/>
280.2403 -      If the attribute is not specified, then the effect is as if a value of
280.2404 -      <span class="attr-value">1</span> were specified.<br/>
280.2405 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
280.2406 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
280.2407 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
280.2408 -      current filter units (i.e., units as determined by the value of
280.2409 -      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and
280.2410 -      <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation
280.2411 -      formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined
280.2412 -      in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the
280.2413 -      <code>dx</code> and <code>dy</code> values should represent very small
280.2414 -      deltas relative to a given <code>(x,y)</code> position, which might be
280.2415 -      implemented in some cases as one pixel in the intermediate image
280.2416 -      offscreen bitmap, which is a pixel-based coordinate system, and thus
280.2417 -      potentially not scalable. For some level of consistency across display
280.2418 -      media and user agents, it is necessary that a value be provided for at
280.2419 -      least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate
280.2420 -      images are in the <a href="#Introduction">Introduction</a> and in the
280.2421 -      description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.<br/>
280.2422 -      If a negative or zero value is specified the default value will be used
280.2423 -      instead. <br/>
280.2424 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2425 -</div>
280.2426 -
280.2427 -<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 
280.2428 -<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>. The light color is specified
280.2429 -by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p>
280.2430 -
280.2431 -<h2 id="feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></h2>
280.2432 -
280.2433 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDisplacementMap’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2434 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a></li><li><a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a></li><li><a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a></li></ul></dd></dl></div>
280.2435 -
280.2436 -<p>This filter primitive uses the pixels values from the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>
280.2437 -to spatially displace the image from <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>.
280.2438 -This is the transformation to be performed:</p>
280.2439 -
280.2440 -<pre>	P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5))
280.2441 -	</pre>
280.2442 -
280.2443 -<p>where P(x,y) is the input image, <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>, and
280.2444 -P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of
280.2445 -the channel designated by the <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> and
280.2446 -<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a>. For example, to use the R component of <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>
280.2447 -to control displacement in x and the G component of Image2 to control
280.2448 -displacement in y, set <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> to <span class="attr-value">"R"</span> and
280.2449 -<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> to <span class="attr-value">"G"</span>.</p>
280.2450 -
280.2451 -<p>The displacement map, <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>, defines the inverse of the mapping
280.2452 -performed.</p>
280.2453 -
280.2454 -<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> are performed using non-premultiplied color values. If the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p>
280.2455 -
280.2456 -<p>This filter can have arbitrary non-localized effect on the input which
280.2457 -might require substantial buffering in the processing pipeline. However with
280.2458 -this formulation, any intermediate buffering needs can be determined by
280.2459 -<a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> which represents the maximum range of displacement in either x
280.2460 -or y.</p>
280.2461 -
280.2462 -<p>When applying this filter, the source pixel location will often lie
280.2463 -between several source pixels. In this case it is recommended that high
280.2464 -quality viewers apply an interpolent on the surrounding pixels, for example
280.2465 -bilinear or bicubic, rather than simply selecting the nearest source pixel.
280.2466 -Depending on the speed of the available interpolents, this choice may be
280.2467 -affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property
280.2468 -setting.</p>
280.2469 -
280.2470 -<p>The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property only applies to the 
280.2471 -  <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> source image and does not apply to the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image.
280.2472 -  The <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image must remain in its current color space.
280.2473 -</p>
280.2474 -
280.2475 -<div class="adef-list">
280.2476 -<p><em>Attribute definitions:</em></p>
280.2477 -<dl><dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span>
280.2478 -  = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Displacement scale factor. The amount is expressed in the coordinate
280.2479 -      system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.2480 -      element.<br/>
280.2481 -      When the value of this attribute is <span class="attr-value">0</span>,
280.2482 -      this operation has no effect on the source image.<br/>
280.2483 -      <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> is <span class="attr-value">0</span>.</p>
280.2484 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapXChannelSelectorAttribute"><span class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the x-axis.
280.2485 -    The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'xChannelSelector'</a> is <span class="attr-value">A</span>.
280.2486 -    <br/>
280.2487 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapYChannelSelectorAttribute"><span class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the y-axis.
280.2488 -    The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'yChannelSelector'</a> is <span class="attr-value">A</span>.
280.2489 -    <br/>
280.2490 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> =
280.2491 -  "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute)</em>"</dt><dd>The second input image, which is used to displace the pixels in the
280.2492 -      image from attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. This attribute can take on the same
280.2493 -      values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.<br/>
280.2494 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2495 -</div>
280.2496 -
280.2497 -<h2 id="feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></h2>
280.2498 -
280.2499 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFlood’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2500 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a></li></ul></dd></dl></div>
280.2501 -
280.2502 -<p>This filter primitive creates a rectangle filled with the color and
280.2503 -opacity values from properties <span class="prop-name">‘flood-color’</span>
280.2504 -and <span class="prop-name">‘flood-opacity’</span>. The rectangle is as large
280.2505 -as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>
280.2506 -established by the <span class="element-name">‘feFlood’</span> element.</p>
280.2507 -
280.2508 -<div class="adef-list">
280.2509 -  </div>
280.2510 -
280.2511 -<p>The <span class="prop-name">‘flood-color’</span> property indicates what
280.2512 -color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter
280.2513 -primitive subregion</a>. The keyword <span class="attr-value">currentColor</span> and ICC colors can be specified in the
280.2514 -same manner as within a &lt;paint&gt; specification for the <span class="prop-name">‘fill’</span> and <span class="prop-name">‘stroke’</span>
280.2515 -properties.</p>
280.2516 -
280.2517 -<div class="propdef">
280.2518 -<dl><dt id="FloodColorProperty"><span class="propdef-title prop-name">‘flood-color’</span></dt><dd>
280.2519 -      <table summary="flood-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/>
280.2520 -              <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor">&lt;color&gt;</a>
280.2521 -              [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor">&lt;icccolor&gt;</a>] |<br/>
280.2522 -              <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>black</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
280.2523 -    </dd></dl>
280.2524 -</div>
280.2525 -
280.2526 -<p>The <span class="prop-name">‘flood-opacity’</span> property defines the
280.2527 -opacity value to use across the entire <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p>
280.2528 -
280.2529 -<div class="propdef">
280.2530 -<dl><dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">‘flood-opacity’</span></dt><dd>
280.2531 -      <table summary="flood-opacity property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>&lt;opacity-value&gt; | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>1</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table>
280.2532 -    </dd></dl>
280.2533 -</div>
280.2534 -
280.2535 -<h2 id="feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2>
280.2536 -
280.2537 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feGaussianBlur’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2538 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a></li></ul></dd></dl></div>
280.2539 -
280.2540 -<p>This filter primitive performs a Gaussian blur on the input image.</p>
280.2541 -
280.2542 -<p>The Gaussian blur kernel is an approximation of the normalized
280.2543 -convolution:</p>
280.2544 -
280.2545 -<p class="filterformula">G(x,y) = H(x)I(y)</p>
280.2546 -<p>where 
280.2547 -<span>H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span>
280.2548 -</p>
280.2549 -<p>and</p> 
280.2550 -<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p>
280.2551 -<p>with 's' being the standard deviation in the x direction
280.2552 -and 't' being the standard deviation in the y direction, as specified by <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>.</p>
280.2553 -
280.2554 -<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a> can be either one or two numbers.
280.2555 -If two numbers are provided, the first number represents a standard deviation
280.2556 -value along the x-axis of the current coordinate system and the second value
280.2557 -represents a standard deviation in Y. If one number is provided, then that
280.2558 -value is used for both X and Y.</p>
280.2559 -
280.2560 -<p>Even if only one value is provided for <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>, this can be implemented as a
280.2561 -separable convolution.</p>
280.2562 -
280.2563 -<p>For larger values of 's' (s &gt;= 2.0), an approximation can be used:
280.2564 -Three successive box-blurs build a piece-wise quadratic convolution kernel,
280.2565 -which approximates the Gaussian kernel to within roughly 3%.</p>
280.2566 -
280.2567 -<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p>
280.2568 -
280.2569 -<p>... if d is odd, use three box-blurs of size 'd', centered on the output
280.2570 -pixel.</p>
280.2571 -
280.2572 -<p>... if d is even, two box-blurs of size 'd' (the first one centered on the
280.2573 -pixel boundary between the output pixel and the one to the left, the second
280.2574 -one centered on the pixel boundary between the output pixel and the one to
280.2575 -the right) and one box blur of size 'd+1' centered on the output pixel.</p>
280.2576 -
280.2577 -<p>Frequently this operation will take place on alpha-only images, such as
280.2578 -that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. The implementation may notice this
280.2579 -and optimize the single channel case. If the input has infinite extent and is
280.2580 -constant, this operation has no effect. If the input has infinite extent and
280.2581 -is a tile, the filter is evaluated with periodic boundary conditions.</p>
280.2582 -
280.2583 -<div class="adef-list">
280.2584 -<p><em>Attribute definitions:</em></p>
280.2585 -<dl><dt id="feGaussianBlurStdDeviationAttribute"><span class="adef">stdDeviation</span> =
280.2586 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>The standard deviation for the blur operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
280.2587 -      s are provided, the first number represents a standard deviation value
280.2588 -      along the x-axis of the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.2589 -      element. The second value represents a standard deviation in Y. If one
280.2590 -      number is provided, then that value is used for both X and Y.<br/>
280.2591 -      A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br/>
280.2592 -      If the attribute is not specified, then the effect is as if a value of
280.2593 -      <span class="attr-value">0</span> were specified.<br/>
280.2594 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2595 -</div>
280.2596 -
280.2597 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
280.2598 -use of the <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive
280.2599 -to create a drop shadow effect.</p>
280.2600 -
280.2601 -<h2 id="feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></h2>
280.2602 -
280.2603 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feUnsharpMask’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2604 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a></li><li><a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a></li><li><a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEUnsharpMaskElement">SVGFEUnsharpMaskElement</a></li></ul></dd></dl></div>
280.2605 -
280.2606 -<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p>
280.2607 -
280.2608 -<p>The filter first does a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p>
280.2609 -
280.2610 -<p>
280.2611 -For controlling the result there are three attributes that can be used:
280.2612 -  <ul><li>the <a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute controls how much to blur the input image</li><li>the <a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a> attribute can be used for controlling when the difference should not be subtracted</li><li>the <a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a> attribute specifies an optional multiplier for the difference to subtract</li></ul> 
280.2613 -</p>
280.2614 -
280.2615 -<h2 id="feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></h2>
280.2616 -
280.2617 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feImage’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2618 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateTransformElement"><span class="element-name">‘animateTransform’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a></li><li><a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a></li></ul></dd></dl></div>
280.2619 -
280.2620 -<p>This filter primitive refers to a graphic external to this filter element,
280.2621 -which is loaded or rendered into an RGBA raster and becomes the result of the
280.2622 -filter primitive.</p>
280.2623 -
280.2624 -<p>This filter primitive can refer to an external image or can be a reference
280.2625 -to another piece of SVG. It produces an image similar to the built-in image
280.2626 -source <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that the graphic comes
280.2627 -from an external source.</p>
280.2628 -
280.2629 -<p>If the <span class="attr-name">xlink:href</span> references a stand-alone
280.2630 -image resource such as a JPEG, PNG or SVG file, then the image resource is
280.2631 -rendered according to the behavior of the <span class="element-name">‘image’</span> element; otherwise, the referenced
280.2632 -resource is rendered according to the behavior of the <span class="element-name">‘use’</span> element. In either case, the current user
280.2633 -coordinate system depends on the value of attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.2634 -The processing of the <span class="attr-name">preserveAspectRatio</span>
280.2635 -attribute on the <span class="element-name">‘feImage’</span> element is
280.2636 -identical to that of the <a href="struct.html#ImageElement"><span class="element-name">‘image’</span></a> element.</p>
280.2637 -
280.2638 -<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate
280.2639 -system, it is recommended that high quality viewers make use of appropriate
280.2640 -interpolation techniques, for example bilinear or bicubic.</span> Depending on the
280.2641 -speed of the available interpolents, this choice may be affected by the <span class="prop-name">‘image-rendering’</span> property setting.</p>
280.2642 -
280.2643 -<div class="adef-list">
280.2644 -<p><em>Attribute definitions:</em></p>
280.2645 -<dl><dt id="feImageHrefAttribute"><span class="adef">xlink:href</span> =
280.2646 -  "<span class="attr-value">&lt;IRI&gt;</span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a>
280.2647 -      to an image resource or to an element.
280.2648 -      <br/>
280.2649 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2650 -</div>
280.2651 -
280.2652 -<h2 id="feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></h2>
280.2653 -
280.2654 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMerge’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2655 -                <ul class="no-bullets"><li><a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a></li></ul></dd></dl></div>
280.2656 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMergeNode’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2657 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a></li></ul></dd></dl></div>
280.2658 -
280.2659 -<p>This filter primitive composites input image layers on top of each other
280.2660 -using the <em>over</em> operator with <em>Input1</em> (corresponding to the
280.2661 -first <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element) on the bottom
280.2662 -and the last specified input, <em>InputN</em> (corresponding to the last <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element), on top.</p>
280.2663 -
280.2664 -<p>Many effects produce a number of intermediate layers in order to create
280.2665 -the final output image. This filter allows us to collapse those into a single
280.2666 -image. Although this could be done by using n-1 Composite-filters, it is more
280.2667 -convenient to have this common operation available in this form, and offers
280.2668 -the implementation some additional flexibility.</p>
280.2669 -
280.2670 -<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements,
280.2671 -each of which has an <a href="#CommonAttributes"><span class="attr-name">in</span></a> attribute.</p>
280.2672 -
280.2673 -<p>The canonical implementation of feMerge is to render the entire effect
280.2674 -into one RGBA layer, and then render the resulting layer on the output
280.2675 -device. In certain cases (in particular if the output device itself is a
280.2676 -continuous tone device), and since merging is associative, it might be a
280.2677 -sufficient approximation to evaluate the effect one layer at a time and
280.2678 -render each layer individually onto the output device bottom to top.</p>
280.2679 -
280.2680 -<p>If the topmost image input is <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> and this <span class="element-name">‘feMerge’</span> is the last filter primitive in the
280.2681 -filter, the implementation is encouraged to render the layers up to that
280.2682 -point, and then render the <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> directly from its vector
280.2683 -description on top.</p>
280.2684 -
280.2685 -<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes
280.2686 -use of the <span class="element-name">feMerge</span> filter primitive to
280.2687 -composite two intermediate filter results together.</p>
280.2688 -
280.2689 -<h2 id="feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></h2>
280.2690 -
280.2691 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMorphology’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2692 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a></li></ul></dd></dl></div>
280.2693 -
280.2694 -<p>This filter primitive performs "fattening" or "thinning" of artwork. It is
280.2695 -particularly useful for fattening or thinning an alpha channel.</p>
280.2696 -
280.2697 -<p>The dilation (or erosion) kernel is a rectangle with a width of
280.2698 -2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the
280.2699 -output pixel is the individual component-wise maximum of the corresponding
280.2700 -R,G,B,A values in the input image's kernel rectangle. In erosion, the output
280.2701 -pixel is the individual component-wise minimum of the corresponding R,G,B,A
280.2702 -values in the input image's kernel rectangle.</p>
280.2703 -
280.2704 -<p>Frequently this operation will take place on alpha-only images, such as
280.2705 -that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. In that case, the implementation
280.2706 -might want to optimize the single channel case.</p>
280.2707 -
280.2708 -<p>If the input has infinite extent and is constant, this operation has no
280.2709 -effect. If the input has infinite extent and is a tile, the filter is
280.2710 -evaluated with periodic boundary conditions.</p>
280.2711 -
280.2712 -<p>Because <span class="element-name">‘feMorphology’</span> operates on
280.2713 -premultipied color values, it will always result in color values less than or
280.2714 -equal to the alpha channel.</p>
280.2715 -
280.2716 -<div class="adef-list">
280.2717 -<p><em>Attribute definitions:</em></p>
280.2718 -<dl><dt id="feMorphologyOperatorAttribute"><span class="adef">operator</span> = "<em>erode | dilate</em>"</dt><dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten)
280.2719 -      the source graphic.<br/>
280.2720 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> =
280.2721 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>The radius (or radii) for the operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>
280.2722 -      s are provided, the first number represents a x-radius and the second
280.2723 -      value represents a y-radius. If one number is provided, then that value
280.2724 -      is used for both X and Y. The values are in the coordinate system
280.2725 -      established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.2726 -      element.<br/>
280.2727 -      A negative or zero value disables the effect of the given filter
280.2728 -      primitive (i.e., the result is a transparent black image).<br/>
280.2729 -      If the attribute is not specified, then the effect is as if a value of
280.2730 -      <span class="attr-value">0</span> were specified.<br/>
280.2731 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2732 -</div>
280.2733 -
280.2734 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.2735 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.2736 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.2737 -&lt;svg width="5cm" height="7cm" viewBox="0 0 700 500"
280.2738 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
280.2739 -  &lt;title&gt;Example feMorphology - Examples of erode and dilate&lt;/title&gt;
280.2740 -  &lt;desc&gt;Five text strings drawn as outlines.
280.2741 -        The first is unfiltered. The second and third use 'erode'.
280.2742 -        The fourth and fifth use 'dilate'.&lt;/desc&gt;
280.2743 -  &lt;defs&gt;
280.2744 -    &lt;filter id="Erode3"&gt;
280.2745 -      &lt;feMorphology operator="erode" in="SourceGraphic" radius="3" /&gt;
280.2746 -    &lt;/filter&gt;
280.2747 -    &lt;filter id="Erode6"&gt;
280.2748 -      &lt;feMorphology operator="erode" in="SourceGraphic" radius="6" /&gt;
280.2749 -    &lt;/filter&gt;
280.2750 -    &lt;filter id="Dilate3"&gt;
280.2751 -      &lt;feMorphology operator="dilate" in="SourceGraphic" radius="3" /&gt;
280.2752 -    &lt;/filter&gt;
280.2753 -    &lt;filter id="Dilate6"&gt;
280.2754 -      &lt;feMorphology operator="dilate" in="SourceGraphic" radius="6" /&gt;
280.2755 -    &lt;/filter&gt;
280.2756 -  &lt;/defs&gt;
280.2757 -  &lt;rect fill="none" stroke="blue" stroke-width="2"  
280.2758 -        x="1" y="1" width="698" height="498"/&gt;
280.2759 -  &lt;g enable-background="new" &gt;
280.2760 -    &lt;g font-family="Verdana" font-size="75" 
280.2761 -              fill="none" stroke="black" stroke-width="6" &gt;
280.2762 -      &lt;text x="50" y="90"&gt;Unfiltered&lt;/text&gt;
280.2763 -      &lt;text x="50" y="180" filter="url(#Erode3)" &gt;Erode radius 3&lt;/text&gt;
280.2764 -      &lt;text x="50" y="270" filter="url(#Erode6)" &gt;Erode radius 6&lt;/text&gt;
280.2765 -      &lt;text x="50" y="360" filter="url(#Dilate3)" &gt;Dilate radius 3&lt;/text&gt;
280.2766 -      &lt;text x="50" y="450" filter="url(#Dilate6)" &gt;Dilate radius 6&lt;/text&gt;
280.2767 -    &lt;/g&gt;
280.2768 -  &lt;/g&gt;
280.2769 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feMorphology.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feMorphology.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.2770 -
280.2771 -<h2 id="feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></h2>
280.2772 -
280.2773 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feOffset’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2774 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a></li></ul></dd></dl></div>
280.2775 -
280.2776 -<p>This filter primitive offsets the input image relative to its current
280.2777 -position in the image space by the specified vector.</p>
280.2778 -
280.2779 -<p>This is important for effects like drop shadows.</p>
280.2780 -
280.2781 -<p>When applying this filter, the destination location may be offset by a
280.2782 -fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer
280.2783 -should make use of appropriate interpolation techniques, for example bilinear
280.2784 -or bicubic.</span> This is especially recommended for dynamic viewers where this
280.2785 -interpolation provides visually smoother movement of images. For static
280.2786 -viewers this is less of a concern. Close attention should be made to the
280.2787 -<span class="prop-name">‘image-rendering’</span> property setting to
280.2788 -determine the authors intent.</p>
280.2789 -
280.2790 -<div class="adef-list">
280.2791 -<p><em>Attribute definitions:</em></p>
280.2792 -<dl><dt id="feOffsetDxAttribute"><span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>The amount to offset the input graphic along the x-axis. The offset
280.2793 -      amount is expressed in the coordinate system established by attribute
280.2794 -      <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.2795 -      element.<br/>
280.2796 -      If the attribute is not specified, then the effect is as if a value of
280.2797 -      <span class="attr-value">0</span> were specified.<br/>
280.2798 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feOffsetDyAttribute"><span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>The amount to offset the input graphic along the y-axis. The offset
280.2799 -      amount is expressed in the coordinate system established by attribute
280.2800 -      <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.2801 -      element.<br/>
280.2802 -      If the attribute is not specified, then the effect is as if a value of
280.2803 -      <span class="attr-value">0</span> were specified.<br/>
280.2804 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2805 -</div>
280.2806 -
280.2807 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
280.2808 -use of the <span class="element-name">feOffset</span> filter primitive to
280.2809 -offset the drop shadow from the original source graphic.</p>
280.2810 -
280.2811 -<h2 id="feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></h2>
280.2812 -
280.2813 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpecularLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2814 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a></li><li><a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a></li></ul></dd></dl></div>
280.2815 -
280.2816 -<p>This filter primitive lights a source graphic using the alpha channel as a
280.2817 -bump map. The resulting image is an RGBA image based on the light color. The
280.2818 -lighting calculation follows the standard specular component of the Phong
280.2819 -lighting model. The resulting image depends on the light color, light
280.2820 -position and surface geometry of the input bump map. The result of the
280.2821 -lighting calculation is added. The filter primitive assumes that the viewer
280.2822 -is at infinity in the z direction (i.e., the unit vector in the eye direction
280.2823 -is (0,0,1) everywhere).</p>
280.2824 -
280.2825 -<p>This filter primitive produces an image which contains the specular
280.2826 -reflection part of the lighting calculation. Such a map is intended to be
280.2827 -combined with a texture using the <em>add</em> term of the
280.2828 -<em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> method. Multiple light sources
280.2829 -can be simulated by adding several of these light maps before applying it to
280.2830 -the texture image.</p>
280.2831 -
280.2832 -<p>The resulting RGBA image is computed as follows:</p>
280.2833 -
280.2834 -<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H,
280.2835 -specularExponent) * L<sub>r<br/>
280.2836 -</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
280.2837 -L<sub>g<br/>
280.2838 -</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) *
280.2839 -L<sub>b<br/>
280.2840 -</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p>
280.2841 -
280.2842 -<p>where</p>
280.2843 -<dl><dd>k<sub>s</sub> = specular lighting constant<br/>
280.2844 -      N = surface normal unit vector, a function of x and y<br/>
280.2845 -      H = "halfway" unit vector between eye unit vector and light unit
280.2846 -      vector<br/>
280.2847 -      <br/>
280.2848 -      L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd></dl>
280.2849 -
280.2850 -<p>See <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> for definition of N and
280.2851 -(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p>
280.2852 -
280.2853 -<p>The definition of H reflects our assumption of the constant eye vector E =
280.2854 -(0,0,1):</p>
280.2855 -
280.2856 -<p class="filterformula">H = (L + E) / Norm(L+E)</p>
280.2857 -
280.2858 -<p>where L is the light unit vector.</p>
280.2859 -
280.2860 -<p>Unlike the <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a>, the <span class="element-name">‘feSpecularLighting’</span> filter produces a non-opaque
280.2861 -image. This is due to the fact that the specular result
280.2862 -(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be
280.2863 -added to the textured image. The alpha channel of the result is the max of
280.2864 -the color components, so that where the specular light is zero, no additional
280.2865 -coverage is added to the image and a fully white highlight will add
280.2866 -opacity.</p>
280.2867 -
280.2868 -<p>The <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> and <span class="element-name">‘feSpecularLighting’</span> filters will often be
280.2869 -applied together. An implementation may detect this and calculate both maps
280.2870 -in one pass, instead of two.</p>
280.2871 -
280.2872 -<div class="adef-list">
280.2873 -<p><em>Attribute definitions:</em></p>
280.2874 -<dl><dt id="feSpecularLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/>
280.2875 -      If the attribute is not specified, then the effect is as if a value of
280.2876 -      <span class="attr-value">1</span> were specified.<br/>
280.2877 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularConstantAttribute"><span class="adef">specularConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>ks in Phong lighting model. In SVG, this can be any non-negative
280.2878 -      number.<br/>
280.2879 -      If the attribute is not specified, then the effect is as if a value of
280.2880 -      <span class="attr-value">1</span> were specified.<br/>
280.2881 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>Exponent for specular term, larger is more "shiny". Range 1.0 to
280.2882 -      128.0.<br/>
280.2883 -      If the attribute is not specified, then the effect is as if a value of
280.2884 -      <span class="attr-value">1</span> were specified.<br/>
280.2885 -      <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></span>"</dt><dd>The first number is the &lt;dx&gt; value. The second number is the
280.2886 -      &lt;dy&gt; value. If the &lt;dy&gt; value is not specified, it defaults
280.2887 -      to the same value as &lt;dx&gt;. Indicates the intended distance in
280.2888 -      current filter units (i.e., units as determined by the value of
280.2889 -      attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and
280.2890 -      <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation
280.2891 -      formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined
280.2892 -      in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the
280.2893 -      <code>dx</code> and <code>dy</code> values should represent very small
280.2894 -      deltas relative to a given <code>(x,y)</code> position, which might be
280.2895 -      implemented in some cases as one pixel in the intermediate image
280.2896 -      offscreen bitmap, which is a pixel-based coordinate system, and thus
280.2897 -      potentially not scalable. For some level of consistency across display
280.2898 -      media and user agents, it is necessary that a value be provided for at
280.2899 -      least one of <span class="attr-name">filterRes</span> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate
280.2900 -      images are in the <a href="#Introduction">Introduction</a> and in the
280.2901 -      description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">filterRes</span></a>.<br/>
280.2902 -      If a negative or zero value is specified the default value will be used
280.2903 -      instead. <br/>
280.2904 -      <span class="anim-target">Animatable: yes.</span></dd></dl>
280.2905 -</div>
280.2906 -
280.2907 -<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>. The light color is
280.2908 -specified by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p>
280.2909 -
280.2910 -<p><a href="#AnExample">The example</a> at the start of this chapter makes
280.2911 -use of the <span class="element-name">feSpecularLighting</span> filter
280.2912 -primitive to achieve a highly reflective, 3D glowing effect.</p>
280.2913 -
280.2914 -<h2 id="feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></h2>
280.2915 -
280.2916 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feTile’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.2917 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a></li></ul></dd></dl></div>
280.2918 -
280.2919 -<p>This filter primitive fills a target rectangle with a repeated, tiled
280.2920 -pattern of an input image. 
280.2921 -The target rectangle is as large as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established
280.2922 -by the <span class="element-name">‘feTile’</span> element.
280.2923 -</p>
280.2924 -
280.2925 -<p>Typically, the input image has been defined with its own <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to
280.2926 -define a reference tile. <span class="element-name">‘feTile’</span>
280.2927 -replicates the reference tile in both X and Y to completely fill the target
280.2928 -rectangle. The top/left corner of each given tile is at location
280.2929 -<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the
280.2930 -top/left of the input image's filter primitive subregion, <code>width</code>
280.2931 -and <code>height</code> represent the width and height of the input image's
280.2932 -filter primitive subregion, and <code>i</code> and <code>j</code> can be any
280.2933 -integer value. In most cases, the input image will have a smaller filter
280.2934 -primitive subregion than the <span class="element-name">‘feTile’</span> in
280.2935 -order to achieve a repeated pattern effect.</p>
280.2936 -
280.2937 -<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled
280.2938 -image to avoid artifacts between tiles, particularly in situations where the
280.2939 -user to device transform includes shear and/or rotation. Unless care is
280.2940 -taken, interpolation can lead to edge pixels in the tile having opacity
280.2941 -values lower or higher than expected due to the interaction of painting
280.2942 -adjacent tiles which each have partial overlap with particular pixels.</p>
280.2943 -
280.2944 -<div class="adef-list">
280.2945 -  </div>
280.2946 -
280.2947 -<h2 id="feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></h2>
280.2948 -
280.2949 -
280.2950 -
280.2951 -<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p>
280.2952 -
280.2953 -<p>This filter primitive creates an image using the Perlin turbulence
280.2954 -function. It allows the synthesis of artificial textures like clouds or
280.2955 -marble. For a detailed description the of the Perlin turbulence function, see
280.2956 -"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting
280.2957 -image will fill the entire <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> for this filter primitive.</p>
280.2958 -
280.2959 -<p>It is possible to create bandwidth-limited noise by synthesizing only one
280.2960 -octave.</p>
280.2961 -
280.2962 -<p>The C code below shows the exact algorithm used for this filter effect.</p>
280.2963 -
280.2964 -<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of
280.2965 --1 to 1 (the actual result might exceed this range in some cases). To convert
280.2966 -to a color value, use the formula <code>colorValue = ((turbFunctionResult *
280.2967 -255) + 255) / 2</code>, then clamp to the range 0 to 255.</p>
280.2968 -
280.2969 -<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0
280.2970 -to 1 (the actual result might exceed this range in some cases). To convert to
280.2971 -a color value, use the formula <code>colorValue = (turbFunctionResult *
280.2972 -255)</code>, then clamp to the range 0 to 255.</p>
280.2973 -
280.2974 -<p>The following order is used for applying the pseudo random numbers. An
280.2975 -initial seed value is computed based on the <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> attribute. 
280.2976 -Then the implementation computes the lattice
280.2977 -points for R, then continues getting additional pseudo random numbers
280.2978 -relative to the last generated pseudo random number and computes the lattice
280.2979 -points for G, and so on for B and A.</p>
280.2980 -
280.2981 -<p>The generated color and alpha values are in the color space determined by
280.2982 -the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property:</p>
280.2983 -<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2].
280.2984 -Algorithm is: r = (a * r) mod m
280.2985 -where a = 16807 and m = 2**31 - 1 = 2147483647
280.2986 -See [Park &amp; Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988
280.2987 -To test: the algorithm should produce the result 1043618065
280.2988 -as the 10,000th generated number if the original seed is 1.
280.2989 -*/
280.2990 -#define RAND_m 2147483647 /* 2**31 - 1 */
280.2991 -#define RAND_a 16807 /* 7**5; primitive root of m */
280.2992 -#define RAND_q 127773 /* m / a */
280.2993 -#define RAND_r 2836 /* m % a */
280.2994 -long setup_seed(long lSeed)
280.2995 -{
280.2996 -  if (lSeed &lt;= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1;
280.2997 -  if (lSeed &gt; RAND_m - 1) lSeed = RAND_m - 1;
280.2998 -  return lSeed;
280.2999 -}
280.3000 -long random(long lSeed)
280.3001 -{
280.3002 -  long result;
280.3003 -  result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q);
280.3004 -  if (result &lt;= 0) result += RAND_m;
280.3005 -  return result;
280.3006 -}
280.3007 -#define BSize 0x100
280.3008 -#define BM 0xff
280.3009 -#define PerlinN 0x1000
280.3010 -#define NP 12 /* 2^PerlinN */
280.3011 -#define NM 0xfff
280.3012 -static uLatticeSelector[BSize + BSize + 2];
280.3013 -static double fGradient[4][BSize + BSize + 2][2];
280.3014 -struct StitchInfo
280.3015 -{
280.3016 -  int nWidth; // How much to subtract to wrap for stitching.
280.3017 -  int nHeight;
280.3018 -  int nWrapX; // Minimum value to wrap.
280.3019 -  int nWrapY;
280.3020 -};
280.3021 -static void init(long lSeed)
280.3022 -{
280.3023 -  double s;
280.3024 -  int i, j, k;
280.3025 -  lSeed = setup_seed(lSeed);
280.3026 -  for(k = 0; k &lt; 4; k++)
280.3027 -  {
280.3028 -    for(i = 0; i &lt; BSize; i++)
280.3029 -    {
280.3030 -      uLatticeSelector[i] = i;
280.3031 -      for (j = 0; j &lt; 2; j++)
280.3032 -        fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize;
280.3033 -      s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1]));
280.3034 -      fGradient[k][i][0] /= s;
280.3035 -      fGradient[k][i][1] /= s;
280.3036 -    }
280.3037 -  }
280.3038 -  while(--i)
280.3039 -  {
280.3040 -    k = uLatticeSelector[i];
280.3041 -    uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize];
280.3042 -    uLatticeSelector[j] = k;
280.3043 -  }
280.3044 -  for(i = 0; i &lt; BSize + 2; i++)
280.3045 -  {
280.3046 -    uLatticeSelector[BSize + i] = uLatticeSelector[i];
280.3047 -    for(k = 0; k &lt; 4; k++)
280.3048 -      for(j = 0; j &lt; 2; j++)
280.3049 -        fGradient[k][BSize + i][j] = fGradient[k][i][j];
280.3050 -  }
280.3051 -}
280.3052 -#define s_curve(t) ( t * t * (3. - 2. * t) )
280.3053 -#define lerp(t, a, b) ( a + t * (b - a) )
280.3054 -double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo)
280.3055 -{
280.3056 -  int bx0, bx1, by0, by1, b00, b10, b01, b11;
280.3057 -  double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v;
280.3058 -  register i, j;
280.3059 -  t = vec[0] + PerlinN;
280.3060 -  bx0 = (int)t;
280.3061 -  bx1 = bx0+1;
280.3062 -  rx0 = t - (int)t;
280.3063 -  rx1 = rx0 - 1.0f;
280.3064 -  t = vec[1] + PerlinN;
280.3065 -  by0 = (int)t;
280.3066 -  by1 = by0+1;
280.3067 -  ry0 = t - (int)t;
280.3068 -  ry1 = ry0 - 1.0f;
280.3069 -  // If stitching, adjust lattice points accordingly.
280.3070 -  if(pStitchInfo != NULL)
280.3071 -  {
280.3072 -    if(bx0 &gt;= pStitchInfo-&gt;nWrapX)
280.3073 -      bx0 -= pStitchInfo-&gt;nWidth;
280.3074 -    if(bx1 &gt;= pStitchInfo-&gt;nWrapX)
280.3075 -      bx1 -= pStitchInfo-&gt;nWidth;
280.3076 -    if(by0 &gt;= pStitchInfo-&gt;nWrapY)
280.3077 -      by0 -= pStitchInfo-&gt;nHeight;
280.3078 -    if(by1 &gt;= pStitchInfo-&gt;nWrapY)
280.3079 -      by1 -= pStitchInfo-&gt;nHeight;
280.3080 -  }
280.3081 -  bx0 &amp;= BM;
280.3082 -  bx1 &amp;= BM;
280.3083 -  by0 &amp;= BM;
280.3084 -  by1 &amp;= BM;
280.3085 -  i = uLatticeSelector[bx0];
280.3086 -  j = uLatticeSelector[bx1];
280.3087 -  b00 = uLatticeSelector[i + by0];
280.3088 -  b10 = uLatticeSelector[j + by0];
280.3089 -  b01 = uLatticeSelector[i + by1];
280.3090 -  b11 = uLatticeSelector[j + by1];
280.3091 -  sx = double(s_curve(rx0));
280.3092 -  sy = double(s_curve(ry0));
280.3093 -  q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1];
280.3094 -  q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1];
280.3095 -  a = lerp(sx, u, v);
280.3096 -  q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1];
280.3097 -  q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1];
280.3098 -  b = lerp(sx, u, v);
280.3099 -  return lerp(sy, a, b);
280.3100 -}
280.3101 -double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY,
280.3102 -          int nNumOctaves, bool bFractalSum, bool bDoStitching,
280.3103 -          double fTileX, double fTileY, double fTileWidth, double fTileHeight)
280.3104 -{
280.3105 -  StitchInfo stitch;
280.3106 -  StitchInfo *pStitchInfo = NULL; // Not stitching when NULL.
280.3107 -  // Adjust the base frequencies if necessary for stitching.
280.3108 -  if(bDoStitching)
280.3109 -  {
280.3110 -    // When stitching tiled turbulence, the frequencies must be adjusted
280.3111 -    // so that the tile borders will be continuous.
280.3112 -    if(fBaseFreqX != 0.0)
280.3113 -    {
280.3114 -      double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth;
280.3115 -      double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth;
280.3116 -      if(fBaseFreqX / fLoFreq &lt; fHiFreq / fBaseFreqX)
280.3117 -        fBaseFreqX = fLoFreq;
280.3118 -      else
280.3119 -        fBaseFreqX = fHiFreq;
280.3120 -    }
280.3121 -    if(fBaseFreqY != 0.0)
280.3122 -    {
280.3123 -      double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight;
280.3124 -      double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight;
280.3125 -      if(fBaseFreqY / fLoFreq &lt; fHiFreq / fBaseFreqY)
280.3126 -        fBaseFreqY = fLoFreq;
280.3127 -      else
280.3128 -        fBaseFreqY = fHiFreq;
280.3129 -    }
280.3130 -    // Set up initial stitch values.
280.3131 -    pStitchInfo = &amp;stitch;
280.3132 -    stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f);
280.3133 -    stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth;
280.3134 -    stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f);
280.3135 -    stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight;
280.3136 -  }
280.3137 -  double fSum = 0.0f;
280.3138 -  double vec[2];
280.3139 -  vec[0] = point[0] * fBaseFreqX;
280.3140 -  vec[1] = point[1] * fBaseFreqY;
280.3141 -  double ratio = 1;
280.3142 -  for(int nOctave = 0; nOctave &lt; nNumOctaves; nOctave++)
280.3143 -  {
280.3144 -    if(bFractalSum)
280.3145 -      fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio);
280.3146 -    else
280.3147 -      fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio);
280.3148 -    vec[0] *= 2;
280.3149 -    vec[1] *= 2;
280.3150 -    ratio *= 2;
280.3151 -    if(pStitchInfo != NULL)
280.3152 -    {
280.3153 -      // Update stitch values. Subtracting PerlinN before the multiplication and
280.3154 -      // adding it afterward simplifies to subtracting it once.
280.3155 -      stitch.nWidth *= 2;
280.3156 -      stitch.nWrapX = 2 * stitch.nWrapX - PerlinN;
280.3157 -      stitch.nHeight *= 2;
280.3158 -      stitch.nWrapY = 2 * stitch.nWrapY - PerlinN;
280.3159 -    }
280.3160 -  }
280.3161 -  return fSum;
280.3162 -}</pre>
280.3163 -
280.3164 -<div class="adef-list">
280.3165 -<p><em>Attribute definitions:</em></p>
280.3166 -<dl><dt id="feTurbulenceBaseFrequencyAttribute"><span class="adef">baseFrequency</span> =
280.3167 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>
280.3168 -		<p>The base frequency (frequencies) parameter(s) for the noise function.
280.3169 -      If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a>s are provided, the first number represents a base frequency in the X
280.3170 -      direction and the second value represents a base frequency in the Y
280.3171 -      direction. If one number is provided, then that value is used for both
280.3172 -      X and Y.</p>
280.3173 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> is <span class="attr-value">0</span>.</p>
280.3174 -		<p>Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</p>
280.3175 -      	<p><span class="anim-target">Animatable: yes.</span></p>
280.3176 -</dd><dt id="feTurbulenceNumOctavesAttribute"><span class="adef">numOctaves</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger">&lt;integer&gt;</a></em>"</dt><dd>
280.3177 -		<p>The numOctaves parameter for the noise function.</p>
280.3178 -      	<p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> is <span class="attr-value">1</span>.</span></p>
280.3179 -		<p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</span></p>
280.3180 -      	<p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p>
280.3181 -	</dd><dt id="feTurbulenceSeedAttribute">
280.3182 -  <span class="adef">seed</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
280.3183 -		<p>The starting number for the pseudo random number generator.</p>
280.3184 -		<p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> is <span class="attr-value">0</span>.</span></p>
280.3185 -	  	<p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 
280.3186 -	  truncated, i.e. rounded to the closest integer value towards zero.</span></p>
280.3187 -      	<p><span class="anim-target">Animatable: yes.</span></p>
280.3188 -	</dd><dt id="feTurbulenceStitchTilesAttribute"><span class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt><dd>
280.3189 -	<p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt
280.3190 -      it made to achieve smooth transitions at the border of tiles which
280.3191 -      contain a turbulence function. Sometimes the result will show clear
280.3192 -      discontinuities at the tile borders.<br/>
280.3193 -      If <span class="attr-value">stitchTiles="stitch"</span>, then the user
280.3194 -      agent will automatically adjust baseFrequency-x and baseFrequency-y
280.3195 -      values such that the <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> node's width and height (i.e., the
280.3196 -      width and height of the current subregion) contains an integral number
280.3197 -      of the Perlin tile width and height for the first octave. The
280.3198 -      baseFrequency will be adjusted up or down depending on which way has
280.3199 -      the smallest relative (not absolute) change as follows: Given the
280.3200 -      frequency, calculate <code>lowFreq=floor(width*frequency)/width</code>
280.3201 -      and <code>hiFreq=ceil(width*frequency)/width</code>. If
280.3202 -      frequency/lowFreq &lt; hiFreq/frequency then use lowFreq, else use
280.3203 -      hiFreq. While generating turbulence values, generate lattice vectors as
280.3204 -      normal for Perlin Noise, except for those lattice points that lie on
280.3205 -      the right or bottom edges of the active area (the size of the resulting
280.3206 -      tile). In those cases, copy the lattice vector from the opposite edge
280.3207 -      of the active area.</p>
280.3208 -	  <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> attribute is <span class="attr-value">noStitch</span>.</span></p>
280.3209 -      <p><span class="anim-target">Animatable: yes.</span></p>
280.3210 -	</dd><dt id="feTurbulenceTypeAttribute">
280.3211 -  <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt><dd>
280.3212 -		<p>Indicates whether the filter primitive should perform a noise or
280.3213 -      turbulence function.</p>
280.3214 -		<p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> attribute is <span class="attr-value">turbulence</span>.</span></p>
280.3215 -      	<p><span class="anim-target">Animatable: yes.</span></p>
280.3216 -	</dd></dl>
280.3217 -</div>
280.3218 -
280.3219 -<pre class="xml">&lt;?xml version="1.0"?&gt;
280.3220 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
280.3221 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
280.3222 -&lt;svg width="450px" height="325px" viewBox="0 0 450 325"
280.3223 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
280.3224 -  &lt;title&gt;Example feTurbulence - Examples of feTurbulence operations&lt;/title&gt;
280.3225 -  &lt;desc&gt;Six rectangular areas showing the effects of 
280.3226 -        various parameter settings for feTurbulence.&lt;/desc&gt;
280.3227 -  &lt;g  font-family="Verdana" text-anchor="middle" font-size="10" &gt;
280.3228 -    &lt;defs&gt;
280.3229 -      &lt;filter id="Turb1" filterUnits="objectBoundingBox" 
280.3230 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3231 -        &lt;feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/&gt;
280.3232 -      &lt;/filter&gt;
280.3233 -      &lt;filter id="Turb2" filterUnits="objectBoundingBox" 
280.3234 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3235 -        &lt;feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/&gt;
280.3236 -      &lt;/filter&gt;
280.3237 -      &lt;filter id="Turb3" filterUnits="objectBoundingBox" 
280.3238 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3239 -        &lt;feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/&gt;
280.3240 -      &lt;/filter&gt;
280.3241 -      &lt;filter id="Turb4" filterUnits="objectBoundingBox" 
280.3242 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3243 -        &lt;feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/&gt;
280.3244 -      &lt;/filter&gt;
280.3245 -      &lt;filter id="Turb5" filterUnits="objectBoundingBox" 
280.3246 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3247 -        &lt;feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/&gt;
280.3248 -      &lt;/filter&gt;
280.3249 -      &lt;filter id="Turb6" filterUnits="objectBoundingBox" 
280.3250 -              x="0%" y="0%" width="100%" height="100%"&gt;
280.3251 -        &lt;feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/&gt;
280.3252 -      &lt;/filter&gt;
280.3253 -    &lt;/defs&gt;
280.3254 -
280.3255 -    &lt;rect x="1" y="1" width="448" height="323"
280.3256 -          fill="none" stroke="blue" stroke-width="1"  /&gt;
280.3257 -
280.3258 -    &lt;rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  /&gt;
280.3259 -    &lt;text x="75" y="117"&gt;type=turbulence&lt;/text&gt;
280.3260 -    &lt;text x="75" y="129"&gt;baseFrequency=0.05&lt;/text&gt;
280.3261 -    &lt;text x="75" y="141"&gt;numOctaves=2&lt;/text&gt;
280.3262 -
280.3263 -    &lt;rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  /&gt;
280.3264 -    &lt;text x="225" y="117"&gt;type=turbulence&lt;/text&gt;
280.3265 -    &lt;text x="225" y="129"&gt;baseFrequency=0.1&lt;/text&gt;
280.3266 -    &lt;text x="225" y="141"&gt;numOctaves=2&lt;/text&gt;
280.3267 -
280.3268 -    &lt;rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  /&gt;
280.3269 -    &lt;text x="375" y="117"&gt;type=turbulence&lt;/text&gt;
280.3270 -    &lt;text x="375" y="129"&gt;baseFrequency=0.05&lt;/text&gt;
280.3271 -    &lt;text x="375" y="141"&gt;numOctaves=8&lt;/text&gt;
280.3272 -
280.3273 -    &lt;rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  /&gt;
280.3274 -    &lt;text x="75" y="272"&gt;type=fractalNoise&lt;/text&gt;
280.3275 -    &lt;text x="75" y="284"&gt;baseFrequency=0.1&lt;/text&gt;
280.3276 -    &lt;text x="75" y="296"&gt;numOctaves=4&lt;/text&gt;
280.3277 -
280.3278 -    &lt;rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  /&gt;
280.3279 -    &lt;text x="225" y="272"&gt;type=fractalNoise&lt;/text&gt;
280.3280 -    &lt;text x="225" y="284"&gt;baseFrequency=0.4&lt;/text&gt;
280.3281 -    &lt;text x="225" y="296"&gt;numOctaves=4&lt;/text&gt;
280.3282 -
280.3283 -    &lt;rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  /&gt;
280.3284 -    &lt;text x="375" y="272"&gt;type=fractalNoise&lt;/text&gt;
280.3285 -    &lt;text x="375" y="284"&gt;baseFrequency=0.1&lt;/text&gt;
280.3286 -    &lt;text x="375" y="296"&gt;numOctaves=1&lt;/text&gt;
280.3287 -  &lt;/g&gt;
280.3288 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feTurbulence.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feTurbulence.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
280.3289 -
280.3290 -
280.3291 -<h2 id="feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></h2>
280.3292 -
280.3293 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDropShadow’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order:
280.3294 -                <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li><li><a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a></li></ul></dd></dl></div>
280.3295 -
280.3296 -<p>This filter creates a drop shadow of the input image. It is a shorthand
280.3297 -filter, and is defined in terms of combinations of other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>.
280.3298 -The expectation is that it can be optimized more easily by
280.3299 -implementations.</p>
280.3300 -
280.3301 -<p>The result of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter
280.3302 -primitive is equivalent to the following: 
280.3303 -
280.3304 -<pre class="examplesource">
280.3305 -  &lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt; 
280.3306 -  &lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt; 
280.3307 -  &lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt; 
280.3308 -  &lt;feComposite in2="offsetblur" operator="in"/&gt; 
280.3309 -  &lt;feMerge&gt; 
280.3310 -    &lt;feMergeNode/&gt;
280.3311 -    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt; 
280.3312 -  &lt;/feMerge&gt;
280.3313 -</pre>
280.3314 -</p>
280.3315 -
280.3316 -<p>
280.3317 -The above divided into steps:
280.3318 -<ol><li>Take the alpha channel of the input to the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> and do processing as if the
280.3319 -    following <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> was applied: 
280.3320 -    <pre class="examplesource">	&lt;feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/&gt;</pre>
280.3321 -    <br/>
280.3322 -  </li><li>Offset the result of step 1 by <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> and <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> as
280.3323 -    specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>
280.3324 -    element, equivalent to applying an <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> with these parameters: 
280.3325 -    <pre class="examplesource">	&lt;feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/&gt;</pre>
280.3326 -    <br/>
280.3327 -  </li><li>Do processing as if an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element with <a href="#FloodColorProperty"><span class="prop-name">‘flood-color’</span></a> and 
280.3328 -	<a href="#FloodOpacityProperty"><span class="prop-name">‘flood-opacity’</span></a> as specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> was applied: 
280.3329 -    <pre class="examplesource">	&lt;feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/&gt;</pre>
280.3330 -    <br/>
280.3331 -  </li><li>Composite the result of the <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> in step 3 with the result of
280.3332 -    the <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> in step 2 as if an <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> filter primitive with <a href="#feCompositeOperatorAttribute"><span class="attr-name">operator</span></a>='in' was applied: 
280.3333 -    <pre class="examplesource">	&lt;feComposite in2="offsetblur" operator="in"/&gt;</pre>
280.3334 -    <br/>
280.3335 -  </li><li>Finally merge the result of the previous step, doing processing as if
280.3336 -    the following <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> was performed: 
280.3337 -    <pre class="examplesource">	&lt;feMerge&gt;
280.3338 -	    &lt;feMergeNode/&gt;
280.3339 -	    &lt;feMergeNode in="<b>in-of-feDropShadow</b>"/&gt;
280.3340 -	&lt;/feMerge&gt;</pre>
280.3341 -  </li></ol>
280.3342 -</p>
280.3343 -
280.3344 -<p class="note implementation">Note that while the definition of the <span class="element-name">‘feDropShadow’</span> filter primitive says that it can
280.3345 -be expanded into an equivalent tree it is not required that it is implemented
280.3346 -like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately.
280.3347 -</p> 
280.3348 -
280.3349 -<p>Beyond the DOM interface <a href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way
280.3350 -of accessing the internals of the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the
280.3351 -filter primitive is implemented as an equivalent tree then that tree must not
280.3352 -be exposed to the DOM.</span> </p>
280.3353 -
280.3354 -<div class="adef-list">
280.3355 -<p><em>Attribute definitions:</em></p>
280.3356 -<dl><dt id="feDropShadowDxAttribute">
280.3357 -  <span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
280.3358 -		<p>The x offset of the drop shadow.</p> 
280.3359 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> is <span class="attr-value">2</span>.</p> 
280.3360 -		<p>This attribute is then forwarded to the <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p>
280.3361 -		<p><span class="anim-target">Animatable: yes.</span></p>
280.3362 -	</dd><dt id="feDropShadowDyAttribute">
280.3363 -  <span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber">&lt;number&gt;</a></em>"</dt><dd>
280.3364 -		<p>The y offset of the drop shadow.</p>
280.3365 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> is <span class="attr-value">2</span>. </p>
280.3366 -		<p>This attribute is then forwarded to the <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p>
280.3367 -		<p><span class="anim-target">Animatable: yes.</span></p>
280.3368 -	</dd><dt id="feDropShadowStdDeviationAttribute"><span class="adef">stdDeviation</span> =
280.3369 -  "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber">&lt;number-optional-number&gt;</a></em>"</dt><dd>
280.3370 -		<p>The standard deviation for the blur operation in the drop shadow.</p>
280.3371 -		<p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> is <span class="attr-value">2</span>.</p> 
280.3372 -		<p>This attribute is then forwarded to the <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute of the internal
280.3373 -			<a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.</p>
280.3374 -		<p><span class="anim-target">Animatable: yes.</span></p>
280.3375 -	</dd></dl>
280.3376 -</div>
280.3377 -
280.3378 -<div class="note">
280.3379 -<h2 id="feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></h2>
280.3380 -The SVG WG is looking at providing a shorthand for diffuse+specular.
280.3381 -</div>
280.3382 -
280.3383 -<div class="note">
280.3384 -<h2 id="feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></h2>
280.3385 -The SVG WG is looking to add a filter primitive that allows programmatic access
280.3386 -to the pixel data for a filter, e.g via OpenCL.
280.3387 -</div>
280.3388 -
280.3389 -<h2 id="RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</h2>
280.3390 -
280.3391 -<p>The schema for Filter Effects 1.0 is written in <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a>
280.3392 -[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses
280.3393 -the datatypes from <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part
280.3394 -2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and
280.3395 -modularity to be much more naturally expressed than using DTD syntax. The
280.3396 -RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas,
280.3397 -or combined with other schemas in other languages into a multi-namespace,
280.3398 -multi-grammar schema using <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation
280.3399 -Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p>
280.3400 -
280.3401 -<p>Unlike a DTD, the schema used for validation is not hardcoded into the
280.3402 -document instance. There is no equivalent to the DOCTYPE declaration. Simply
280.3403 -point your editor or other validation tool to the IRI of the schema (or your
280.3404 -local cached copy, as you prefer).</p>
280.3405 -
280.3406 -<p>
280.3407 -The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 
280.3408 -</p>
280.3409 -
280.3410 -<h2 id="DOMInterfaces">30 DOM interfaces</h2>
280.3411 -<div class="note">
280.3412 -The interfaces below will be made available in a IDL file for an upcoming draft.
280.3413 -</div>
280.3414 -
280.3415 - 
280.3416 -
280.3417 -<h2 id="DOMInterfaces">30 DOM interfaces</h2>
280.3418 -
280.3419 -<h3 id="InterfaceImageData">31.1 Interface ImageData</h3>
280.3420 -
280.3421 -
280.3422 - The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface.
280.3423 -<pre class="idl">interface <b>ImageData</b> {
280.3424 -  readonly attribute long <a href="#__svg__ImageData__width">width</a>;
280.3425 -  readonly attribute long <a href="#__svg__ImageData__height">height</a>;
280.3426 -  readonly attribute  <a href="#__svg__ImageData__data">data</a>;
280.3427 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.3428 -<dt id="__svg__ImageData__width"><b>width</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div>
280.3429 - The width of the bitmap that the ImageData represents.
280.3430 -</div></dd>
280.3431 -<dt id="__svg__ImageData__height"><b>height</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div>
280.3432 - The height of the bitmap that the ImageData represents.
280.3433 -</div></dd>
280.3434 -<dt id="__svg__ImageData__data"><b>data</b><span class="idl-type-parenthetical"> (readonly )</span></dt><dd><div>
280.3435 - An array of pixel values that is the bitmap. This array must
280.3436 - always be in the form of width×height×4 integer values. The
280.3437 - pixel data is in left-to-right order, starting from the top-left
280.3438 - corner, and going row by row downwards. Every pixel is
280.3439 - represented by four integer values, red, green, blue and alpha,
280.3440 - in that order. The range of each color component is 0..255. The
280.3441 - intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 
280.3442 - canvas interfaces, in particular see 
280.3443 - <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>.
280.3444 -</div></dd></dl></dd></dl>
280.3445 -
280.3446 -<h3 id="InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</h3>
280.3447 -
280.3448 -
280.3449 -
280.3450 - The <a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a> interface corresponds to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.3451 - element.
280.3452 -<pre class="idl">interface <b>SVGFilterElement</b> : ::svg::SVGElement,
280.3453 -                             ::svg::SVGURIReference,
280.3454 -                             ::svg::SVGLangSpace,
280.3455 -                             ::svg::SVGExternalResourcesRequired,
280.3456 -                             ::svg::SVGStylable,
280.3457 -                             ::svg::SVGUnitTypes {
280.3458 -
280.3459 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__filterUnits">filterUnits</a>;
280.3460 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__primitiveUnits">primitiveUnits</a>;
280.3461 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__x">x</a>;
280.3462 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__y">y</a>;
280.3463 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__width">width</a>;
280.3464 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__height">height</a>;
280.3465 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResX">filterResX</a>;
280.3466 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResY">filterResY</a>;
280.3467 -
280.3468 -  void <a href="#__svg__SVGFilterElement__setFilterRes">setFilterRes</a>(in unsigned long filterResX, in unsigned long filterResY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>);
280.3469 -  <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <a href="#__svg__SVGFilterElement__apply">apply</a>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> source);
280.3470 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.3471 -<dt id="__svg__SVGFilterElement__filterUnits"><b>filterUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3472 - Corresponds to attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.3473 - element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>.
280.3474 -</div></dd>
280.3475 -<dt id="__svg__SVGFilterElement__primitiveUnits"><b>primitiveUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3476 - Corresponds to attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.3477 - element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>.
280.3478 -</div></dd>
280.3479 -<dt id="__svg__SVGFilterElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3480 - Corresponds to attribute <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.3481 -</div></dd>
280.3482 -<dt id="__svg__SVGFilterElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3483 - Corresponds to attribute <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.3484 -</div></dd>
280.3485 -<dt id="__svg__SVGFilterElement__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3486 - Corresponds to attribute <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.3487 -</div></dd>
280.3488 -<dt id="__svg__SVGFilterElement__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3489 - Corresponds to attribute <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element.
280.3490 -</div></dd>
280.3491 -<dt id="__svg__SVGFilterElement__filterResX"><b>filterResX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3492 - Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.3493 - element.  Contains the X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
280.3494 -</div></dd>
280.3495 -<dt id="__svg__SVGFilterElement__filterResY"><b>filterResY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3496 - Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a>
280.3497 - element.  Contains the Y component (possibly computed automatically) of
280.3498 - attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
280.3499 -</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes">
280.3500 -<dt id="__svg__SVGFilterElement__setFilterRes">void <b>setFilterRes</b>(in unsigned long <var>filterResX</var>, in unsigned long <var>filterResY</var>)</dt><dd><div>
280.3501 - Sets the values for attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
280.3502 -
280.3503 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">unsigned long <var>filterResX</var></div> <div> The X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
280.3504 -</div></li><li><div class="parameter">unsigned long <var>filterResY</var></div> <div> The Y component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.
280.3505 -</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt
280.3506 -   to change the value of a readonly attribute.
280.3507 -</dd></dl></dd></dl></dd>
280.3508 -<dt id="__svg__SVGFilterElement__apply"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <b>apply</b>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var>)</dt><dd><div>
280.3509 - Applies the filter to the given ImageData object and returns the result.
280.3510 -
280.3511 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var></div> <div> The image to apply the filter to.
280.3512 -</div></li></ol></dd><dt>Returns</dt><dd><div> The result of the filter, see <a class="idlinterface" href="#InterfaceImageData">ImageData</a> for how to construct this.
280.3513 -</div></dd></dl></dd></dl></dd></dl>
280.3514 -
280.3515 -
280.3516 -<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</h3>
280.3517 -
280.3518 -
280.3519 -
280.3520 - This interface defines the set of DOM attributes that are common across
280.3521 - the filter primitive interfaces.
280.3522 -<pre class="idl">interface <b>SVGFilterPrimitiveStandardAttributes</b> : ::svg::SVGStylable {
280.3523 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__x">x</a>;
280.3524 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__y">y</a>;
280.3525 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__width">width</a>;
280.3526 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__height">height</a>;
280.3527 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__result">result</a>;
280.3528 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.3529 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3530 - Corresponds to attribute <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a> on the given element.
280.3531 -</div></dd>
280.3532 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3533 - Corresponds to attribute <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a> on the given element.
280.3534 -</div></dd>
280.3535 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3536 - Corresponds to attribute <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> on the given element.
280.3537 -</div></dd>
280.3538 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div>
280.3539 - Corresponds to attribute <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> on the given element.
280.3540 -</div></dd>
280.3541 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__result"><b>result</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3542 - Corresponds to attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> on the given element.
280.3543 -</div></dd></dl></dd></dl>
280.3544 -
280.3545 -
280.3546 -<h3 id="InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</h3>
280.3547 -
280.3548 -
280.3549 -
280.3550 - The <a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a> interface corresponds to the <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
280.3551 - element.
280.3552 -<pre class="idl">interface <b>SVGFEBlendElement</b> : ::svg::SVGElement,
280.3553 -                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3554 -
280.3555 -  // Blend Mode Types
280.3556 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN">SVG_FEBLEND_MODE_UNKNOWN</a> = 0;
280.3557 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL">SVG_FEBLEND_MODE_NORMAL</a> = 1;
280.3558 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY">SVG_FEBLEND_MODE_MULTIPLY</a> = 2;
280.3559 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN">SVG_FEBLEND_MODE_SCREEN</a> = 3;
280.3560 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN">SVG_FEBLEND_MODE_DARKEN</a> = 4;
280.3561 -  const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN">SVG_FEBLEND_MODE_LIGHTEN</a> = 5;
280.3562 -
280.3563 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in1">in1</a>;
280.3564 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in2">in2</a>;
280.3565 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEBlendElement__mode">mode</a>;
280.3566 -};</pre><dl class="interface"><dt>Constants in group “Blend Mode Typesâ€:</dt><dd><dl class="constants">
280.3567 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN"><b>SVG_FEBLEND_MODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3568 - The type is not one of predefined types. It is invalid to attempt to
280.3569 - define a new value of this type or to attempt to switch an existing
280.3570 - value to this type.
280.3571 -
280.3572 -</div></dd>
280.3573 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL"><b>SVG_FEBLEND_MODE_NORMAL</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3574 - Corresponds to value <span class="attr-value">'normal'</span>.
280.3575 -
280.3576 -</div></dd>
280.3577 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY"><b>SVG_FEBLEND_MODE_MULTIPLY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3578 - Corresponds to value <span class="attr-value">'multiply'</span>.
280.3579 -
280.3580 -</div></dd>
280.3581 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN"><b>SVG_FEBLEND_MODE_SCREEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3582 - Corresponds to value <span class="attr-value">'screen'</span>.
280.3583 -
280.3584 -</div></dd>
280.3585 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN"><b>SVG_FEBLEND_MODE_DARKEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3586 - Corresponds to value <span class="attr-value">'darken'</span>.
280.3587 -
280.3588 -</div></dd>
280.3589 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN"><b>SVG_FEBLEND_MODE_LIGHTEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3590 - Corresponds to value <span class="attr-value">'lighten'</span>.
280.3591 -
280.3592 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.3593 -<dt id="__svg__SVGFEBlendElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3594 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
280.3595 - element.
280.3596 -</div></dd>
280.3597 -<dt id="__svg__SVGFEBlendElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3598 - Corresponds to attribute <a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
280.3599 - element.
280.3600 -</div></dd>
280.3601 -<dt id="__svg__SVGFEBlendElement__mode"><b>mode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3602 - Corresponds to attribute <a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>
280.3603 - element.  Takes one of the SVG_FEBLEND_MODE_* constants defined on
280.3604 - this interface.
280.3605 -</div></dd></dl></dd></dl>
280.3606 -
280.3607 -
280.3608 -<h3 id="InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</h3>
280.3609 -
280.3610 -
280.3611 -
280.3612 - The <a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a> interface corresponds to the
280.3613 - <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> element.
280.3614 -<pre class="idl">interface <b>SVGFEColorMatrixElement</b> : ::svg::SVGElement,
280.3615 -                                    <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3616 -
280.3617 -  // Color Matrix Types
280.3618 -  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN">SVG_FECOLORMATRIX_TYPE_UNKNOWN</a> = 0;
280.3619 -  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX">SVG_FECOLORMATRIX_TYPE_MATRIX</a> = 1;
280.3620 -  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE">SVG_FECOLORMATRIX_TYPE_SATURATE</a> = 2;
280.3621 -  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE">SVG_FECOLORMATRIX_TYPE_HUEROTATE</a> = 3;
280.3622 -  const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA">SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</a> = 4;
280.3623 -
280.3624 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEColorMatrixElement__in1">in1</a>;
280.3625 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEColorMatrixElement__type">type</a>;
280.3626 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEColorMatrixElement__values">values</a>;
280.3627 -};</pre><dl class="interface"><dt>Constants in group “Color Matrix Typesâ€:</dt><dd><dl class="constants">
280.3628 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN"><b>SVG_FECOLORMATRIX_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3629 - The type is not one of predefined types. It is invalid to attempt to
280.3630 - define a new value of this type or to attempt to switch an existing
280.3631 - value to this type.
280.3632 -
280.3633 -</div></dd>
280.3634 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX"><b>SVG_FECOLORMATRIX_TYPE_MATRIX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3635 - Corresponds to value <span class="attr-value">'matrix'</span>.
280.3636 -
280.3637 -</div></dd>
280.3638 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE"><b>SVG_FECOLORMATRIX_TYPE_SATURATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3639 - Corresponds to value <span class="attr-value">'saturate'</span>.
280.3640 -
280.3641 -</div></dd>
280.3642 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE"><b>SVG_FECOLORMATRIX_TYPE_HUEROTATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3643 - Corresponds to value <span class="attr-value">'hueRotate'</span>.
280.3644 -
280.3645 -</div></dd>
280.3646 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA"><b>SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3647 - Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>.
280.3648 -
280.3649 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.3650 -<dt id="__svg__SVGFEColorMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3651 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
280.3652 - element.
280.3653 -</div></dd>
280.3654 -<dt id="__svg__SVGFEColorMatrixElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3655 - Corresponds to attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
280.3656 - element.  Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined
280.3657 - on this interface.
280.3658 -</div></dd>
280.3659 -<dt id="__svg__SVGFEColorMatrixElement__values"><b>values</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
280.3660 - Corresponds to attribute <a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>
280.3661 - element.
280.3662 -</div></dd></dl></dd></dl>
280.3663 -
280.3664 -
280.3665 -<h3 id="InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</h3>
280.3666 -
280.3667 -
280.3668 -
280.3669 - The <a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a> interface corresponds to the
280.3670 - <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element.
280.3671 -<pre class="idl">interface <b>SVGFEComponentTransferElement</b> : ::svg::SVGElement,
280.3672 -                                          <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3673 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEComponentTransferElement__in1">in1</a>;
280.3674 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.3675 -<dt id="__svg__SVGFEComponentTransferElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3676 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>
280.3677 - element.
280.3678 -</div></dd></dl></dd></dl>
280.3679 -
280.3680 -
280.3681 -<h3 id="InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</h3>
280.3682 -
280.3683 -
280.3684 -
280.3685 - This interface defines a base interface used by the component transfer
280.3686 - function interfaces.
280.3687 -<pre class="idl">interface <b>SVGComponentTransferFunctionElement</b> : ::svg::SVGElement {
280.3688 -
280.3689 -  // Component Transfer Types
280.3690 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN">SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</a> = 0;
280.3691 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY">SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</a> = 1;
280.3692 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE">SVG_FECOMPONENTTRANSFER_TYPE_TABLE</a> = 2;
280.3693 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE">SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</a> = 3;
280.3694 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR">SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</a> = 4;
280.3695 -  const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA">SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</a> = 5;
280.3696 -
280.3697 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGComponentTransferFunctionElement__type">type</a>;
280.3698 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGComponentTransferFunctionElement__tableValues">tableValues</a>;
280.3699 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__slope">slope</a>;
280.3700 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__intercept">intercept</a>;
280.3701 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__amplitude">amplitude</a>;
280.3702 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__exponent">exponent</a>;
280.3703 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__offset">offset</a>;
280.3704 -};</pre><dl class="interface"><dt>Constants in group “Component Transfer Typesâ€:</dt><dd><dl class="constants">
280.3705 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN"><b>SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3706 - The type is not one of predefined types. It is invalid to attempt to
280.3707 - define a new value of this type or to attempt to switch an existing
280.3708 - value to this type.
280.3709 -
280.3710 -</div></dd>
280.3711 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY"><b>SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3712 - Corresponds to value <span class="attr-value">'identity'</span>.
280.3713 -
280.3714 -</div></dd>
280.3715 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE"><b>SVG_FECOMPONENTTRANSFER_TYPE_TABLE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3716 - Corresponds to value <span class="attr-value">'table'</span>.
280.3717 -
280.3718 -</div></dd>
280.3719 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE"><b>SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3720 - Corresponds to value <span class="attr-value">'discrete'</span>.
280.3721 -
280.3722 -</div></dd>
280.3723 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR"><b>SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3724 - Corresponds to value <span class="attr-value">'linear'</span>.
280.3725 -
280.3726 -</div></dd>
280.3727 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA"><b>SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3728 - Corresponds to value <span class="attr-value">'gamma'</span>.
280.3729 -
280.3730 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.3731 -<dt id="__svg__SVGComponentTransferFunctionElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3732 - Corresponds to attribute <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> on the given
280.3733 - element.  Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined
280.3734 - on this interface.
280.3735 -</div></dd>
280.3736 -<dt id="__svg__SVGComponentTransferFunctionElement__tableValues"><b>tableValues</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
280.3737 - Corresponds to attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a> on the given element.
280.3738 -</div></dd>
280.3739 -<dt id="__svg__SVGComponentTransferFunctionElement__slope"><b>slope</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3740 - Corresponds to attribute <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a> on the given element.
280.3741 -</div></dd>
280.3742 -<dt id="__svg__SVGComponentTransferFunctionElement__intercept"><b>intercept</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3743 - Corresponds to attribute <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a> on the given element.
280.3744 -</div></dd>
280.3745 -<dt id="__svg__SVGComponentTransferFunctionElement__amplitude"><b>amplitude</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3746 - Corresponds to attribute <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a> on the given element.
280.3747 -</div></dd>
280.3748 -<dt id="__svg__SVGComponentTransferFunctionElement__exponent"><b>exponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3749 - Corresponds to attribute <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a> on the given element.
280.3750 -</div></dd>
280.3751 -<dt id="__svg__SVGComponentTransferFunctionElement__offset"><b>offset</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3752 - Corresponds to attribute <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a> on the given element.
280.3753 -</div></dd></dl></dd></dl>
280.3754 -
280.3755 -
280.3756 -<h3 id="InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</h3>
280.3757 -
280.3758 -
280.3759 -
280.3760 - The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncR’</span></a>
280.3761 - element.
280.3762 -<pre class="idl">interface <b>SVGFEFuncRElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
280.3763 -};</pre>
280.3764 -
280.3765 -
280.3766 -<h3 id="InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</h3>
280.3767 -
280.3768 -
280.3769 -
280.3770 - The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncG’</span></a>
280.3771 - element.
280.3772 -<pre class="idl">interface <b>SVGFEFuncGElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
280.3773 -};</pre>
280.3774 -
280.3775 -
280.3776 -<h3 id="InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</h3>
280.3777 -
280.3778 -
280.3779 -
280.3780 - The <a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncB’</span></a>
280.3781 - element.
280.3782 -<pre class="idl">interface <b>SVGFEFuncBElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
280.3783 -};</pre>
280.3784 -
280.3785 -
280.3786 -<h3 id="InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</h3>
280.3787 -
280.3788 -
280.3789 -
280.3790 - The <a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncA’</span></a>
280.3791 - element.
280.3792 -<pre class="idl">interface <b>SVGFEFuncAElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> {
280.3793 -};</pre>
280.3794 -
280.3795 -
280.3796 -<h3 id="InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</h3>
280.3797 -
280.3798 -
280.3799 -
280.3800 - The <a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a> interface corresponds to the
280.3801 - <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> element.
280.3802 -<pre class="idl">interface <b>SVGFECompositeElement</b> : ::svg::SVGElement,
280.3803 -                                  <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3804 -
280.3805 -  // Composite Operators
280.3806 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN">SVG_FECOMPOSITE_OPERATOR_UNKNOWN</a> = 0;
280.3807 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER">SVG_FECOMPOSITE_OPERATOR_OVER</a> = 1;
280.3808 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN">SVG_FECOMPOSITE_OPERATOR_IN</a> = 2;
280.3809 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT">SVG_FECOMPOSITE_OPERATOR_OUT</a> = 3;
280.3810 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP">SVG_FECOMPOSITE_OPERATOR_ATOP</a> = 4;
280.3811 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR">SVG_FECOMPOSITE_OPERATOR_XOR</a> = 5;
280.3812 -  const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC">SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</a> = 6;
280.3813 -
280.3814 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in1">in1</a>;
280.3815 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in2">in2</a>;
280.3816 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFECompositeElement__operator">operator</a>;
280.3817 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k1">k1</a>;
280.3818 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k2">k2</a>;
280.3819 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k3">k3</a>;
280.3820 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k4">k4</a>;
280.3821 -};</pre><dl class="interface"><dt>Constants in group “Composite Operatorsâ€:</dt><dd><dl class="constants">
280.3822 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN"><b>SVG_FECOMPOSITE_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3823 - The type is not one of predefined types. It is invalid to attempt to
280.3824 - define a new value of this type or to attempt to switch an existing
280.3825 - value to this type.
280.3826 -
280.3827 -</div></dd>
280.3828 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER"><b>SVG_FECOMPOSITE_OPERATOR_OVER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3829 - Corresponds to value <span class="attr-value">'over'</span>.
280.3830 -
280.3831 -</div></dd>
280.3832 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN"><b>SVG_FECOMPOSITE_OPERATOR_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3833 - Corresponds to value <span class="attr-value">'in'</span>.
280.3834 -
280.3835 -</div></dd>
280.3836 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT"><b>SVG_FECOMPOSITE_OPERATOR_OUT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3837 - Corresponds to value <span class="attr-value">'out'</span>.
280.3838 -
280.3839 -</div></dd>
280.3840 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP"><b>SVG_FECOMPOSITE_OPERATOR_ATOP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3841 - Corresponds to value <span class="attr-value">'atop'</span>.
280.3842 -
280.3843 -</div></dd>
280.3844 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR"><b>SVG_FECOMPOSITE_OPERATOR_XOR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3845 - Corresponds to value <span class="attr-value">'xor'</span>.
280.3846 -
280.3847 -</div></dd>
280.3848 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC"><b>SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3849 - Corresponds to value <span class="attr-value">'arithmetic'</span>.
280.3850 -
280.3851 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.3852 -<dt id="__svg__SVGFECompositeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3853 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3854 - element.
280.3855 -</div></dd>
280.3856 -<dt id="__svg__SVGFECompositeElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3857 - Corresponds to attribute <a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3858 - element.
280.3859 -</div></dd>
280.3860 -<dt id="__svg__SVGFECompositeElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3861 - Corresponds to attribute <a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3862 - element.  Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined
280.3863 - on this interface.
280.3864 -</div></dd>
280.3865 -<dt id="__svg__SVGFECompositeElement__k1"><b>k1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3866 - Corresponds to attribute <a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3867 - element.
280.3868 -</div></dd>
280.3869 -<dt id="__svg__SVGFECompositeElement__k2"><b>k2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3870 - Corresponds to attribute <a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3871 - element.
280.3872 -</div></dd>
280.3873 -<dt id="__svg__SVGFECompositeElement__k3"><b>k3</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3874 - Corresponds to attribute <a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3875 - element.
280.3876 -</div></dd>
280.3877 -<dt id="__svg__SVGFECompositeElement__k4"><b>k4</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3878 - Corresponds to attribute <a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>
280.3879 - element.
280.3880 -</div></dd></dl></dd></dl>
280.3881 -
280.3882 -
280.3883 -<h3 id="InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</h3>
280.3884 -
280.3885 -
280.3886 -
280.3887 - The <a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a> interface corresponds to the
280.3888 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3889 -<pre class="idl">interface <b>SVGFEConvolveMatrixElement</b> : ::svg::SVGElement,
280.3890 -                                       <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3891 -
280.3892 -  // Edge Mode Values
280.3893 -  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN">SVG_EDGEMODE_UNKNOWN</a> = 0;
280.3894 -  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE">SVG_EDGEMODE_DUPLICATE</a> = 1;
280.3895 -  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP">SVG_EDGEMODE_WRAP</a> = 2;
280.3896 -  const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE">SVG_EDGEMODE_NONE</a> = 3;
280.3897 -
280.3898 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEConvolveMatrixElement__in1">in1</a>;
280.3899 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderX">orderX</a>;
280.3900 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderY">orderY</a>;
280.3901 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelMatrix">kernelMatrix</a>;
280.3902 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__divisor">divisor</a>;
280.3903 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__bias">bias</a>;
280.3904 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetX">targetX</a>;
280.3905 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetY">targetY</a>;
280.3906 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEConvolveMatrixElement__edgeMode">edgeMode</a>;
280.3907 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX">kernelUnitLengthX</a>;
280.3908 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY">kernelUnitLengthY</a>;
280.3909 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a> <a href="#__svg__SVGFEConvolveMatrixElement__preserveAlpha">preserveAlpha</a>;
280.3910 -};</pre><dl class="interface"><dt>Constants in group “Edge Mode Valuesâ€:</dt><dd><dl class="constants">
280.3911 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN"><b>SVG_EDGEMODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3912 - The type is not one of predefined types. It is invalid to attempt to
280.3913 - define a new value of this type or to attempt to switch an existing
280.3914 - value to this type.
280.3915 -
280.3916 -</div></dd>
280.3917 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE"><b>SVG_EDGEMODE_DUPLICATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3918 - Corresponds to value <span class="attr-value">'duplicate'</span>.
280.3919 -
280.3920 -</div></dd>
280.3921 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP"><b>SVG_EDGEMODE_WRAP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3922 - Corresponds to value <span class="attr-value">'wrap'</span>.
280.3923 -
280.3924 -</div></dd>
280.3925 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE"><b>SVG_EDGEMODE_NONE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.3926 - Corresponds to value <span class="attr-value">'none'</span>.
280.3927 -
280.3928 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.3929 -<dt id="__svg__SVGFEConvolveMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3930 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given
280.3931 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3932 -</div></dd>
280.3933 -<dt id="__svg__SVGFEConvolveMatrixElement__orderX"><b>orderX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3934 - Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given
280.3935 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3936 -</div></dd>
280.3937 -<dt id="__svg__SVGFEConvolveMatrixElement__orderY"><b>orderY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3938 - Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given
280.3939 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3940 -</div></dd>
280.3941 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelMatrix"><b>kernelMatrix</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div>
280.3942 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> on the given
280.3943 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3944 -</div></dd>
280.3945 -<dt id="__svg__SVGFEConvolveMatrixElement__divisor"><b>divisor</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3946 - Corresponds to attribute <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> on the given
280.3947 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3948 -</div></dd>
280.3949 -<dt id="__svg__SVGFEConvolveMatrixElement__bias"><b>bias</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3950 - Corresponds to attribute <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> on the given
280.3951 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3952 -</div></dd>
280.3953 -<dt id="__svg__SVGFEConvolveMatrixElement__targetX"><b>targetX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3954 - Corresponds to attribute <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> on the given
280.3955 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3956 -</div></dd>
280.3957 -<dt id="__svg__SVGFEConvolveMatrixElement__targetY"><b>targetY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.3958 - Corresponds to attribute <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> on the given
280.3959 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3960 -</div></dd>
280.3961 -<dt id="__svg__SVGFEConvolveMatrixElement__edgeMode"><b>edgeMode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.3962 - Corresponds to attribute <a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a> on the given
280.3963 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.  Takes one of the SVG_EDGEMODE_*
280.3964 - constants defined on this interface.
280.3965 -</div></dd>
280.3966 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3967 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.3968 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3969 -</div></dd>
280.3970 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3971 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.3972 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3973 -</div></dd>
280.3974 -<dt id="__svg__SVGFEConvolveMatrixElement__preserveAlpha"><b>preserveAlpha</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a>)</span></dt><dd><div>
280.3975 - Corresponds to attribute <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> on the given
280.3976 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element.
280.3977 -</div></dd></dl></dd></dl>
280.3978 -
280.3979 -
280.3980 -<h3 id="InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</h3>
280.3981 -
280.3982 -
280.3983 -
280.3984 - The <a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a> interface corresponds to the
280.3985 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
280.3986 -<pre class="idl">interface <b>SVGFEDiffuseLightingElement</b> : ::svg::SVGElement,
280.3987 -                                        <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.3988 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDiffuseLightingElement__in1">in1</a>;
280.3989 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__surfaceScale">surfaceScale</a>;
280.3990 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__diffuseConstant">diffuseConstant</a>;
280.3991 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>;
280.3992 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>;
280.3993 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.3994 -<dt id="__svg__SVGFEDiffuseLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.3995 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>
280.3996 - element.
280.3997 -</div></dd>
280.3998 -<dt id="__svg__SVGFEDiffuseLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.3999 - Corresponds to attribute <a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given
280.4000 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
280.4001 -</div></dd>
280.4002 -<dt id="__svg__SVGFEDiffuseLightingElement__diffuseConstant"><b>diffuseConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4003 - Corresponds to attribute <a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a> on the given
280.4004 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
280.4005 -</div></dd>
280.4006 -<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4007 - Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.4008 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
280.4009 -</div></dd>
280.4010 -<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4011 - Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.4012 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element.
280.4013 -</div></dd></dl></dd></dl>
280.4014 -
280.4015 -
280.4016 -<h3 id="InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</h3>
280.4017 -
280.4018 -
280.4019 -
280.4020 - The <a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a> interface corresponds to the
280.4021 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
280.4022 -<pre class="idl">interface <b>SVGFEDistantLightElement</b> : ::svg::SVGElement {
280.4023 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__azimuth">azimuth</a>;
280.4024 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__elevation">elevation</a>;
280.4025 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4026 -<dt id="__svg__SVGFEDistantLightElement__azimuth"><b>azimuth</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4027 - Corresponds to attribute <a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a> on the given
280.4028 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
280.4029 -</div></dd>
280.4030 -<dt id="__svg__SVGFEDistantLightElement__elevation"><b>elevation</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4031 - Corresponds to attribute <a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a> on the given
280.4032 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element.
280.4033 -</div></dd></dl></dd></dl>
280.4034 -
280.4035 -
280.4036 -<h3 id="InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</h3>
280.4037 -
280.4038 -
280.4039 -
280.4040 - The <a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a> interface corresponds to the
280.4041 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
280.4042 -<pre class="idl">interface <b>SVGFEPointLightElement</b> : ::svg::SVGElement {
280.4043 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__x">x</a>;
280.4044 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__y">y</a>;
280.4045 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__z">z</a>;
280.4046 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4047 -<dt id="__svg__SVGFEPointLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4048 - Corresponds to attribute <a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a> on the given
280.4049 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
280.4050 -</div></dd>
280.4051 -<dt id="__svg__SVGFEPointLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4052 - Corresponds to attribute <a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a> on the given
280.4053 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
280.4054 -</div></dd>
280.4055 -<dt id="__svg__SVGFEPointLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4056 - Corresponds to attribute <a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a> on the given
280.4057 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element.
280.4058 -</div></dd></dl></dd></dl>
280.4059 -
280.4060 -
280.4061 -<h3 id="InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</h3>
280.4062 -
280.4063 -
280.4064 -
280.4065 - The <a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a> interface corresponds to the
280.4066 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4067 -<pre class="idl">interface <b>SVGFESpotLightElement</b> : ::svg::SVGElement {
280.4068 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__x">x</a>;
280.4069 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__y">y</a>;
280.4070 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__z">z</a>;
280.4071 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtX">pointsAtX</a>;
280.4072 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtY">pointsAtY</a>;
280.4073 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtZ">pointsAtZ</a>;
280.4074 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__specularExponent">specularExponent</a>;
280.4075 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__limitingConeAngle">limitingConeAngle</a>;
280.4076 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4077 -<dt id="__svg__SVGFESpotLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4078 - Corresponds to attribute <a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a> on the given
280.4079 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4080 -</div></dd>
280.4081 -<dt id="__svg__SVGFESpotLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4082 - Corresponds to attribute <a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a> on the given
280.4083 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4084 -</div></dd>
280.4085 -<dt id="__svg__SVGFESpotLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4086 - Corresponds to attribute <a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a> on the given
280.4087 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4088 -</div></dd>
280.4089 -<dt id="__svg__SVGFESpotLightElement__pointsAtX"><b>pointsAtX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4090 - Corresponds to attribute <a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a> on the given
280.4091 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4092 -</div></dd>
280.4093 -<dt id="__svg__SVGFESpotLightElement__pointsAtY"><b>pointsAtY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4094 - Corresponds to attribute <a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a> on the given
280.4095 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4096 -</div></dd>
280.4097 -<dt id="__svg__SVGFESpotLightElement__pointsAtZ"><b>pointsAtZ</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4098 - Corresponds to attribute <a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a> on the given
280.4099 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4100 -</div></dd>
280.4101 -<dt id="__svg__SVGFESpotLightElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4102 - Corresponds to attribute <a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given
280.4103 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4104 -</div></dd>
280.4105 -<dt id="__svg__SVGFESpotLightElement__limitingConeAngle"><b>limitingConeAngle</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4106 - Corresponds to attribute <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> on the given
280.4107 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element.
280.4108 -</div></dd></dl></dd></dl>
280.4109 -
280.4110 -
280.4111 -<h3 id="InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</h3>
280.4112 -
280.4113 -
280.4114 -
280.4115 - The <a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a> interface corresponds to the
280.4116 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.
280.4117 -<pre class="idl">interface <b>SVGFEDisplacementMapElement</b> : ::svg::SVGElement,
280.4118 -                                        <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4119 -
280.4120 -  // Channel Selectors
280.4121 -  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN">SVG_CHANNEL_UNKNOWN</a> = 0;
280.4122 -  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R">SVG_CHANNEL_R</a> = 1;
280.4123 -  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G">SVG_CHANNEL_G</a> = 2;
280.4124 -  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B">SVG_CHANNEL_B</a> = 3;
280.4125 -  const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A">SVG_CHANNEL_A</a> = 4;
280.4126 -
280.4127 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in1">in1</a>;
280.4128 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in2">in2</a>;
280.4129 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDisplacementMapElement__scale">scale</a>;
280.4130 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__xChannelSelector">xChannelSelector</a>;
280.4131 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__yChannelSelector">yChannelSelector</a>;
280.4132 -};</pre><dl class="interface"><dt>Constants in group “Channel Selectorsâ€:</dt><dd><dl class="constants">
280.4133 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN"><b>SVG_CHANNEL_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4134 - The type is not one of predefined types. It is invalid to attempt to
280.4135 - define a new value of this type or to attempt to switch an existing
280.4136 - value to this type.
280.4137 -
280.4138 -</div></dd>
280.4139 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R"><b>SVG_CHANNEL_R</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4140 - Corresponds to value <span class="attr-value">'R'</span>.
280.4141 -
280.4142 -</div></dd>
280.4143 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G"><b>SVG_CHANNEL_G</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4144 - Corresponds to value <span class="attr-value">'G'</span>.
280.4145 -
280.4146 -</div></dd>
280.4147 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B"><b>SVG_CHANNEL_B</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4148 - Corresponds to value <span class="attr-value">'B'</span>.
280.4149 -
280.4150 -</div></dd>
280.4151 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A"><b>SVG_CHANNEL_A</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4152 - Corresponds to value <span class="attr-value">'A'</span>.
280.4153 -
280.4154 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.4155 -<dt id="__svg__SVGFEDisplacementMapElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4156 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
280.4157 - element.
280.4158 -</div></dd>
280.4159 -<dt id="__svg__SVGFEDisplacementMapElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4160 - Corresponds to attribute <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
280.4161 - element.
280.4162 -</div></dd>
280.4163 -<dt id="__svg__SVGFEDisplacementMapElement__scale"><b>scale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4164 - Corresponds to attribute <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>
280.4165 - element.
280.4166 -</div></dd>
280.4167 -<dt id="__svg__SVGFEDisplacementMapElement__xChannelSelector"><b>xChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.4168 - Corresponds to attribute <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> on the given
280.4169 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.  Takes one of the SVG_CHANNEL_*
280.4170 - constants defined on this interface.
280.4171 -</div></dd>
280.4172 -<dt id="__svg__SVGFEDisplacementMapElement__yChannelSelector"><b>yChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.4173 - Corresponds to attribute <a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> on the given
280.4174 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element.  Takes one of the SVG_CHANNEL_*
280.4175 - constants defined on this interface.
280.4176 -</div></dd></dl></dd></dl>
280.4177 -
280.4178 -
280.4179 -<h3 id="InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</h3>
280.4180 -
280.4181 -
280.4182 -
280.4183 - The <a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a> interface corresponds to the
280.4184 - <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element.
280.4185 -<pre class="idl">interface <b>SVGFEFloodElement</b> : ::svg::SVGElement,
280.4186 -                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4187 -};</pre>
280.4188 -
280.4189 -
280.4190 -<h3 id="InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</h3>
280.4191 -
280.4192 -
280.4193 -
280.4194 - The <a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a> interface corresponds to the
280.4195 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.
280.4196 -<pre class="idl">interface <b>SVGFEGaussianBlurElement</b> : ::svg::SVGElement,
280.4197 -                                     <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4198 -
280.4199 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEGaussianBlurElement__in1">in1</a>;
280.4200 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationX">stdDeviationX</a>;
280.4201 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationY">stdDeviationY</a>;
280.4202 -
280.4203 -  void <a href="#__svg__SVGFEGaussianBlurElement__setStdDeviation">setStdDeviation</a>(in float stdDeviationX, in float stdDeviationY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>);
280.4204 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4205 -<dt id="__svg__SVGFEGaussianBlurElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4206 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given
280.4207 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.
280.4208 -</div></dd>
280.4209 -<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4210 - Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given
280.4211 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.  Contains the X component
280.4212 - of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
280.4213 -</div></dd>
280.4214 -<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4215 - Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given
280.4216 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.  Contains the Y component
280.4217 - (possibly computed automatically) of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
280.4218 -</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes">
280.4219 -<dt id="__svg__SVGFEGaussianBlurElement__setStdDeviation">void <b>setStdDeviation</b>(in float <var>stdDeviationX</var>, in float <var>stdDeviationY</var>)</dt><dd><div>
280.4220 - Sets the values for attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
280.4221 -
280.4222 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">float <var>stdDeviationX</var></div> <div> The X component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
280.4223 -</div></li><li><div class="parameter">float <var>stdDeviationY</var></div> <div> The Y component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>.
280.4224 -</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt
280.4225 -   to change the value of a readonly attribute.
280.4226 -</dd></dl></dd></dl></dd></dl></dd></dl>
280.4227 -
280.4228 -
280.4229 -<h3 id="InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</h3>
280.4230 -
280.4231 -
280.4232 -
280.4233 - The <a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a> interface corresponds to the
280.4234 - <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element.
280.4235 -<pre class="idl">interface <b>SVGFEImageElement</b> : ::svg::SVGElement,
280.4236 -                              ::svg::SVGURIReference,
280.4237 -                              ::svg::SVGLangSpace,
280.4238 -                              ::svg::SVGExternalResourcesRequired,
280.4239 -                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4240 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a> <a href="#__svg__SVGFEImageElement__preserveAspectRatio">preserveAspectRatio</a>;
280.4241 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4242 -<dt id="__svg__SVGFEImageElement__preserveAspectRatio"><b>preserveAspectRatio</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a>)</span></dt><dd><div>
280.4243 - Corresponds to attribute <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a> on the given
280.4244 - <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element.
280.4245 -</div></dd></dl></dd></dl>
280.4246 -
280.4247 -
280.4248 -<h3 id="InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</h3>
280.4249 -
280.4250 -
280.4251 -
280.4252 - The <a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a> interface corresponds to the
280.4253 - <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> element.
280.4254 -<pre class="idl">interface <b>SVGFEMergeElement</b> : ::svg::SVGElement,
280.4255 -                              <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4256 -};</pre>
280.4257 -
280.4258 -
280.4259 -<h3 id="InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</h3>
280.4260 -
280.4261 -
280.4262 -
280.4263 - The <a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a> interface corresponds to the
280.4264 - <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> element.
280.4265 -<pre class="idl">interface <b>SVGFEMergeNodeElement</b> : ::svg::SVGElement {
280.4266 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMergeNodeElement__in1">in1</a>;
280.4267 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4268 -<dt id="__svg__SVGFEMergeNodeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4269 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a>
280.4270 - element.
280.4271 -</div></dd></dl></dd></dl>
280.4272 -
280.4273 -
280.4274 -<h3 id="InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</h3>
280.4275 -
280.4276 -
280.4277 -
280.4278 - The <a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a> interface corresponds to the
280.4279 - <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> element.
280.4280 -<pre class="idl">interface <b>SVGFEMorphologyElement</b> : ::svg::SVGElement,
280.4281 -                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4282 -
280.4283 -  // Morphology Operators
280.4284 -  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN">SVG_MORPHOLOGY_OPERATOR_UNKNOWN</a> = 0;
280.4285 -  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE">SVG_MORPHOLOGY_OPERATOR_ERODE</a> = 1;
280.4286 -  const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE">SVG_MORPHOLOGY_OPERATOR_DILATE</a> = 2;
280.4287 -
280.4288 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMorphologyElement__in1">in1</a>;
280.4289 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEMorphologyElement__operator">operator</a>;
280.4290 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusX">radiusX</a>;
280.4291 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusY">radiusY</a>;
280.4292 -};</pre><dl class="interface"><dt>Constants in group “Morphology Operatorsâ€:</dt><dd><dl class="constants">
280.4293 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN"><b>SVG_MORPHOLOGY_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4294 - The type is not one of predefined types. It is invalid to attempt to
280.4295 - define a new value of this type or to attempt to switch an existing
280.4296 - value to this type.
280.4297 -
280.4298 -</div></dd>
280.4299 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE"><b>SVG_MORPHOLOGY_OPERATOR_ERODE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4300 - Corresponds to value <span class="attr-value">'erode'</span>.
280.4301 -
280.4302 -</div></dd>
280.4303 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE"><b>SVG_MORPHOLOGY_OPERATOR_DILATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4304 - Corresponds to value <span class="attr-value">'dilate'</span>.
280.4305 -
280.4306 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.4307 -<dt id="__svg__SVGFEMorphologyElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4308 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
280.4309 - element.
280.4310 -</div></dd>
280.4311 -<dt id="__svg__SVGFEMorphologyElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.4312 - Corresponds to attribute <a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
280.4313 - element.  Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants
280.4314 - defined on this interface.
280.4315 -</div></dd>
280.4316 -<dt id="__svg__SVGFEMorphologyElement__radiusX"><b>radiusX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4317 - Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
280.4318 - element.
280.4319 -</div></dd>
280.4320 -<dt id="__svg__SVGFEMorphologyElement__radiusY"><b>radiusY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4321 - Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>
280.4322 - element.
280.4323 -</div></dd></dl></dd></dl>
280.4324 -
280.4325 -
280.4326 -<h3 id="InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</h3>
280.4327 -
280.4328 -
280.4329 -
280.4330 - The <a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a> interface corresponds to the
280.4331 - <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.
280.4332 -<pre class="idl">interface <b>SVGFEOffsetElement</b> : ::svg::SVGElement,
280.4333 -                               <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4334 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEOffsetElement__in1">in1</a>;
280.4335 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dx">dx</a>;
280.4336 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dy">dy</a>;
280.4337 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4338 -<dt id="__svg__SVGFEOffsetElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4339 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
280.4340 - element.
280.4341 -</div></dd>
280.4342 -<dt id="__svg__SVGFEOffsetElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4343 - Corresponds to attribute <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
280.4344 - element.
280.4345 -</div></dd>
280.4346 -<dt id="__svg__SVGFEOffsetElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4347 - Corresponds to attribute <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>
280.4348 - element.
280.4349 -</div></dd></dl></dd></dl>
280.4350 -
280.4351 -
280.4352 -<h3 id="InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</h3>
280.4353 -
280.4354 -
280.4355 -
280.4356 - The <a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a> interface corresponds to the
280.4357 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4358 -<pre class="idl">interface <b>SVGFESpecularLightingElement</b> : ::svg::SVGElement,
280.4359 -                                         <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4360 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFESpecularLightingElement__in1">in1</a>;
280.4361 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__surfaceScale">surfaceScale</a>;
280.4362 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularConstant">specularConstant</a>;
280.4363 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularExponent">specularExponent</a>;
280.4364 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>;
280.4365 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>;
280.4366 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4367 -<dt id="__svg__SVGFESpecularLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4368 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>
280.4369 - element.
280.4370 -</div></dd>
280.4371 -<dt id="__svg__SVGFESpecularLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4372 - Corresponds to attribute <a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given
280.4373 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4374 -</div></dd>
280.4375 -<dt id="__svg__SVGFESpecularLightingElement__specularConstant"><b>specularConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4376 - Corresponds to attribute <a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a> on the given
280.4377 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4378 -</div></dd>
280.4379 -<dt id="__svg__SVGFESpecularLightingElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4380 - Corresponds to attribute <a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given
280.4381 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4382 -</div></dd>
280.4383 -<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4384 - Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.4385 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4386 -</div></dd>
280.4387 -<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4388 - Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given
280.4389 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element.
280.4390 -</div></dd></dl></dd></dl>
280.4391 -
280.4392 -
280.4393 -<h3 id="InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</h3>
280.4394 -
280.4395 -
280.4396 -
280.4397 - The <a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a> interface corresponds to the
280.4398 - <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> element.
280.4399 -<pre class="idl">interface <b>SVGFETileElement</b> : ::svg::SVGElement,
280.4400 -                             <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4401 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFETileElement__in1">in1</a>;
280.4402 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4403 -<dt id="__svg__SVGFETileElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div>
280.4404 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>
280.4405 - element.
280.4406 -</div></dd></dl></dd></dl>
280.4407 -
280.4408 -
280.4409 -<h3 id="InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</h3>
280.4410 -
280.4411 -
280.4412 -
280.4413 - The <a class="idlinterface" href="#InterfaceSVGFETurbulenceElement">SVGFETurbulenceElement</a> interface corresponds to the
280.4414 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
280.4415 -<pre class="idl">interface <b>SVGFETurbulenceElement</b> : ::svg::SVGElement,
280.4416 -                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4417 -
280.4418 -  // Turbulence Types
280.4419 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN">SVG_TURBULENCE_TYPE_UNKNOWN</a> = 0;
280.4420 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE">SVG_TURBULENCE_TYPE_FRACTALNOISE</a> = 1;
280.4421 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE">SVG_TURBULENCE_TYPE_TURBULENCE</a> = 2;
280.4422 -
280.4423 -  // Stitch Options
280.4424 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN">SVG_STITCHTYPE_UNKNOWN</a> = 0;
280.4425 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH">SVG_STITCHTYPE_STITCH</a> = 1;
280.4426 -  const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH">SVG_STITCHTYPE_NOSTITCH</a> = 2;
280.4427 -
280.4428 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyX">baseFrequencyX</a>;
280.4429 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyY">baseFrequencyY</a>;
280.4430 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFETurbulenceElement__numOctaves">numOctaves</a>;
280.4431 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__seed">seed</a>;
280.4432 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__stitchTiles">stitchTiles</a>;
280.4433 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__type">type</a>;
280.4434 -};</pre><dl class="interface"><dt>Constants in group “Turbulence Typesâ€:</dt><dd><dl class="constants">
280.4435 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN"><b>SVG_TURBULENCE_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4436 - The type is not one of predefined types. It is invalid to attempt to
280.4437 - define a new value of this type or to attempt to switch an existing
280.4438 - value to this type.
280.4439 -
280.4440 -</div></dd>
280.4441 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE"><b>SVG_TURBULENCE_TYPE_FRACTALNOISE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4442 - Corresponds to value <span class="attr-value">'fractalNoise'</span>.
280.4443 -
280.4444 -</div></dd>
280.4445 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE"><b>SVG_TURBULENCE_TYPE_TURBULENCE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4446 - Corresponds to value <span class="attr-value">'turbulence'</span>.
280.4447 -
280.4448 -</div></dd></dl></dd><dt>Constants in group “Stitch Optionsâ€:</dt><dd><dl class="constants">
280.4449 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN"><b>SVG_STITCHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4450 - The type is not one of predefined types. It is invalid to attempt to
280.4451 - define a new value of this type or to attempt to switch an existing
280.4452 - value to this type.
280.4453 -
280.4454 -</div></dd>
280.4455 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH"><b>SVG_STITCHTYPE_STITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4456 - Corresponds to value <span class="attr-value">'stitch'</span>.
280.4457 -
280.4458 -</div></dd>
280.4459 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH"><b>SVG_STITCHTYPE_NOSTITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div>
280.4460 - Corresponds to value <span class="attr-value">'noStitch'</span>.
280.4461 -
280.4462 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes">
280.4463 -<dt id="__svg__SVGFETurbulenceElement__baseFrequencyX"><b>baseFrequencyX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4464 - Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given
280.4465 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Contains the X component of the
280.4466 - <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute.
280.4467 -</div></dd>
280.4468 -<dt id="__svg__SVGFETurbulenceElement__baseFrequencyY"><b>baseFrequencyY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4469 - Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given
280.4470 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Contains the Y component of the
280.4471 - (possibly computed automatically) <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute.
280.4472 -</div></dd>
280.4473 -<dt id="__svg__SVGFETurbulenceElement__numOctaves"><b>numOctaves</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div>
280.4474 - Corresponds to attribute <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> on the given
280.4475 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
280.4476 -</div></dd>
280.4477 -<dt id="__svg__SVGFETurbulenceElement__seed"><b>seed</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div>
280.4478 - Corresponds to attribute <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> on the given
280.4479 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.
280.4480 -</div></dd>
280.4481 -<dt id="__svg__SVGFETurbulenceElement__stitchTiles"><b>stitchTiles</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.4482 - Corresponds to attribute <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> on the given
280.4483 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Takes one of the SVG_STITCHTYPE_*
280.4484 - constants defined on this interface.
280.4485 -</div></dd>
280.4486 -<dt id="__svg__SVGFETurbulenceElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div>
280.4487 - Corresponds to attribute <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> on the given
280.4488 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element.  Takes one of the SVG_TURBULENCE_TYPE_*
280.4489 - constants defined on this interface.
280.4490 -</div></dd></dl></dd></dl>
280.4491 -
280.4492 -
280.4493 -<h3 id="InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</h3>
280.4494 -
280.4495 -
280.4496 -
280.4497 - The <a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> interface corresponds to the
280.4498 - <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> element.
280.4499 -<pre class="idl">interface <b>SVGFEDropShadowElement</b> : ::svg::SVGElement,
280.4500 -                                   <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> {
280.4501 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDropShadowElement__in1">in1</a>;
280.4502 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dx">dx</a>;
280.4503 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dy">dy</a>;
280.4504 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationX">stdDeviationX</a>;
280.4505 -  readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationY">stdDeviationY</a>;
280.4506 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes">
280.4507 -<dt id="__svg__SVGFEDropShadowElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd> </dd>
280.4508 -<dt id="__svg__SVGFEDropShadowElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
280.4509 -<dt id="__svg__SVGFEDropShadowElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
280.4510 -<dt id="__svg__SVGFEDropShadowElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd>
280.4511 -<dt id="__svg__SVGFEDropShadowElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd></dl></dd></dl>
280.4512 -
280.4513 -
280.4514 -<h2 id="references1">32 References</h2>
280.4515 -<h3 id="normref">32.1 Normative References</h3>
280.4516 -<dl><dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt><dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 
280.4517 -		Bert Bos, Tantek Çelik, Ian Hickson, Håkon Wium Lie, eds.,
280.4518 -		W3C, 23 April 2009, (Candidate Recommendation) </dd><dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 4:
280.4519 -      Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD
280.4520 -      19757-4</strong>, See <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a>
280.4521 -    </dd><dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt><dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff,
280.4522 -      SIGGRAPH '84 Conference Proceedings, Association for Computing
280.4523 -      Machinery, Volume 18, Number 3, July 1984. </dd><dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 2:
280.4524 -      Regular grammar- based validation — RELAX NG. ISO/IEC FDIS
280.4525 -      19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span lang="ja" class="rb">æ‘ç”° 真</span> <span class="rp">(</span><span class="rt"><span class="familyname">Murata</span> M.</span><span class="rp">)</span></span>, eds., 12 December 2002. See <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a>
280.4526 -    </dd><dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt><dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P.
280.4527 -      Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest
280.4528 -      version available at <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.
280.4529 -      See also <a href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing
280.4530 -      XML 1.1 documents with XML Schema 1.0 processors</a>. </dd><dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>,
280.4531 -      Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a>
280.4532 -    </dd><dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>,
280.4533 -      Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a>
280.4534 -    </dd></dl>
280.4535 -
280.4536 -<h3 id="informref">32.2 Informative References</h3>
280.4537 -<dl><dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt><dd><strong>HTML5</strong>, Ian Hickson editor, Google,
280.4538 -      10 June 2008 (Working Draft). See <a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a>
280.4539 -    </dd></dl>
280.4540 -
280.4541 -  <h2 id="changes">33 Changes</h2>
280.4542 -  <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p>
280.4543 -<script src="style/expanders.js" type="text/javascript"> </script></body></html>
280.4544 \ No newline at end of file
   281.1 --- a/publish/SVGFilterPrimer.html	Thu Feb 24 10:19:12 2011 +0000
   281.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   281.3 @@ -1,323 +0,0 @@
   281.4 -<!--
   281.5 -  SVG Filters 1.2, Part 1: Primer
   281.6 -
   281.7 -  $Id$
   281.8 -
   281.9 -  Note: This document is generated from ../master/SVGFilterPrimer.html.
  281.10 -  Run "make" from ../master/ to regenerate it.
  281.11 -  -->
  281.12 -
  281.13 -<!DOCTYPE html
  281.14 -  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  281.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filters 1.2, Part 1: Primer</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  281.16 -
  281.17 -<div class="head">
  281.18 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  281.19 -  <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1>
  281.20 -  <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2>
  281.21 -  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterPrimer12/">http://www.w3.org/TR/SVGFilterPrimer12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl>
  281.22 -  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  281.23 -</div>
  281.24 -
  281.25 -<hr/>
  281.26 -
  281.27 -<h2 id="abstract">Abstract </h2>
  281.28 -
  281.29 -<p>
  281.30 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed.
  281.31 -</p>
  281.32 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO.
  281.33 -</p>
  281.34 -<p>
  281.35 -This document introduces the features used by SVG filters.
  281.36 -</p>
  281.37 -
  281.38 -<h2 id="status">Status of This Document </h2>
  281.39 -
  281.40 -<p><em>This section describes the status of this document at the time of its
  281.41 -publication. Other documents may supersede this document. The latest status
  281.42 -of this document series is maintained at the W3C. </em> </p>
  281.43 -
  281.44 -<p>This document is the first public working draft of this specification. </p>
  281.45 -
  281.46 -<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
  281.47 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
  281.48 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
  281.49 -</p>
  281.50 -
  281.51 -<p>We explicitly invite comments on this specification. Please send them to
  281.52 -<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>).
  281.53 -For comments on the core SVG language, use <a href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for
  281.54 -issues related to vector graphics on the Web (<a href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance
  281.55 -of the archiving policy is requested automatically upon first post to either
  281.56 -list. To subscribe to these lists send an email to <a href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a>
  281.57 -or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with
  281.58 -the word subscribe in the subject line. </p>
  281.59 -
  281.60 -<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
  281.61 -related to this document is available on the Web. As of this publication, the
  281.62 -SVG Working Group are not aware of any royalty-bearing patents they believe
  281.63 -to be essential to SVG. </p>
  281.64 -<p>Publication of this document does not imply endorsement by the W3C
  281.65 -membership. A list of current W3C Recommendations and other technical
  281.66 -documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
  281.67 -be updated, replaced, or obsoleted by other documents at any time. It is
  281.68 -inappropriate to cite a W3C Working Draft as anything other than a <em>work
  281.69 -in progress</em>." </p>
  281.70 -
  281.71 -<h2 id="howto">How to read this document and give feedback </h2>
  281.72 -
  281.73 -<p>This is a primer for the SVG Filter specification. It gives guidelines on
  281.74 -how to use the SVG Filter specification with SVG 1.2. In many cases the
  281.75 -reader will have to be familiar with the <a href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p>
  281.76 -
  281.77 -<p>
  281.78 -This document is informative.
  281.79 -</p>
  281.80 -
  281.81 -<h2 id="toc">Table of Contents</h2>
  281.82 -
  281.83 -<ul class="toc">
  281.84 -<li><a href="#Introduction">1 Filters in SVG</a></li>
  281.85 -<li><a href="#Example">2 An example</a></li>
  281.86 -<li><a href="#feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li>
  281.87 -<li><a href="#references">4 References </a></li></ul>
  281.88 -
  281.89 -<h2 id="Introduction">1 Filters in SVG</h2>
  281.90 -
  281.91 -<p>Filter effects are defined by <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> elements. To apply a filter effect
  281.92 -to a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics element</span></a> or a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>, you set the
  281.93 -value of the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> property on the given element such that
  281.94 -it references the filter effect.</p>
  281.95 -
  281.96 -<p>Each <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element contains a set of
  281.97 -<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter
  281.98 -primitive performs a single fundamental graphical operation (e.g., a blur or
  281.99 -a lighting effect) on one or more inputs, producing a graphical result.
 281.100 -Because most of the filter primitives represent some form of image
 281.101 -processing, in most cases the output from a filter primitive is a single RGBA
 281.102 -image.</p>
 281.103 -
 281.104 -<p>The original source graphic or the result from a filter primitive can be
 281.105 -used as input into one or more other filter primitives. A common application
 281.106 -is to use the source graphic multiple times. For example, a simple filter
 281.107 -could replace one graphic by two by adding a black copy of original source
 281.108 -graphic offset to create a drop shadow. In effect, there are now two layers
 281.109 -of graphics, both with the same original source graphics.</p>
 281.110 -
 281.111 -<p>When applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> such as <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a>, the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a>
 281.112 -property applies to the contents of the
 281.113 -group as a whole. The group's children do not render to the screen directly;
 281.114 -instead, the graphics commands necessary to render the children are stored
 281.115 -temporarily. Typically, the graphics commands are executed as part of the
 281.116 -processing of the referenced <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element via use of the keywords
 281.117 -<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>.
 281.118 -Filter effects can be applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> with no
 281.119 -content (e.g., an empty <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a> element), in which case the
 281.120 -<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> consist of a transparent black
 281.121 -rectangle that is the size of the
 281.122 -<a href="SVGFilter.html#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</p>
 281.123 -
 281.124 -<p>Sometimes filter primitives result in undefined pixels. For example,
 281.125 -filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the
 281.126 -right, leaving undefined pixels at the top and left. In these cases, the
 281.127 -undefined pixels are set to transparent black.</p>
 281.128 -
 281.129 -<h2 id="Example">2 An example</h2>
 281.130 -
 281.131 -<p>The following shows an example of a filter effect.</p>
 281.132 -
 281.133 -<p><span class="example-ref">Example filters01</span> - introducing filter
 281.134 -effects.</p>
 281.135 -
 281.136 -<pre class="xml">&lt;?xml version="1.0"?&gt;
 281.137 -&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
 281.138 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
 281.139 -&lt;svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
 281.140 -     xmlns="http://www.w3.org/2000/svg" version="1.1"&gt;
 281.141 -  &lt;title&gt;Example filters01.svg - introducing filter effects&lt;/title&gt;
 281.142 -  &lt;desc&gt;An example which combines multiple filter primitives
 281.143 -        to produce a 3D lighting effect on a graphic consisting
 281.144 -        of the string "SVG" sitting on top of oval filled in red
 281.145 -        and surrounded by an oval outlined in red.&lt;/desc&gt;
 281.146 -  &lt;defs&gt;
 281.147 -    &lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
 281.148 -      &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
 281.149 -      &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
 281.150 -      &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
 281.151 -                          specularExponent="20" lighting-color="#bbbbbb"  
 281.152 -                          result="specOut"&gt;
 281.153 -        &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
 281.154 -      &lt;/feSpecularLighting&gt;
 281.155 -      &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
 281.156 -      &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
 281.157 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
 281.158 -      &lt;feMerge&gt;
 281.159 -        &lt;feMergeNode in="offsetBlur"/&gt;
 281.160 -        &lt;feMergeNode in="litPaint"/&gt;
 281.161 -      &lt;/feMerge&gt;
 281.162 -    &lt;/filter&gt;
 281.163 -  &lt;/defs&gt;
 281.164 -  &lt;rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /&gt;
 281.165 -  &lt;g filter="url(#MyFilter)" &gt;
 281.166 -	  &lt;g&gt;
 281.167 -      &lt;path fill="none" stroke="#D90000" stroke-width="10" 
 281.168 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /&gt;
 281.169 -      &lt;path fill="#D90000" 
 281.170 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /&gt;
 281.171 -      &lt;g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" &gt;
 281.172 -        &lt;text x="52" y="76"&gt;SVG&lt;/text&gt;
 281.173 -      &lt;/g&gt;
 281.174 -    &lt;/g&gt;
 281.175 -  &lt;/g&gt;
 281.176 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filters01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filters01.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 281.177 -
 281.178 -<p>The filter effect used in the example above is repeated here with
 281.179 -reference numbers in the left column before each of the six filter
 281.180 -primitives:</p>
 281.181 -
 281.182 -<table summary="filter example with reference numbers"><tbody><tr><td valign="top"><pre style="color:black"> 
 281.183 - 
 281.184 -1
 281.185 -2
 281.186 -3
 281.187 - 
 281.188 - 
 281.189 - 
 281.190 - 
 281.191 -4
 281.192 -5
 281.193 - 
 281.194 -6
 281.195 - 
 281.196 - 
 281.197 - </pre>
 281.198 -      </td><td valign="top"><pre>&lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
 281.199 -  &lt;desc&gt;Produces a 3D lighting effect.&lt;/desc&gt;
 281.200 -  &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
 281.201 -  &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
 281.202 -  &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
 281.203 -                      specularExponent="20" lighting-color="#bbbbbb" 
 281.204 -                      result="specOut"&gt;
 281.205 -    &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
 281.206 -  &lt;/feSpecularLighting&gt;
 281.207 -  &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
 281.208 -  &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
 281.209 -               k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
 281.210 -  &lt;feMerge&gt;
 281.211 -    &lt;feMergeNode in="offsetBlur"/&gt;
 281.212 -    &lt;feMergeNode in="litPaint"/&gt;
 281.213 -  &lt;/feMerge&gt;
 281.214 -&lt;/filter&gt;</pre>
 281.215 -      </td></tr></tbody></table>
 281.216 -
 281.217 -<p>The following pictures show the intermediate image results from each of
 281.218 -the six filter elements:</p>
 281.219 -
 281.220 -<table summary="filter example intermediate results"><tbody><tr><td><p><img width="115" height="70" alt="filters01 - original source graphic" src="examples/filters01-0.png"/><br/>
 281.221 -        Source graphic</p>
 281.222 -      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 1" src="examples/filters01-1.png"/><br/>
 281.223 -        After filter primitive 1</p>
 281.224 -      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 2" src="examples/filters01-2.png"/><br/>
 281.225 -        After filter primitive 2</p>
 281.226 -      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 3" src="examples/filters01-3.png"/><br/>
 281.227 -        After filter primitive 3</p>
 281.228 -      </td></tr><tr><td> </td><td> </td><td/><td/><td/><td/><td/></tr><tr><td> </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 4" src="examples/filters01-4.png"/><br/>
 281.229 -        After filter primitive 4</p>
 281.230 -      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 5" src="examples/filters01-5.png"/><br/>
 281.231 -        After filter primitive 5</p>
 281.232 -      </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 6" src="examples/filters01-6.png"/><br/>
 281.233 -        After filter primitive 6</p>
 281.234 -      </td></tr></tbody></table>
 281.235 -<ol><li>Filter primitive <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> takes input <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>,
 281.236 -    which is the alpha channel of
 281.237 -    the source graphic. The result is stored in a temporary buffer named
 281.238 -    "blur". Note that "blur" is used as input to both filter primitives 2 and
 281.239 -    3.</li><li>Filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> takes buffer "blur", shifts
 281.240 -    the result in a positive direction in both x and y, and creates a new
 281.241 -    buffer named "offsetBlur". The effect is that of a drop shadow.</li><li>Filter primitive <a href="SVGFilter.html#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, uses buffer "blur"
 281.242 -    as a model of a surface elevation and generates a lighting effect from a
 281.243 -    single point source. The result is stored in buffer "specOut".</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> masks out the result of
 281.244 -    filter primitive 3 by the original source graphics alpha channel so that
 281.245 -    the intermediate result is no bigger than the original source
 281.246 -  graphic.</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> composites the result of
 281.247 -    the specular lighting with the original source graphic.</li><li>Filter primitive <a href="SVGFilter.html#feMergeElement"><span class="element-name">‘feMerge’</span></a> composites two layers together.
 281.248 -    The lower layer consists of the drop shadow result from filter primitive
 281.249 -    2. The upper layer consists of the specular lighting result from filter
 281.250 -    primitive 5.</li></ol>
 281.251 -
 281.252 -<h2 id="feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2>
 281.253 -
 281.254 -<p>
 281.255 -  The <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive can be used to create blur effects.
 281.256 -  Below is an example where the blur is applied only in one direction, which can
 281.257 -  give better performance in some <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">user agents</span></a>. 
 281.258 -  <pre class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 281.259 -&lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"&gt;
 281.260 -  &lt;defs&gt;
 281.261 -    &lt;font-face font-family="FORQUE"&gt;
 281.262 -      &lt;font-face-src&gt;
 281.263 -        &lt;font-face-uri xlink:href="Forque.svg#FORQUE"/&gt;
 281.264 -      &lt;/font-face-src&gt;
 281.265 -    &lt;/font-face&gt;
 281.266 -    &lt;style&gt;
 281.267 -      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
 281.268 -      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
 281.269 -      #bx { filter: url(#blurX) }
 281.270 -      #by { filter: url(#blurY) }
 281.271 -      #header { filter: url(#ds); fill: white; text-decoration: underline }
 281.272 -      #attribution { font-size: 6px }
 281.273 -      :root { background: green; fill: white }
 281.274 -    &lt;/style&gt;
 281.275 -    &lt;filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"&gt;
 281.276 -      &lt;feGaussianBlur stdDeviation="4 0"&gt;
 281.277 -        &lt;animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/&gt;
 281.278 -      &lt;/feGaussianBlur&gt;
 281.279 -    &lt;/filter&gt;
 281.280 -    &lt;filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"&gt;
 281.281 -      &lt;feGaussianBlur stdDeviation="0 4"/&gt;
 281.282 -    &lt;/filter&gt;
 281.283 -    &lt;filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"&gt;
 281.284 -      &lt;feGaussianBlur stdDeviation="3"/&gt;
 281.285 -      &lt;feOffset dx="2" dy="2"/&gt;
 281.286 -      &lt;feComposite in2="SourceGraphic" operator="in"/&gt;
 281.287 -    &lt;/filter&gt;
 281.288 -  &lt;/defs&gt;
 281.289 -
 281.290 -  &lt;text id="bx" x="40%" y="50%"&gt;BlurX&lt;/text&gt;
 281.291 -  &lt;text id="by" x="60%" y="70%"&gt;BlurY&lt;/text&gt;
 281.292 -  
 281.293 -  &lt;text id="header" y="1em" x="50%"&gt;Unidirectional blur&lt;/text&gt;
 281.294 -  &lt;text id="attribution" x="100%" y="355"&gt;Forque font by Tup Wanders&lt;/text&gt;
 281.295 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-stdDeviation-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-stdDeviation-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 281.296 -</p>
 281.297 -
 281.298 -<p>The blur filter can also be used for creating the impression of something being in motion, as in this example.
 281.299 -  <pre class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 281.300 -&lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"&gt;
 281.301 -  &lt;defs&gt;
 281.302 -    &lt;filter id="motionblur" filterUnits="userSpaceOnUse"&gt;
 281.303 -      &lt;feGaussianBlur stdDeviation="5 0"/&gt;
 281.304 -    &lt;/filter&gt;
 281.305 -    &lt;symbol id="crow" viewBox="0 0 197 190"&gt;
 281.306 -      &lt;path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/&gt;
 281.307 -    &lt;/symbol&gt;
 281.308 -  &lt;/defs&gt;
 281.309 -  
 281.310 -  &lt;image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/&gt;
 281.311 -  &lt;use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/&gt;
 281.312 -   
 281.313 -&lt;/svg&gt;</pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-motion-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-motion-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p>
 281.314 -</p>
 281.315 -
 281.316 -<h2 id="references">4 References </h2>
 281.317 -<dl><dt id="SVG12Full">SVG12</dt><dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>,
 281.318 -      Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a>
 281.319 -    </dd><dt id="SVG12Requirements">SVG12Reqs</dt><dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor,
 281.320 -      W3C, 22 April 2002 (Working Draft). See <a href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a>
 281.321 -    </dd><dt id="SVGFilterRequirements">SVGFilterReqs</dt><dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007
 281.322 -      (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a>
 281.323 -    </dd><dt id="SVG12Filter">SVG12Filters</dt><dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a>
 281.324 -    </dd></dl>
 281.325 -
 281.326 -<script src="style/expanders.js" type="text/javascript"> </script></body></html>
 281.327 \ No newline at end of file
   282.1 --- a/publish/SVGFilterReqs.html	Thu Feb 24 10:19:12 2011 +0000
   282.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   282.3 @@ -1,211 +0,0 @@
   282.4 -<!--
   282.5 -  SVG Filter Requirements
   282.6 -
   282.7 -  $Id$
   282.8 -
   282.9 -  Note: This document is generated from ../master/SVGFilterReqs.html.
  282.10 -  Run "make" from ../master/ to regenerate it.
  282.11 -  -->
  282.12 -
  282.13 -<!DOCTYPE html
  282.14 -  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  282.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filter Requirements</title><style type="text/css">
  282.16 -
  282.17 -      .designgoals {
  282.18 -       list-style-type: decimal;
  282.19 -      }
  282.20 -
  282.21 -      .req-level1 {
  282.22 -       list-style-type: decimal;
  282.23 -       font-weight: bold;
  282.24 -      }
  282.25 -
  282.26 -      .req-level2 {
  282.27 -       list-style-type: decimal;
  282.28 -       font-weight: normal;
  282.29 -      }
  282.30 -
  282.31 -      .req-level1 li {
  282.32 -       margin-top: 1em;
  282.33 -      }
  282.34 -
  282.35 -      .req-level2 li {
  282.36 -       margin-top: 0em;
  282.37 -      }
  282.38 -
  282.39 -      .label {
  282.40 -       margin-top: 1em;
  282.41 -      }
  282.42 -
  282.43 -      .comment {
  282.44 -       background: #ffffaa;
  282.45 -      }
  282.46 -
  282.47 -      .svgversion {
  282.48 -       color: #336633;
  282.49 -       font-weight: bold;
  282.50 -      }
  282.51 -
  282.52 -      .term {
  282.53 -       font-weight: bold;
  282.54 -       color: #aa3333;
  282.55 -      }
  282.56 -
  282.57 -      .issue {
  282.58 -       color: #ff0000;
  282.59 -      }
  282.60 -
  282.61 -    </style><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body>
  282.62 -
  282.63 -<div class="head">
  282.64 -  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  282.65 -  <h1 id="pagetitle">SVG Filter Requirements</h1>
  282.66 -  <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2>
  282.67 -  <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterReqs12/">http://www.w3.org/TR/SVGFilterReqs12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl>
  282.68 -  <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
  282.69 -</div>
  282.70 -
  282.71 -<hr/>
  282.72 -
  282.73 -<h2 id="sec-abstract">Abstract</h2>
  282.74 -
  282.75 -<p>This document lists the design principles and requirements for the
  282.76 -creation of a SVG specification related to filters. </p>
  282.77 -
  282.78 -<h2 id="sec-status">Status of this Document</h2>
  282.79 -
  282.80 -<p>This is a W3C Working Draft for review by W3C Members and other interested
  282.81 -parties. It is a draft document and may be updated, replaced or made obsolete
  282.82 -by other documents at any time. It is inappropriate to use W3C Working Drafts
  282.83 -as reference material or to cite them as other than "work in progress". A
  282.84 -list of current W3C Recommendations and other technical documents, including
  282.85 -Working Drafts and Notes, can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p>
  282.86 -
  282.87 -<p>This is the first release of the SVG Filter Requirements. It is expected
  282.88 -that this document will progress through a number of working drafts,
  282.89 -including "Last Call", before being published in final form. </p>
  282.90 -
  282.91 -<p>This document was developed by the <a href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG)
  282.92 -working group as part of the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors
  282.93 -of this document are the SVG Working Group members. </p>
  282.94 -
  282.95 -<p>Feedback on this document should be sent to the email list <a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This
  282.96 -is an archived public list specific to the issues of SVG Filters. Public
  282.97 -discussion of issues related to vector graphics on the Web and SVG in
  282.98 -particular takes place on the <a href="mailto:www-svg@w3.org">the public
  282.99 -mailing list of the SVG Working Group</a> (<a href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To
 282.100 -subscribe send an email to <code>www-svg-request@w3.org</code> with the word
 282.101 -<code>subscribe</code> in the subject line. </p>
 282.102 -
 282.103 -<p>The latest information regarding <a rel="disclosures" href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
 282.104 -related to this document is available on the Web. As of this publication, the
 282.105 -SVG Working Group are not aware of any royalty-bearing patents they believe
 282.106 -to be essential to SVG. </p>
 282.107 -
 282.108 -<p><em>This section represents the status of this document at the time this
 282.109 -version was published. It will become outdated if and when a new version is
 282.110 -published. The latest status is maintained at the W3C. </em> </p>
 282.111 -
 282.112 -<h2 id="toc">Table of Contents</h2>
 282.113 -
 282.114 -<ul class="toc">
 282.115 -<li><a href="#sec-introduction">1 Introduction </a></li>
 282.116 -<li><a href="#sec-terminology">2 Terminology </a></li>
 282.117 -<li><a href="#sec-usage">3 Usage Scenarios </a></li>
 282.118 -<li><a href="#sec-features">4 Special Filter Considerations</a></li>
 282.119 -<li><a href="#sec-requirements">5 Requirements</a></li>
 282.120 -<li><a href="#sec-references">6 References</a></li>
 282.121 -<li><a href="#sec-authorlist">7 Author List</a></li></ul>
 282.122 -
 282.123 -<div class="div1">
 282.124 -<h2 id="sec-introduction">1 Introduction </h2>
 282.125 -
 282.126 -<p>The 
 282.127 -<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C
 282.128 -recommendation that describes two-dimensional graphics in XML. </p>
 282.129 -</div>
 282.130 -
 282.131 -<div class="div1">
 282.132 -<h2 id="sec-terminology">2 Terminology </h2>
 282.133 -
 282.134 -<p>The following key words and phrases used throughout this document are
 282.135 -defined here for clarity. The terms Must, Should, and May are used to specify
 282.136 -the extent to which an item is a requirement for the SVG working group in
 282.137 -defining SVGP. These recommendations should not be mistaken as a guide to
 282.138 -implementors. </p>
 282.139 -<ol><li><b>'Must'</b> means that the item is an absolute requirement. </li><li><b>'Should'</b> means that there may exist valid reasons in particular
 282.140 -    circumstances to ignore the item, but the full implications must be
 282.141 -    understood and carefully weighed before choosing a different course. </li><li><b>'May' </b> means that item will be considered, but further
 282.142 -    examination is needed to determine if the item should be treated as a
 282.143 -    requirement. </li><li><b>'SVG' </b> refers to SVG in general without reference to any version
 282.144 -    or profile. </li><li><b>'SVG 1.0' </b> refers to the original SVG specification. </li><li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li><li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to
 282.145 -    reference this specification. </li><li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for
 282.146 -    filtering. </li></ol>
 282.147 -</div>
 282.148 -
 282.149 -<div class="div1">
 282.150 -<h2 id="sec-usage">3 Usage Scenarios </h2>
 282.151 -
 282.152 -<p>The following usage scenarios illustrate some of the ways in which SVG
 282.153 -Filters might be used for various applications. </p>
 282.154 -
 282.155 -<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to
 282.156 -produce drop shadows. </p>
 282.157 -<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p>
 282.158 -</div>
 282.159 -
 282.160 -<div class="div1">
 282.161 -<h2 id="sec-features">4 Special Filter Considerations</h2>
 282.162 -
 282.163 -<p><b>Memory and processor requirements</b> A filter effect may require
 282.164 -significant memory or processing resources. </p>
 282.165 -</div>
 282.166 -
 282.167 -<div class="div1">
 282.168 -<h2 id="sec-requirements">5 Requirements</h2>
 282.169 -<ol class="req-level1"><li>General Requirements 
 282.170 -    <ol class="req-level2"><li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid
 282.171 -        SVGF filter. </li><li>Conformance criteria for SVGF <span class="term">must</span> be
 282.172 -        produced. The criteria <span class="term">should</span> be separated
 282.173 -        into sections relevant to particular application types (eg. SVG
 282.174 -        files/document fragments, SVG generators, SVG viewers, SVG printers,
 282.175 -        etc.) </li><li>Software or documents <span class="term">must</span> pass the
 282.176 -        relevant criteria to be able to claim conformance to the particular
 282.177 -        application type. </li><li>A conformance test suite <span class="term">must</span> be
 282.178 -        developed for SVGF. The test suite must be made publicly available.
 282.179 -        Conformance test suites for other uses of SVGF (e.g. prepress
 282.180 -        guidelines) <span class="term">may</span> be developed. </li><li>A specification referencing SVGF <span class="term">may</span>
 282.181 -        declare that 'enableBackground' is not supported when used in
 282.182 -        conjunction with that specification. If so, then support for
 282.183 -        'backgroundAlpha' and 'backgroundImage' <span class="term">must</span> be excluded as well. </li><li>A specification referencing SVGF <span class="term">must</span>
 282.184 -        declare if animations applies when a 'filter' chain is in its scope.
 282.185 -      </li></ol>
 282.186 -  </li><li>Scripting 
 282.187 -    <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support the
 282.188 -        SVGF scripting feature set. </li></ol>
 282.189 -  </li><li>Animation 
 282.190 -    <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support animation of all
 282.191 -        properties listed as animatable. </li></ol>
 282.192 -  </li></ol>
 282.193 -</div>
 282.194 -
 282.195 -<div class="div1">
 282.196 -<h2 id="sec-references">6 References</h2>
 282.197 -<dl class="references"><dt class="label" id="ref-svg">SVG 1.1</dt><dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon
 282.198 -      Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003
 282.199 -      (Recommendation). See <a href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd><dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0
 282.200 -  Requirements</dt><dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor,
 282.201 -      W3C, 22 April 2002. See <a href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a>
 282.202 -    </dd><dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt><dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin,
 282.203 -      editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a>
 282.204 -    </dd></dl>
 282.205 -</div>
 282.206 -<hr class="xhtml"/>
 282.207 -
 282.208 -<h2 id="sec-authorlist">7 Author List</h2>
 282.209 -
 282.210 -<p>The authors of this specification are the participants of the W3C SVG
 282.211 -Working Group.</p>
 282.212 -<dl><dt>Authors:</dt><dd><ul><li>Ola Andersson, ZOOMON AB</li><li>Henric Axelsson, Ericsson AB</li><li>Phil Armstrong, Corel Corporation</li><li>Robin Berjon, Expway</li><li>Benoît Bézaire, Corel Corporation</li><li>Craig Brown, Canon Information Systems Research Australia</li><li>Mike Bultrowicz, Savage Software</li><li>Tolga Capin, Nokia Inc.</li><li>Mathias Larsson Carlander, Ericsson AB</li><li>Jakob Cederquist, ZOOMON AB</li><li>Charilaos Christopoulos, Ericsson AB</li><li>Lee Cole, Quark</li><li>Don Cone, America Online Inc.</li><li>Alex Danilo, Canon Information Systems Research Australia</li><li>Thomas DeWeese, Eastman Kodak</li><li>Jon Ferraiolo, Adobe Systems Inc.</li><li>Darryl Fuller, Schema Software</li><li>藤沢 æ·³ (FUJISAWA Jun), Canon</li><li>Rick Graham, BitFlash</li><li>Vincent Hardy, Sun Microsystems Inc.</li><li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li><li>Lofton Henderson, OASIS</li><li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li><li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li><li>Christophe Jolif, ILOG S.A.</li><li>Lee Klosterman, Hewlett-Packard</li><li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li><li>Thierry Kormann, ILOG S.A.</li><li>Yuri Khramov, Schema Software</li><li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li><li>Philip Mansfield, Schema Software</li><li>Peter Mierau, Adobe Systems Inc.</li><li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li><li>Luc Minnebo, Agfa-Gevaert N.V.</li><li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li><li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li><li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li><li>Brad Sipes, ZOOMON AB</li><li>Peter Sorotokin, Adobe Systems Inc.</li><li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li><li>Rick Yardumian, Canon Development Americas</li><li>Charles Ying, Openwave Systems, Inc.</li></ul>
 282.213 -    </dd></dl>
 282.214 -<script src="style/expanders.js" type="text/javascript"> </script></body></html>
 282.215 \ No newline at end of file
   283.1 --- a/publish/examples/Forque.svg	Thu Feb 24 10:19:12 2011 +0000
   283.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   283.3 @@ -1,109 +0,0 @@
   283.4 -<?xml version="1.0" standalone="no"?>
   283.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
   283.6 -<svg xmlns="http://www.w3.org/2000/svg">
   283.7 -<defs>
   283.8 -<desc>
   283.9 -Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license.
  283.10 -</desc>
  283.11 -<font id="FORQUE" horiz-adv-x="815" >
  283.12 -<font-face  font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/>
  283.13 -<missing-glyph horiz-adv-x="389" />
  283.14 -<glyph glyph-name=".notdef" horiz-adv-x="389" />
  283.15 -<glyph glyph-name=".null" horiz-adv-x="0" />
  283.16 -<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" />
  283.17 -<glyph glyph-name="space" unicode=" "  horiz-adv-x="389" />
  283.18 -<glyph glyph-bame="tab" unicode="&#x09;" horiz-adv-x="389" />
  283.19 -<glyph glyph-bame="uni00A0" unicode="&#xa0;" horiz-adv-x="389" />
  283.20 -<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" />
  283.21 -<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  283.22 -<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" />
  283.23 -<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" />
  283.24 -<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" />
  283.25 -<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" />
  283.26 -<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" />
  283.27 -<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" />
  283.28 -<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
  283.29 -<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  283.30 -<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" />
  283.31 -<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  283.32 -<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" />
  283.33 -<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" />
  283.34 -<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" />
  283.35 -<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" />
  283.36 -<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" />
  283.37 -<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" />
  283.38 -<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" />
  283.39 -<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" />
  283.40 -<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" />
  283.41 -<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" />
  283.42 -<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" />
  283.43 -<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
  283.44 -<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" />
  283.45 -<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" />
  283.46 -<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" />
  283.47 -<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  283.48 -<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" />
  283.49 -<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  283.50 -<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" />
  283.51 -<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" />
  283.52 -<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" />
  283.53 -<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  283.54 -<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" />
  283.55 -<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" />
  283.56 -<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" />
  283.57 -<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  283.58 -<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" />
  283.59 -<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" />
  283.60 -<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" />
  283.61 -<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" />
  283.62 -<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" />
  283.63 -<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" />
  283.64 -<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  283.65 -<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  283.66 -<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" />
  283.67 -<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" />
  283.68 -<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" />
  283.69 -<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" />
  283.70 -<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  283.71 -<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" />
  283.72 -<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" />
  283.73 -<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" />
  283.74 -<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" />
  283.75 -<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" />
  283.76 -<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" />
  283.77 -<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" />
  283.78 -<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" />
  283.79 -<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" />
  283.80 -<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" />
  283.81 -<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" />
  283.82 -<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" />
  283.83 -<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" />
  283.84 -<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" />
  283.85 -<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" />
  283.86 -<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" />
  283.87 -<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" />
  283.88 -<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" />
  283.89 -<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" />
  283.90 -<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" />
  283.91 -<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" />
  283.92 -<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" />
  283.93 -<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" />
  283.94 -<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" />
  283.95 -<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" />
  283.96 -<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" />
  283.97 -<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" />
  283.98 -<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" />
  283.99 -<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" />
 283.100 -<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" />
 283.101 -<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" />
 283.102 -<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 283.103 -<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 283.104 -<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 283.105 -<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" />
 283.106 -<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 283.107 -<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" />
 283.108 -<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" />
 283.109 -<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" />
 283.110 -<glyph glyph-name="Euro" unicode="&#x20ac;" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" />
 283.111 -</font>
 283.112 -</defs></svg> 
   284.1 Binary file publish/examples/enable-background-01.png has changed
   285.1 --- a/publish/examples/enable-background-01.svg	Thu Feb 24 10:19:12 2011 +0000
   285.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   285.3 @@ -1,89 +0,0 @@
   285.4 -<?xml version="1.0" standalone="no"?>
   285.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   285.6 -  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   285.7 -<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270"
   285.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   285.9 -  <title>Example enable-background01</title>
  285.10 -  <desc>This test case shows five pictures which illustrate the rules
  285.11 -        for background image processing.</desc>
  285.12 -
  285.13 -  <defs>
  285.14 -    <filter id="ShiftBGAndBlur" 
  285.15 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  285.16 -      <desc>
  285.17 -        This filter discards the SourceGraphic, if any, and just produces
  285.18 -        a result consisting of the BackgroundImage shifted down 125 units
  285.19 -        and then blurred.
  285.20 -      </desc>
  285.21 -      <feOffset in="BackgroundImage" dx="0" dy="125" />
  285.22 -      <feGaussianBlur stdDeviation="8" />
  285.23 -    </filter>
  285.24 -    <filter id="ShiftBGAndBlur_WithSourceGraphic" 
  285.25 -            filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
  285.26 -      <desc>
  285.27 -        This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
  285.28 -        and then renders the SourceGraphic on top of the shifted/blurred background.
  285.29 -      </desc>
  285.30 -      <feOffset in="BackgroundImage" dx="0" dy="125" />
  285.31 -      <feGaussianBlur stdDeviation="8" result="blur" />
  285.32 -      <feMerge>
  285.33 -        <feMergeNode in="blur"/>
  285.34 -        <feMergeNode in="SourceGraphic"/>
  285.35 -      </feMerge>
  285.36 -    </filter>
  285.37 -  </defs>
  285.38 -
  285.39 -  <g transform="translate(0,0)">
  285.40 -    <desc>The first picture is our reference graphic without filters.</desc>
  285.41 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  285.42 -    <g opacity=".5">
  285.43 -      <circle cx="125" cy="75" r="45" fill="green"/>
  285.44 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  285.45 -    </g>
  285.46 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  285.47 -  </g>
  285.48 -
  285.49 -  <g enable-background="new" transform="translate(270,0)">
  285.50 -    <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
  285.51 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  285.52 -    <g opacity=".5">
  285.53 -      <circle cx="125" cy="75" r="45" fill="green"/>
  285.54 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  285.55 -    </g>
  285.56 -    <g filter="url(#ShiftBGAndBlur)"/>
  285.57 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  285.58 -  </g>
  285.59 -
  285.60 -  <g enable-background="new" transform="translate(540,0)">
  285.61 -    <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
  285.62 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  285.63 -    <g filter="url(#ShiftBGAndBlur)" opacity=".5">
  285.64 -      <circle cx="125" cy="75" r="45" fill="green"/>
  285.65 -      <polygon points="160,25 160,125 240,75" fill="blue"/>
  285.66 -    </g>
  285.67 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  285.68 -  </g>
  285.69 -
  285.70 -  <g enable-background="new" transform="translate(810,0)">
  285.71 -    <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
  285.72 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  285.73 -    <g opacity=".5">
  285.74 -      <circle cx="125" cy="75" r="45" fill="green"/>
  285.75 -      <polygon points="160,25 160,125 240,75" fill="blue"
  285.76 -               filter="url(#ShiftBGAndBlur)"/>
  285.77 -    </g>
  285.78 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  285.79 -  </g>
  285.80 -
  285.81 -  <g enable-background="new" transform="translate(1080,0)">
  285.82 -    <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
  285.83 -    <rect x="25" y="25" width="100" height="100" fill="red"/>
  285.84 -    <g opacity=".5">
  285.85 -      <circle cx="125" cy="75" r="45" fill="green"/>
  285.86 -      <polygon points="160,25 160,125 240,75" fill="blue"
  285.87 -               filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
  285.88 -    </g>
  285.89 -    <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
  285.90 -  </g>
  285.91 -</svg>
  285.92 -
   286.1 Binary file publish/examples/feBlend.png has changed
   287.1 --- a/publish/examples/feBlend.svg	Thu Feb 24 10:19:12 2011 +0000
   287.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   287.3 @@ -1,46 +0,0 @@
   287.4 -<?xml version="1.0"?>
   287.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   287.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   287.7 -<svg width="5cm" height="5cm" viewBox="0 0 500 500"
   287.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   287.9 -  <title>Example feBlend - Examples of feBlend modes</title>
  287.10 -  <desc>Five text strings blended into a gradient,
  287.11 -        with one text string for each of the five feBlend modes.</desc>
  287.12 -  <defs>
  287.13 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  287.14 -            x1="100" y1="0" x2="300" y2="0">
  287.15 -      <stop offset="0" stop-color="#000000" />
  287.16 -      <stop offset=".33" stop-color="#ffffff" />
  287.17 -      <stop offset=".67" stop-color="#ff0000" />
  287.18 -      <stop offset="1" stop-color="#808080" />
  287.19 -    </linearGradient>
  287.20 -    <filter id="Normal">
  287.21 -      <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/>
  287.22 -    </filter>
  287.23 -    <filter id="Multiply">
  287.24 -      <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/>
  287.25 -    </filter>
  287.26 -    <filter id="Screen">
  287.27 -      <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/>
  287.28 -    </filter>
  287.29 -    <filter id="Darken">
  287.30 -      <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/>
  287.31 -    </filter>
  287.32 -    <filter id="Lighten">
  287.33 -      <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/>
  287.34 -    </filter>
  287.35 -  </defs>
  287.36 -  <rect fill="none" stroke="blue"  
  287.37 -        x="1" y="1" width="498" height="498"/>
  287.38 -  <g enable-background="new" >
  287.39 -    <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" />
  287.40 -    <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" >
  287.41 -      <text x="50" y="90" filter="url(#Normal)" >Normal</text>
  287.42 -      <text x="50" y="180" filter="url(#Multiply)" >Multiply</text>
  287.43 -      <text x="50" y="270" filter="url(#Screen)" >Screen</text>
  287.44 -      <text x="50" y="360" filter="url(#Darken)" >Darken</text>
  287.45 -      <text x="50" y="450" filter="url(#Lighten)" >Lighten</text>
  287.46 -    </g>
  287.47 -  </g>
  287.48 -</svg>
  287.49 -
   288.1 Binary file publish/examples/feColorMatrix.png has changed
   289.1 --- a/publish/examples/feColorMatrix.svg	Thu Feb 24 10:19:12 2011 +0000
   289.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   289.3 @@ -1,55 +0,0 @@
   289.4 -<?xml version="1.0"?>
   289.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   289.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   289.7 -<svg width="8cm" height="5cm" viewBox="0 0 800 500"
   289.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   289.9 -  <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
  289.10 -  <desc>Five text strings showing the effects of feColorMatrix: 
  289.11 -        an unfiltered text string acting as a reference, 
  289.12 -        use of the feColorMatrix matrix option to convert to grayscale,
  289.13 -        use of the feColorMatrix saturate option,
  289.14 -        use of the feColorMatrix hueRotate option,
  289.15 -        and use of the feColorMatrix luminanceToAlpha option.</desc>
  289.16 -  <defs>
  289.17 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  289.18 -            x1="100" y1="0" x2="500" y2="0">
  289.19 -      <stop offset="0" stop-color="#ff00ff" />
  289.20 -      <stop offset=".33" stop-color="#88ff88" />
  289.21 -      <stop offset=".67" stop-color="#2020ff" />
  289.22 -      <stop offset="1" stop-color="#d00000" />
  289.23 -    </linearGradient>
  289.24 -    <filter id="Matrix" filterUnits="objectBoundingBox" 
  289.25 -            x="0%" y="0%" width="100%" height="100%">
  289.26 -      <feColorMatrix type="matrix" in="SourceGraphic"
  289.27 -           values=".33 .33 .33 0 0 
  289.28 -                   .33 .33 .33 0 0 
  289.29 -                   .33 .33 .33 0 0 
  289.30 -                   .33 .33 .33 0 0"/>
  289.31 -    </filter>
  289.32 -    <filter id="Saturate40" filterUnits="objectBoundingBox" 
  289.33 -            x="0%" y="0%" width="100%" height="100%">
  289.34 -      <feColorMatrix type="saturate" in="SourceGraphic" values="40%"/>
  289.35 -    </filter>
  289.36 -    <filter id="HueRotate90" filterUnits="objectBoundingBox" 
  289.37 -            x="0%" y="0%" width="100%" height="100%">
  289.38 -      <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
  289.39 -    </filter>
  289.40 -    <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 
  289.41 -            x="0%" y="0%" width="100%" height="100%">
  289.42 -      <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
  289.43 -      <feComposite in="SourceGraphic" in2="a" operator="in" />
  289.44 -    </filter>
  289.45 -  </defs>
  289.46 -  <rect fill="none" stroke="blue"  
  289.47 -        x="1" y="1" width="798" height="498"/>
  289.48 -  <g font-family="Verdana" font-size="75" 
  289.49 -            font-weight="bold" fill="url(#MyGradient)" >
  289.50 -    <rect x="100" y="0" width="500" height="20" />
  289.51 -    <text x="100" y="90">Unfiltered</text>
  289.52 -    <text x="100" y="190" filter="url(#Matrix)" >Matrix</text>
  289.53 -    <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text>
  289.54 -    <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text>
  289.55 -    <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text>
  289.56 -  </g>
  289.57 -</svg>
  289.58 -
   290.1 Binary file publish/examples/feComponentTransfer.png has changed
   291.1 --- a/publish/examples/feComponentTransfer.svg	Thu Feb 24 10:19:12 2011 +0000
   291.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   291.3 @@ -1,65 +0,0 @@
   291.4 -<?xml version="1.0"?>
   291.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   291.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   291.7 -<svg width="8cm" height="4cm" viewBox="0 0 800 400"
   291.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   291.9 -  <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
  291.10 -  <desc>Four text strings showing the effects of feComponentTransfer: 
  291.11 -        an identity function acting as a reference, 
  291.12 -        use of the feComponentTransfer table option,
  291.13 -        use of the feComponentTransfer linear option,
  291.14 -        and use of the feComponentTransfer gamma option.</desc>
  291.15 -  <defs>
  291.16 -    <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse"
  291.17 -            x1="100" y1="0" x2="600" y2="0">
  291.18 -      <stop offset="0" stop-color="#ff0000" />
  291.19 -      <stop offset=".33" stop-color="#00ff00" />
  291.20 -      <stop offset=".67" stop-color="#0000ff" />
  291.21 -      <stop offset="1" stop-color="#000000" />
  291.22 -    </linearGradient>
  291.23 -    <filter id="Identity" filterUnits="objectBoundingBox" 
  291.24 -            x="0%" y="0%" width="100%" height="100%">
  291.25 -      <feComponentTransfer>
  291.26 -        <feFuncR type="identity"/>
  291.27 -        <feFuncG type="identity"/>
  291.28 -        <feFuncB type="identity"/>
  291.29 -        <feFuncA type="identity"/>
  291.30 -      </feComponentTransfer>
  291.31 -    </filter>
  291.32 -    <filter id="Table" filterUnits="objectBoundingBox" 
  291.33 -            x="0%" y="0%" width="100%" height="100%">
  291.34 -      <feComponentTransfer>
  291.35 -        <feFuncR type="table" tableValues="0 0 1 1"/>
  291.36 -        <feFuncG type="table" tableValues="1 1 0 0"/>
  291.37 -        <feFuncB type="table" tableValues="0 1 1 0"/>
  291.38 -      </feComponentTransfer>
  291.39 -    </filter>
  291.40 -    <filter id="Linear" filterUnits="objectBoundingBox" 
  291.41 -            x="0%" y="0%" width="100%" height="100%">
  291.42 -      <feComponentTransfer>
  291.43 -        <feFuncR type="linear" slope=".5" intercept=".25"/>
  291.44 -        <feFuncG type="linear" slope=".5" intercept="0"/>
  291.45 -        <feFuncB type="linear" slope=".5" intercept=".5"/>
  291.46 -      </feComponentTransfer>
  291.47 -    </filter>
  291.48 -    <filter id="Gamma" filterUnits="objectBoundingBox" 
  291.49 -            x="0%" y="0%" width="100%" height="100%">
  291.50 -      <feComponentTransfer>
  291.51 -        <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
  291.52 -        <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
  291.53 -        <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
  291.54 -      </feComponentTransfer>
  291.55 -    </filter>
  291.56 -  </defs>
  291.57 -  <rect fill="none" stroke="blue"  
  291.58 -        x="1" y="1" width="798" height="398"/>
  291.59 -  <g font-family="Verdana" font-size="75" 
  291.60 -            font-weight="bold" fill="url(#MyGradient)" >
  291.61 -    <rect x="100" y="0" width="600" height="20" />
  291.62 -    <text x="100" y="90">Identity</text>
  291.63 -    <text x="100" y="190" filter="url(#Table)" >TableLookup</text>
  291.64 -    <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text>
  291.65 -    <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text>
  291.66 -  </g>
  291.67 -</svg>
  291.68 -
   292.1 Binary file publish/examples/feComposite.png has changed
   293.1 --- a/publish/examples/feComposite.svg	Thu Feb 24 10:19:12 2011 +0000
   293.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   293.3 @@ -1,170 +0,0 @@
   293.4 -<?xml version="1.0"?>
   293.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   293.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   293.7 -<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1"
   293.8 -     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   293.9 -  <title>Example feComposite - Examples of feComposite operations</title>
  293.10 -  <desc>Four rows of six pairs of overlapping triangles depicting
  293.11 -        the six different feComposite operators under different
  293.12 -        opacity values and different clearing of the background.</desc>
  293.13 -	<defs>
  293.14 -    <desc>Define two sets of six filters for each of the six compositing operators.
  293.15 -          The first set wipes out the background image by flooding with opaque white.
  293.16 -          The second set does not wipe out the background, with the result
  293.17 -          that the background sometimes shines through and is other cases
  293.18 -          is blended into itself (i.e., "double-counting").</desc>
  293.19 -    <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.20 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.21 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  293.22 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.23 -    </filter>
  293.24 -    <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.25 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.26 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  293.27 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.28 -    </filter>
  293.29 -    <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.30 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.31 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  293.32 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.33 -    </filter>
  293.34 -    <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.35 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.36 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  293.37 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.38 -    </filter>
  293.39 -    <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.40 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.41 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  293.42 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.43 -    </filter>
  293.44 -    <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 
  293.45 -            x="-5%" y="-5%" width="110%" height="110%">
  293.46 -      <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/>
  293.47 -      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  293.48 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  293.49 -      <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge>
  293.50 -    </filter>
  293.51 -    <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.52 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/>
  293.53 -    </filter>
  293.54 -    <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.55 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/>
  293.56 -    </filter>
  293.57 -    <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.58 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/>
  293.59 -    </filter>
  293.60 -    <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.61 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/>
  293.62 -    </filter>
  293.63 -    <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
  293.64 -      <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/>
  293.65 -    </filter>
  293.66 -    <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 
  293.67 -            x="-5%" y="-5%" width="110%" height="110%">
  293.68 -      <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp"
  293.69 -                   operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
  293.70 -    </filter>
  293.71 -    <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" />
  293.72 -    <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" />
  293.73 -    <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" />
  293.74 -    <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" />
  293.75 -    <g id="TwoBlueTriangles">
  293.76 -      <use xlink:href="#Blue100"/>
  293.77 -      <use xlink:href="#Blue50"/>
  293.78 -    </g>
  293.79 -    <g id="BlueTriangles">
  293.80 -      <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/>
  293.81 -      <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/>
  293.82 -      <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/>
  293.83 -      <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/>
  293.84 -      <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/>
  293.85 -      <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/>
  293.86 -    </g>
  293.87 -  </defs>
  293.88 -
  293.89 -  <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/>
  293.90 -  <g font-family="Verdana" font-size="40" shape-rendering="crispEdges">
  293.91 -    <desc>Render the examples using the filters that draw on top of
  293.92 -          an opaque white surface, thus obliterating the background.</desc>
  293.93 -    <g enable-background="new">
  293.94 -      <text x="15" y="75">opacity 1.0</text>
  293.95 -      <text x="15" y="115" font-size="27">(with feFlood)</text>
  293.96 -      <text x="15" y="200">opacity 0.5</text>
  293.97 -      <text x="15" y="240" font-size="27">(with feFlood)</text>
  293.98 -      <use xlink:href="#BlueTriangles"/>
  293.99 -      <g transform="translate(275,25)">
 293.100 -        <use xlink:href="#Red100" filter="url(#overFlood)" />
 293.101 -        <use xlink:href="#Red50" filter="url(#overFlood)" />
 293.102 -        <text x="5" y="275">over</text>
 293.103 -      </g>
 293.104 -      <g transform="translate(400,25)">
 293.105 -        <use xlink:href="#Red100" filter="url(#inFlood)" />
 293.106 -        <use xlink:href="#Red50" filter="url(#inFlood)" />
 293.107 -        <text x="35" y="275">in</text>
 293.108 -      </g>
 293.109 -      <g transform="translate(525,25)">
 293.110 -        <use xlink:href="#Red100" filter="url(#outFlood)" />
 293.111 -        <use xlink:href="#Red50" filter="url(#outFlood)" />
 293.112 -        <text x="15" y="275">out</text>
 293.113 -      </g>
 293.114 -      <g transform="translate(650,25)">
 293.115 -        <use xlink:href="#Red100" filter="url(#atopFlood)" />
 293.116 -        <use xlink:href="#Red50" filter="url(#atopFlood)" />
 293.117 -        <text x="10" y="275">atop</text>
 293.118 -      </g>
 293.119 -      <g transform="translate(775,25)">
 293.120 -        <use xlink:href="#Red100" filter="url(#xorFlood)" />
 293.121 -        <use xlink:href="#Red50" filter="url(#xorFlood)" />
 293.122 -        <text x="15" y="275">xor</text>
 293.123 -      </g>
 293.124 -      <g transform="translate(900,25)">
 293.125 -        <use xlink:href="#Red100" filter="url(#arithmeticFlood)" />
 293.126 -        <use xlink:href="#Red50" filter="url(#arithmeticFlood)" />
 293.127 -        <text x="-25" y="275">arithmetic</text>
 293.128 -      </g>
 293.129 -    </g>
 293.130 -    <g transform="translate(0,325)" enable-background="new">
 293.131 -    <desc>Render the examples using the filters that do not obliterate
 293.132 -          the background, thus sometimes causing the background to continue
 293.133 -          to appear in some cases, and in other cases the background
 293.134 -          image blends into itself ("double-counting").</desc>
 293.135 -      <text x="15" y="75">opacity 1.0</text>
 293.136 -      <text x="15" y="115" font-size="27">(without feFlood)</text>
 293.137 -      <text x="15" y="200">opacity 0.5</text>
 293.138 -      <text x="15" y="240" font-size="27">(without feFlood)</text>
 293.139 -      <use xlink:href="#BlueTriangles"/>
 293.140 -      <g transform="translate(275,25)">
 293.141 -        <use xlink:href="#Red100" filter="url(#overNoFlood)" />
 293.142 -        <use xlink:href="#Red50" filter="url(#overNoFlood)" />
 293.143 -        <text x="5" y="275">over</text>
 293.144 -      </g>
 293.145 -      <g transform="translate(400,25)">
 293.146 -        <use xlink:href="#Red100" filter="url(#inNoFlood)" />
 293.147 -        <use xlink:href="#Red50" filter="url(#inNoFlood)" />
 293.148 -        <text x="35" y="275">in</text>
 293.149 -      </g>
 293.150 -      <g transform="translate(525,25)">
 293.151 -        <use xlink:href="#Red100" filter="url(#outNoFlood)" />
 293.152 -        <use xlink:href="#Red50" filter="url(#outNoFlood)" />
 293.153 -        <text x="15" y="275">out</text>
 293.154 -      </g>
 293.155 -      <g transform="translate(650,25)">
 293.156 -        <use xlink:href="#Red100" filter="url(#atopNoFlood)" />
 293.157 -        <use xlink:href="#Red50" filter="url(#atopNoFlood)" />
 293.158 -        <text x="10" y="275">atop</text>
 293.159 -      </g>
 293.160 -      <g transform="translate(775,25)">
 293.161 -        <use xlink:href="#Red100" filter="url(#xorNoFlood)" />
 293.162 -        <use xlink:href="#Red50" filter="url(#xorNoFlood)" />
 293.163 -        <text x="15" y="275">xor</text>
 293.164 -      </g>
 293.165 -      <g transform="translate(900,25)">
 293.166 -        <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" />
 293.167 -        <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" />
 293.168 -        <text x="-25" y="275">arithmetic</text>
 293.169 -      </g>
 293.170 -    </g>
 293.171 -  </g>
 293.172 -</svg>
 293.173 -
   294.1 --- a/publish/examples/feDropShadow.svg	Thu Feb 24 10:19:12 2011 +0000
   294.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   294.3 @@ -1,47 +0,0 @@
   294.4 -<?xml version="1.0"?>
   294.5 -<svg viewBox="0 0 800 400"
   294.6 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   294.7 -  <title>Example feDropShadow - Examples of feDropShadow operations</title>
   294.8 -  <desc>Four text strings showing the effects of feComponentTransfer: 
   294.9 -        an identity function acting as a reference, 
  294.10 -        use of the feComponentTransfer table option,
  294.11 -        use of the feComponentTransfer linear option,
  294.12 -        and use of the feComponentTransfer gamma option.</desc>
  294.13 -  <defs>
  294.14 -    <filter id="feDropShadowEquiv1">
  294.15 -		<feGaussianBlur stdDeviation="3"/>
  294.16 -		<feOffset dx="3" dy="3" result="offsetblur"/>
  294.17 -		<feFlood flood-color="#720"/>
  294.18 -		<feComposite in2="offsetblur" operator="in"/>
  294.19 -		<feMerge>
  294.20 -			<feMergeNode/>
  294.21 -			<feMergeNode in="SourceGraphic"/>
  294.22 -		</feMerge>
  294.23 -    </filter>
  294.24 -    <filter id="feDropShadowEquiv2">
  294.25 -		<feGaussianBlur stdDeviation="2"/>
  294.26 -		<feOffset dx="2" dy="2" result="offsetblur"/>
  294.27 -		<feFlood/>
  294.28 -		<feComposite in2="offsetblur" operator="in"/>
  294.29 -		<feMerge>
  294.30 -			<feMergeNode/>
  294.31 -			<feMergeNode in="SourceGraphic"/>
  294.32 -		</feMerge>
  294.33 -    </filter>
  294.34 -	<filter id="feDropShadow1">
  294.35 -		<feDropShadow stdDeviation="3" flood-color="#720"/>
  294.36 -	</filter>
  294.37 -	<filter id="feDropShadow2">
  294.38 -		<feDropShadow/>
  294.39 -	</filter>
  294.40 -  </defs>
  294.41 -  <rect fill="none" stroke="blue"  
  294.42 -        x="1" y="1" width="798" height="398"/>
  294.43 -  <g font-family="Verdana" font-size="30">
  294.44 -    <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text>
  294.45 -    <text x="100" y="140" filter="url(#feDropShadowEquiv1)" >feDropShadow</text>
  294.46 -    <text x="100" y="190" filter="url(#feDropShadow2)">feDropShadow</text>
  294.47 -    <text x="100" y="240" filter="url(#feDropShadowEquiv2)" >feDropShadow</text>
  294.48 -  </g>
  294.49 -</svg>
  294.50 -
   295.1 Binary file publish/examples/feGaussianBlur-stdDeviation-00.png has changed
   296.1 --- a/publish/examples/feGaussianBlur-stdDeviation-00.svg	Thu Feb 24 10:19:12 2011 +0000
   296.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   296.3 @@ -1,38 +0,0 @@
   296.4 -<?xml version="1.0" encoding="UTF-8"?>
   296.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
   296.6 -  <defs>
   296.7 -    <font-face font-family="FORQUE">
   296.8 -      <font-face-src>
   296.9 -        <font-face-uri xlink:href="Forque.svg#FORQUE"/>
  296.10 -      </font-face-src>
  296.11 -    </font-face>
  296.12 -    <style>
  296.13 -      /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */
  296.14 -      text { text-anchor: middle; font: 70px FORQUE, sans-serif; }
  296.15 -      #bx { filter: url(#blurX) }
  296.16 -      #by { filter: url(#blurY) }
  296.17 -      #header { filter: url(#ds); fill: white; text-decoration: underline }
  296.18 -      #attribution { font-size: 6px }
  296.19 -      :root { background: green; fill: white }
  296.20 -    </style>
  296.21 -    <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse">
  296.22 -      <feGaussianBlur stdDeviation="4 0">
  296.23 -        <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/>
  296.24 -      </feGaussianBlur>
  296.25 -    </filter>
  296.26 -    <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse">
  296.27 -      <feGaussianBlur stdDeviation="0 4"/>
  296.28 -    </filter>
  296.29 -    <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2">
  296.30 -      <feGaussianBlur stdDeviation="3"/>
  296.31 -      <feOffset dx="2" dy="2"/>
  296.32 -      <feComposite in2="SourceGraphic" operator="in"/>
  296.33 -    </filter>
  296.34 -  </defs>
  296.35 -
  296.36 -  <text id="bx" x="40%" y="50%">BlurX</text>
  296.37 -  <text id="by" x="60%" y="70%">BlurY</text>
  296.38 -  
  296.39 -  <text id="header" y="1em" x="50%">Unidirectional blur</text>
  296.40 -  <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text>
  296.41 -</svg>
   297.1 Binary file publish/examples/feMorphology.png has changed
   298.1 --- a/publish/examples/feMorphology.svg	Thu Feb 24 10:19:12 2011 +0000
   298.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   298.3 @@ -1,37 +0,0 @@
   298.4 -<?xml version="1.0"?>
   298.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   298.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   298.7 -<svg width="5cm" height="7cm" viewBox="0 0 700 500"
   298.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   298.9 -  <title>Example feMorphology - Examples of erode and dilate</title>
  298.10 -  <desc>Five text strings drawn as outlines.
  298.11 -        The first is unfiltered. The second and third use 'erode'.
  298.12 -        The fourth and fifth use 'dilate'.</desc>
  298.13 -  <defs>
  298.14 -    <filter id="Erode3">
  298.15 -      <feMorphology operator="erode" in="SourceGraphic" radius="3" />
  298.16 -    </filter>
  298.17 -    <filter id="Erode6">
  298.18 -      <feMorphology operator="erode" in="SourceGraphic" radius="6" />
  298.19 -    </filter>
  298.20 -    <filter id="Dilate3">
  298.21 -      <feMorphology operator="dilate" in="SourceGraphic" radius="3" />
  298.22 -    </filter>
  298.23 -    <filter id="Dilate6">
  298.24 -      <feMorphology operator="dilate" in="SourceGraphic" radius="6" />
  298.25 -    </filter>
  298.26 -  </defs>
  298.27 -  <rect fill="none" stroke="blue" stroke-width="2"  
  298.28 -        x="1" y="1" width="698" height="498"/>
  298.29 -  <g enable-background="new" >
  298.30 -    <g font-family="Verdana" font-size="75" 
  298.31 -              fill="none" stroke="black" stroke-width="6" >
  298.32 -      <text x="50" y="90">Unfiltered</text>
  298.33 -      <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text>
  298.34 -      <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text>
  298.35 -      <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text>
  298.36 -      <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text>
  298.37 -    </g>
  298.38 -  </g>
  298.39 -</svg>
  298.40 -
   299.1 Binary file publish/examples/feTurbulence.png has changed
   300.1 --- a/publish/examples/feTurbulence.svg	Thu Feb 24 10:19:12 2011 +0000
   300.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   300.3 @@ -1,71 +0,0 @@
   300.4 -<?xml version="1.0"?>
   300.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   300.6 -          "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   300.7 -<svg width="450px" height="325px" viewBox="0 0 450 325"
   300.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   300.9 -  <title>Example feTurbulence - Examples of feTurbulence operations</title>
  300.10 -  <desc>Six rectangular areas showing the effects of 
  300.11 -        various parameter settings for feTurbulence.</desc>
  300.12 -  <g  font-family="Verdana" text-anchor="middle" font-size="10" >
  300.13 -    <defs>
  300.14 -      <filter id="Turb1" filterUnits="objectBoundingBox" 
  300.15 -              x="0%" y="0%" width="100%" height="100%">
  300.16 -        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
  300.17 -      </filter>
  300.18 -      <filter id="Turb2" filterUnits="objectBoundingBox" 
  300.19 -              x="0%" y="0%" width="100%" height="100%">
  300.20 -        <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
  300.21 -      </filter>
  300.22 -      <filter id="Turb3" filterUnits="objectBoundingBox" 
  300.23 -              x="0%" y="0%" width="100%" height="100%">
  300.24 -        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/>
  300.25 -      </filter>
  300.26 -      <filter id="Turb4" filterUnits="objectBoundingBox" 
  300.27 -              x="0%" y="0%" width="100%" height="100%">
  300.28 -        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/>
  300.29 -      </filter>
  300.30 -      <filter id="Turb5" filterUnits="objectBoundingBox" 
  300.31 -              x="0%" y="0%" width="100%" height="100%">
  300.32 -        <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/>
  300.33 -      </filter>
  300.34 -      <filter id="Turb6" filterUnits="objectBoundingBox" 
  300.35 -              x="0%" y="0%" width="100%" height="100%">
  300.36 -        <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/>
  300.37 -      </filter>
  300.38 -    </defs>
  300.39 -
  300.40 -    <rect x="1" y="1" width="448" height="323"
  300.41 -          fill="none" stroke="blue" stroke-width="1"  />
  300.42 -
  300.43 -    <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"  />
  300.44 -    <text x="75" y="117">type=turbulence</text>
  300.45 -    <text x="75" y="129">baseFrequency=0.05</text>
  300.46 -    <text x="75" y="141">numOctaves=2</text>
  300.47 -
  300.48 -    <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"  />
  300.49 -    <text x="225" y="117">type=turbulence</text>
  300.50 -    <text x="225" y="129">baseFrequency=0.1</text>
  300.51 -    <text x="225" y="141">numOctaves=2</text>
  300.52 -
  300.53 -    <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"  />
  300.54 -    <text x="375" y="117">type=turbulence</text>
  300.55 -    <text x="375" y="129">baseFrequency=0.05</text>
  300.56 -    <text x="375" y="141">numOctaves=8</text>
  300.57 -
  300.58 -    <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"  />
  300.59 -    <text x="75" y="272">type=fractalNoise</text>
  300.60 -    <text x="75" y="284">baseFrequency=0.1</text>
  300.61 -    <text x="75" y="296">numOctaves=4</text>
  300.62 -
  300.63 -    <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"  />
  300.64 -    <text x="225" y="272">type=fractalNoise</text>
  300.65 -    <text x="225" y="284">baseFrequency=0.4</text>
  300.66 -    <text x="225" y="296">numOctaves=4</text>
  300.67 -
  300.68 -    <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"  />
  300.69 -    <text x="375" y="272">type=fractalNoise</text>
  300.70 -    <text x="375" y="284">baseFrequency=0.1</text>
  300.71 -    <text x="375" y="296">numOctaves=1</text>
  300.72 -  </g>
  300.73 -</svg>
  300.74 -
   301.1 Binary file publish/examples/filters00.png has changed
   302.1 --- a/publish/examples/filters00.svg	Thu Feb 24 10:19:12 2011 +0000
   302.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   302.3 @@ -1,53 +0,0 @@
   302.4 -<?xml version="1.0"?>
   302.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   302.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   302.7 -<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1"
   302.8 -     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
   302.9 -  <title>Example filters00.svg - filter effects before and after</title>
  302.10 -  <desc>Picture of the before and after affects of filtering.</desc>
  302.11 -	<defs>
  302.12 -    <filter id="MyFilter">
  302.13 -			<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  302.14 -			<feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  302.15 -			<feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 
  302.16 -                          specularExponent="10" lighting-color="white"  
  302.17 -                          result="specOut">
  302.18 -				<fePointLight x="-5000" y="-10000" z="20000"/>
  302.19 -			</feSpecularLighting>
  302.20 -			<feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  302.21 -			<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  302.22 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  302.23 -			<feMerge>
  302.24 -				<feMergeNode in="offsetBlur"/>
  302.25 -				<feMergeNode in="litPaint"/>
  302.26 -			</feMerge>
  302.27 -		</filter>
  302.28 -    <g id="CircleRectTriangle">
  302.29 -      <g>
  302.30 -        <circle cx="85" cy="80" r="40" fill="yellow"  />
  302.31 -<g>
  302.32 -        <rect x="145" y="45" width="90" height="70" fill="red"  />
  302.33 -</g>
  302.34 -        <path d="M260,40 L335,80 L260,120 z" fill="#4444ff"  />
  302.35 -      </g>
  302.36 -    </g>
  302.37 -    <path id="LineWithArrow" 
  302.38 -          d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" />
  302.39 -	</defs>
  302.40 -  <g font-family="Verdana" font-size="30" >
  302.41 -    <rect x="1" y="1" width="1128" height="218" 
  302.42 -          fill="#cccccc" stroke="blue" />
  302.43 -    <use x="0" y="0" xlink:href="#CircleRectTriangle"/>
  302.44 -    <text x="20" y="180">Original source graphic</text>
  302.45 -    <use x="380" y="80" xlink:href="#LineWithArrow"/>
  302.46 -    <text x="520" y="70">Filter</text>
  302.47 -    <text x="520" y="120">Effect</text>
  302.48 -    <use x="630" y="80" xlink:href="#LineWithArrow"/>
  302.49 -    <text x="790" y="180">Result of filter effect</text>
  302.50 -  </g>
  302.51 -  <g filter="url(#MyFilter)" >
  302.52 -    <use x="750" y="0" xlink:href="#CircleRectTriangle"/>
  302.53 -  </g>
  302.54 -</svg>
  302.55 -
  302.56 -
   303.1 Binary file publish/examples/filters01-0.png has changed
   304.1 --- a/publish/examples/filters01-0.svg	Thu Feb 24 10:19:12 2011 +0000
   304.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   304.3 @@ -1,23 +0,0 @@
   304.4 -<?xml version="1.0"?>
   304.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   304.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   304.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1"
   304.8 -     xmlns="http://www.w3.org/2000/svg">
   304.9 -  <title>Example filters01-0.svg - source graphic with no filters</title>
  304.10 -  <desc>Shows what filters01.svg looks like without any
  304.11 -        filters.</desc>
  304.12 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  304.13 -  <g>
  304.14 -	  <g>
  304.15 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  304.16 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  304.17 -      <path fill="#D90000" 
  304.18 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  304.19 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  304.20 -  			<text x="52" y="76">SVG</text>
  304.21 -      </g>
  304.22 -	  </g>
  304.23 -  </g>
  304.24 -</svg>
  304.25 -
  304.26 -
   305.1 Binary file publish/examples/filters01-1.png has changed
   306.1 --- a/publish/examples/filters01-1.svg	Thu Feb 24 10:19:12 2011 +0000
   306.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   306.3 @@ -1,28 +0,0 @@
   306.4 -<?xml version="1.0"?>
   306.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   306.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   306.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   306.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   306.9 -  <title>Example filters01-1.svg - after first step</title>
  306.10 -  <desc>Shows intermediate result for filters01.svg after applying
  306.11 -        the first filter element, feGaussianBlur.</desc>
  306.12 -	<defs>
  306.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  306.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  306.15 -		</filter>
  306.16 -	</defs>
  306.17 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  306.18 -  <g filter="url(#MyFilter)" >
  306.19 -	  <g>
  306.20 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  306.21 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  306.22 -      <path fill="#D90000" 
  306.23 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  306.24 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  306.25 -  			<text x="52" y="76">SVG</text>
  306.26 -      </g>
  306.27 -	  </g>
  306.28 -  </g>
  306.29 -</svg>
  306.30 -
  306.31 -
   307.1 Binary file publish/examples/filters01-2.png has changed
   308.1 --- a/publish/examples/filters01-2.svg	Thu Feb 24 10:19:12 2011 +0000
   308.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   308.3 @@ -1,29 +0,0 @@
   308.4 -<?xml version="1.0"?>
   308.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   308.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   308.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   308.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   308.9 -  <title>Example filters01-2.svg - after second step</title>
  308.10 -  <desc>Shows intermediate result for filters01.svg after applying
  308.11 -        the second filter element, feOffset.</desc>
  308.12 -	<defs>
  308.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  308.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  308.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  308.16 -		</filter>
  308.17 -	</defs>
  308.18 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  308.19 -  <g filter="url(#MyFilter)" >
  308.20 -	  <g>
  308.21 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  308.22 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  308.23 -      <path fill="#D90000" 
  308.24 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  308.25 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  308.26 -  			<text x="52" y="76">SVG</text>
  308.27 -      </g>
  308.28 -	  </g>
  308.29 -  </g>
  308.30 -</svg>
  308.31 -
  308.32 -
   309.1 Binary file publish/examples/filters01-3.png has changed
   310.1 --- a/publish/examples/filters01-3.svg	Thu Feb 24 10:19:12 2011 +0000
   310.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   310.3 @@ -1,34 +0,0 @@
   310.4 -<?xml version="1.0"?>
   310.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   310.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   310.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   310.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   310.9 -  <title>Example filters01-3.svg - after third step</title>
  310.10 -  <desc>Shows intermediate result for filters01.svg after applying
  310.11 -        the third filter element, feSpecularLighting.</desc>
  310.12 -	<defs>
  310.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  310.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  310.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  310.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  310.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  310.18 -                          result="specOut">
  310.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  310.20 -      </feSpecularLighting>
  310.21 -		</filter>
  310.22 -	</defs>
  310.23 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  310.24 -  <g filter="url(#MyFilter)" >
  310.25 -	  <g>
  310.26 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  310.27 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  310.28 -      <path fill="#D90000" 
  310.29 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  310.30 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  310.31 -  			<text x="52" y="76">SVG</text>
  310.32 -      </g>
  310.33 -	  </g>
  310.34 -  </g>
  310.35 -</svg>
  310.36 -
  310.37 -
   311.1 Binary file publish/examples/filters01-4.png has changed
   312.1 --- a/publish/examples/filters01-4.svg	Thu Feb 24 10:19:12 2011 +0000
   312.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   312.3 @@ -1,35 +0,0 @@
   312.4 -<?xml version="1.0"?>
   312.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   312.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   312.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   312.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   312.9 -  <title>Example filters01-4.svg - after fourth step</title>
  312.10 -  <desc>Shows intermediate result for filters01.svg after applying
  312.11 -        the fourth filter element, feComposite.</desc>
  312.12 -	<defs>
  312.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  312.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  312.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  312.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  312.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  312.18 -                          result="specOut">
  312.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  312.20 -      </feSpecularLighting>
  312.21 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  312.22 -		</filter>
  312.23 -	</defs>
  312.24 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  312.25 -  <g filter="url(#MyFilter)" >
  312.26 -	  <g>
  312.27 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  312.28 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  312.29 -      <path fill="#D90000" 
  312.30 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  312.31 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  312.32 -  			<text x="52" y="76">SVG</text>
  312.33 -      </g>
  312.34 -	  </g>
  312.35 -  </g>
  312.36 -</svg>
  312.37 -
  312.38 -
   313.1 Binary file publish/examples/filters01-5.png has changed
   314.1 --- a/publish/examples/filters01-5.svg	Thu Feb 24 10:19:12 2011 +0000
   314.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   314.3 @@ -1,37 +0,0 @@
   314.4 -<?xml version="1.0"?>
   314.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   314.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   314.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   314.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   314.9 -  <title>Example filters01-5.svg - after fifth step</title>
  314.10 -  <desc>Shows intermediate result for filters01.svg after applying
  314.11 -        the fifth filter element, feComposite.</desc>
  314.12 -	<defs>
  314.13 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  314.14 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  314.15 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  314.16 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  314.17 -                          specularExponent="20" lighting-color="#bbbbbb"  
  314.18 -                          result="specOut">
  314.19 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  314.20 -      </feSpecularLighting>
  314.21 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  314.22 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  314.23 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  314.24 -    </filter>
  314.25 -	</defs>
  314.26 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  314.27 -  <g filter="url(#MyFilter)" >
  314.28 -	  <g>
  314.29 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  314.30 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  314.31 -      <path fill="#D90000" 
  314.32 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  314.33 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  314.34 -  			<text x="52" y="76">SVG</text>
  314.35 -      </g>
  314.36 -	  </g>
  314.37 -  </g>
  314.38 -</svg>
  314.39 -
  314.40 -
   315.1 Binary file publish/examples/filters01-6.png has changed
   316.1 --- a/publish/examples/filters01-6.svg	Thu Feb 24 10:19:12 2011 +0000
   316.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   316.3 @@ -1,43 +0,0 @@
   316.4 -<?xml version="1.0"?>
   316.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   316.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   316.7 -<svg width="115px" height="70px" viewBox="0 0 200 120"
   316.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   316.9 -  <title>Example filters01.svg - introducing filter effects</title>
  316.10 -  <desc>An example which combines multiple filter primitives
  316.11 -        to produce a 3D lighting effect on a graphic consisting
  316.12 -        of the string "SVG" sitting on top of oval filled in red
  316.13 -        and surrounded by an oval outlined in red.</desc>
  316.14 -  <defs>
  316.15 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  316.16 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  316.17 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  316.18 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  316.19 -                          specularExponent="20" lighting-color="#bbbbbb"  
  316.20 -                          result="specOut">
  316.21 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  316.22 -      </feSpecularLighting>
  316.23 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  316.24 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  316.25 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  316.26 -      <feMerge>
  316.27 -        <feMergeNode in="offsetBlur"/>
  316.28 -        <feMergeNode in="litPaint"/>
  316.29 -      </feMerge>
  316.30 -    </filter>
  316.31 -  </defs>
  316.32 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  316.33 -  <g filter="url(#MyFilter)" >
  316.34 -	  <g>
  316.35 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  316.36 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  316.37 -      <path fill="#D90000" 
  316.38 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  316.39 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  316.40 -        <text x="52" y="76">SVG</text>
  316.41 -      </g>
  316.42 -    </g>
  316.43 -  </g>
  316.44 -</svg>
  316.45 -
  316.46 -
   317.1 Binary file publish/examples/filters01.png has changed
   318.1 --- a/publish/examples/filters01.svg	Thu Feb 24 10:19:12 2011 +0000
   318.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   318.3 @@ -1,43 +0,0 @@
   318.4 -<?xml version="1.0"?>
   318.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
   318.6 -              "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
   318.7 -<svg width="7.5cm" height="5cm" viewBox="0 0 200 120"
   318.8 -     xmlns="http://www.w3.org/2000/svg" version="1.1">
   318.9 -  <title>Example filters01.svg - introducing filter effects</title>
  318.10 -  <desc>An example which combines multiple filter primitives
  318.11 -        to produce a 3D lighting effect on a graphic consisting
  318.12 -        of the string "SVG" sitting on top of oval filled in red
  318.13 -        and surrounded by an oval outlined in red.</desc>
  318.14 -  <defs>
  318.15 -    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
  318.16 -      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
  318.17 -      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
  318.18 -      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
  318.19 -                          specularExponent="20" lighting-color="#bbbbbb"  
  318.20 -                          result="specOut">
  318.21 -        <fePointLight x="-5000" y="-10000" z="20000"/>
  318.22 -      </feSpecularLighting>
  318.23 -      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
  318.24 -      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
  318.25 -                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
  318.26 -      <feMerge>
  318.27 -        <feMergeNode in="offsetBlur"/>
  318.28 -        <feMergeNode in="litPaint"/>
  318.29 -      </feMerge>
  318.30 -    </filter>
  318.31 -  </defs>
  318.32 -  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  318.33 -  <g filter="url(#MyFilter)" >
  318.34 -	  <g>
  318.35 -      <path fill="none" stroke="#D90000" stroke-width="10" 
  318.36 -            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
  318.37 -      <path fill="#D90000" 
  318.38 -            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
  318.39 -      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
  318.40 -        <text x="52" y="76">SVG</text>
  318.41 -      </g>
  318.42 -    </g>
  318.43 -  </g>
  318.44 -</svg>
  318.45 -
  318.46 -
   319.1 Binary file publish/examples/filtersubregion00.png has changed
   320.1 --- a/publish/examples/filtersubregion00.svg	Thu Feb 24 10:19:12 2011 +0000
   320.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   320.3 @@ -1,43 +0,0 @@
   320.4 -<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 
   320.5 -	<defs>
   320.6 -		<filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox">
   320.7 -		   <feFlood x="25%" y="25%" width="50%" height="50%"
   320.8 -					flood-color="green" flood-opacity="0.75"/>
   320.9 -		</filter>
  320.10 -		<filter id="blend" primitiveUnits="objectBoundingBox">
  320.11 -		   <feBlend x="25%" y="25%" width="50%" height="50%"
  320.12 -					in2="SourceGraphic" mode="multiply"/>
  320.13 -		</filter>
  320.14 -		<filter id="merge" primitiveUnits="objectBoundingBox">
  320.15 -		   <feMerge x="25%" y="25%" width="50%" height="50%">
  320.16 -				<feMergeNode in="SourceGraphic"/>
  320.17 -				<feMergeNode in="FillPaint"/>
  320.18 -		   </feMerge>
  320.19 -		</filter>
  320.20 -	</defs>
  320.21 -	
  320.22 -	<g fill="none" stroke="blue" stroke-width="4">
  320.23 -	   <rect width="200" height="200"/>
  320.24 -	   <line x2="200" y2="200"/>
  320.25 -	   <line x1="200" y2="200"/>
  320.26 -	</g>
  320.27 -	<circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/>
  320.28 -
  320.29 -	<g transform="translate(200 0)">
  320.30 -		<g fill="none" stroke="blue" stroke-width="4">
  320.31 -		   <rect width="200" height="200"/>
  320.32 -		   <line x2="200" y2="200"/>
  320.33 -		   <line x1="200" y2="200"/>
  320.34 -		</g>
  320.35 -		<circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/>
  320.36 -	</g>
  320.37 -	
  320.38 -	<g transform="translate(0 200)">
  320.39 -		<g fill="none" stroke="blue" stroke-width="4">
  320.40 -		   <rect width="200" height="200"/>
  320.41 -		   <line x2="200" y2="200"/>
  320.42 -		   <line x1="200" y2="200"/>
  320.43 -		</g>
  320.44 -		<circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/>
  320.45 -	</g>
  320.46 -</svg>
  320.47 \ No newline at end of file
   321.1 --- a/publish/rng/feBlend	Thu Feb 24 10:19:12 2011 +0000
   321.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   321.3 @@ -1,33 +0,0 @@
   321.4 -  <define name='svg.feBlend.content'>
   321.5 -    <zeroOrMore>
   321.6 -      <choice>
   321.7 -        <ref name='animate'/>
   321.8 -        <ref name='set'/>
   321.9 -      </choice>
  321.10 -    </zeroOrMore>
  321.11 -  </define>
  321.12 -
  321.13 -  <define name='feBlend'>
  321.14 -    <element name='feBlend'>
  321.15 -      <ref name='feBlend.attr'/>
  321.16 -      <ref name='svg.feBlend.content'/>
  321.17 -    </element>
  321.18 -  </define>
  321.19 -
  321.20 -  <define name='feBlend.attr' combine='interleave'>
  321.21 -    <ref name='svg.Core.attr'/>
  321.22 -    <ref name='svg.FilterColor.attr'/>
  321.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  321.24 -    <attribute name='in2'/>
  321.25 -    <optional>
  321.26 -      <attribute name='mode' a:defaultValue='normal'>
  321.27 -        <choice>
  321.28 -          <value>normal</value>
  321.29 -          <value>multiply</value>
  321.30 -          <value>screen</value>
  321.31 -          <value>darken</value>
  321.32 -          <value>lighten</value>
  321.33 -        </choice>
  321.34 -      </attribute>
  321.35 -    </optional>
  321.36 -  </define>
   322.1 --- a/publish/rng/feColorMatrix	Thu Feb 24 10:19:12 2011 +0000
   322.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   322.3 @@ -1,34 +0,0 @@
   322.4 -  <define name='svg.feColorMatrix.content'>
   322.5 -    <zeroOrMore>
   322.6 -      <choice>
   322.7 -        <ref name='animate'/>
   322.8 -        <ref name='set'/>
   322.9 -      </choice>
  322.10 -    </zeroOrMore>
  322.11 -  </define>
  322.12 -
  322.13 -  <define name='feColorMatrix'>
  322.14 -    <element name='feColorMatrix'>
  322.15 -      <ref name='feColorMatrix.attr'/>
  322.16 -      <ref name='svg.feColorMatrix.content'/>
  322.17 -    </element>
  322.18 -  </define>
  322.19 -
  322.20 -  <define name='feColorMatrix.attr' combine='interleave'>
  322.21 -    <ref name='svg.Core.attr'/>
  322.22 -    <ref name='svg.FilterColor.attr'/>
  322.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  322.24 -    <optional>
  322.25 -      <attribute name='type' a:defaultValue='matrix'>
  322.26 -        <choice>
  322.27 -          <value>matrix</value>
  322.28 -          <value>saturate</value>
  322.29 -          <value>hueRotate</value>
  322.30 -          <value>luminanceToAlpha</value>
  322.31 -        </choice>
  322.32 -      </attribute>
  322.33 -    </optional>
  322.34 -    <optional>
  322.35 -      <attribute name='values'/>
  322.36 -    </optional>
  322.37 -  </define>
   323.1 --- a/publish/rng/feComponentTransfer	Thu Feb 24 10:19:12 2011 +0000
   323.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   323.3 @@ -1,98 +0,0 @@
   323.4 -  <define name='svg.feComponentTransfer.content'>
   323.5 -    <optional><ref name='feFuncR'/></optional>
   323.6 -    <optional><ref name='feFuncG'/></optional>
   323.7 -    <optional><ref name='feFuncB'/></optional>
   323.8 -    <optional><ref name='feFuncA'/></optional>
   323.9 -  </define>
  323.10 -
  323.11 -  <define name='feComponentTransfer'>
  323.12 -    <element name='feComponentTransfer'>
  323.13 -      <ref name='feComponentTransfer.attr'/>
  323.14 -      <ref name='svg.feComponentTransfer.content'/>
  323.15 -    </element>
  323.16 -  </define>
  323.17 -
  323.18 -  <define name='feComponentTransfer.attr' combine='interleave'>
  323.19 -    <ref name='svg.Core.attr'/>
  323.20 -    <ref name='svg.FilterColor.attr'/>
  323.21 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  323.22 -  </define>
  323.23 -
  323.24 -
  323.25 -  <define name='SVG.feFunc.content'>
  323.26 -    <zeroOrMore>
  323.27 -      <choice>
  323.28 -        <ref name='animate'/>
  323.29 -        <ref name='set'/>
  323.30 -      </choice>
  323.31 -    </zeroOrMore>
  323.32 -  </define>
  323.33 -
  323.34 -  <define name='feFuncR'>
  323.35 -    <element name='feFuncR'>
  323.36 -      <ref name='feFunc.attr'/>
  323.37 -      <ref name='svg.feFunc.content'/>
  323.38 -    </element>
  323.39 -  </define>
  323.40 -  
  323.41 -  <define name='feFuncG'>
  323.42 -    <element name='feFuncG'>
  323.43 -      <ref name='feFunc.attr'/>
  323.44 -      <ref name='svg.feFunc.content'/>
  323.45 -    </element>
  323.46 -  </define>
  323.47 -  
  323.48 -  <define name='feFuncB'>
  323.49 -    <element name='feFuncB'>
  323.50 -      <ref name='feFunc.attr'/>
  323.51 -      <ref name='svg.feFunc.content'/>
  323.52 -    </element>
  323.53 -  </define>
  323.54 -  
  323.55 -  <define name='feFuncA'>
  323.56 -    <element name='feFuncA'>
  323.57 -      <ref name='feFunc.attr'/>
  323.58 -      <ref name='svg.feFunc.content'/>
  323.59 -    </element>
  323.60 -  </define>
  323.61 -
  323.62 -  <define name='feFunc.attr' combine='interleave'>
  323.63 -    <ref name='svg.Core.attr'/>
  323.64 -    <attribute name='type'>
  323.65 -      <choice>
  323.66 -        <value>identity</value>
  323.67 -        <value>table</value>
  323.68 -        <value>discrete</value>
  323.69 -        <value>linear</value>
  323.70 -        <value>gamma</value>
  323.71 -      </choice>
  323.72 -    </attribute>
  323.73 -    <optional>
  323.74 -      <attribute name='tableValues'/>
  323.75 -    </optional>
  323.76 -    <optional>
  323.77 -      <attribute name='slope'>
  323.78 -        <ref name='Number.datatype'/>
  323.79 -      </attribute>
  323.80 -    </optional>
  323.81 -    <optional>
  323.82 -      <attribute name='intercept'>
  323.83 -        <ref name='Number.datatype'/>
  323.84 -      </attribute>
  323.85 -    </optional>
  323.86 -    <optional>
  323.87 -      <attribute name='amplitude'>
  323.88 -        <ref name='Number.datatype'/>
  323.89 -      </attribute>
  323.90 -    </optional>
  323.91 -    <optional>
  323.92 -      <attribute name='exponent'>
  323.93 -        <ref name='Number.datatype'/>
  323.94 -      </attribute>
  323.95 -    </optional>
  323.96 -    <optional>
  323.97 -      <attribute name='offset'>
  323.98 -        <ref name='Number.datatype'/>
  323.99 -      </attribute>
 323.100 -    </optional>
 323.101 -  </define>
 323.102 \ No newline at end of file
   324.1 --- a/publish/rng/feComposite	Thu Feb 24 10:19:12 2011 +0000
   324.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   324.3 @@ -1,54 +0,0 @@
   324.4 -  <define name='svg.feComposite.content'>
   324.5 -    <zeroOrMore>
   324.6 -      <choice>
   324.7 -        <ref name='animate'/>
   324.8 -        <ref name='set'/>
   324.9 -      </choice>
  324.10 -    </zeroOrMore>
  324.11 -  </define>
  324.12 -
  324.13 -  <define name='feComposite'>
  324.14 -    <element name='feComposite'>
  324.15 -      <ref name='feComposite.attr'/>
  324.16 -      <ref name='svg.feComposite.content'/>
  324.17 -    </element>
  324.18 -  </define>
  324.19 -
  324.20 -  <define name='feComposite.attr' combine='interleave'>
  324.21 -    <ref name='svg.Core.attr'/>
  324.22 -    <ref name='svg.FilterColor.attr'/>
  324.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  324.24 -    <attribute name='in2'/>
  324.25 -    <optional>
  324.26 -      <attribute name='operator' a:defaultValue='over'>
  324.27 -        <choice>
  324.28 -          <value>over</value>
  324.29 -          <value>in</value>
  324.30 -          <value>out</value>
  324.31 -          <value>atop</value>
  324.32 -          <value>xor</value>
  324.33 -          <value>arithmetic</value>
  324.34 -        </choice>
  324.35 -      </attribute>
  324.36 -    </optional>
  324.37 -    <optional>
  324.38 -      <attribute name='k1'>
  324.39 -        <ref name='Number.datatype'/>
  324.40 -      </attribute>
  324.41 -    </optional>
  324.42 -    <optional>
  324.43 -      <attribute name='k2'>
  324.44 -        <ref name='Number.datatype'/>
  324.45 -      </attribute>
  324.46 -    </optional>
  324.47 -    <optional>
  324.48 -      <attribute name='k3'>
  324.49 -        <ref name='Number.datatype'/>
  324.50 -      </attribute>
  324.51 -    </optional>
  324.52 -    <optional>
  324.53 -      <attribute name='k4'>
  324.54 -        <ref name='Number.datatype'/>
  324.55 -      </attribute>
  324.56 -    </optional>
  324.57 -  </define>
   325.1 --- a/publish/rng/feConvolveMatrix	Thu Feb 24 10:19:12 2011 +0000
   325.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   325.3 @@ -1,64 +0,0 @@
   325.4 -  <define name='svg.feConvolveMatrix.content'>
   325.5 -    <zeroOrMore>
   325.6 -      <choice>
   325.7 -        <ref name='animate'/>
   325.8 -        <ref name='set'/>
   325.9 -      </choice>
  325.10 -    </zeroOrMore>
  325.11 -  </define>
  325.12 -
  325.13 -  <define name='feConvolveMatrix'>
  325.14 -    <element name='feConvolveMatrix'>
  325.15 -      <ref name='feConvolveMatrix.attr'/>
  325.16 -      <ref name='svg.feConvolveMatrix.content'/>
  325.17 -    </element>
  325.18 -  </define>
  325.19 -
  325.20 -  <define name='feConvolveMatrix.attr' combine='interleave'>
  325.21 -    <ref name='svg.Core.attr'/>
  325.22 -    <ref name='svg.FilterColor.attr'/>
  325.23 -    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  325.24 -    <attribute name='order'>
  325.25 -      <ref name='NumberOptionalNumber.datatype'/>
  325.26 -    </attribute>
  325.27 -    <attribute name='kernelMatrix'/>
  325.28 -    <optional>
  325.29 -      <attribute name='divisor'>
  325.30 -        <ref name='Number.datatype'/>
  325.31 -      </attribute>
  325.32 -    </optional>
  325.33 -    <optional>
  325.34 -      <attribute name='bias'>
  325.35 -        <ref name='Number.datatype'/>
  325.36 -      </attribute>
  325.37 -    </optional>
  325.38 -    <optional>
  325.39 -      <attribute name='targetX'>
  325.40 -        <ref name='Integer.datatype'/>
  325.41 -      </attribute>
  325.42 -    </optional>
  325.43 -    <optional>
  325.44 -      <attribute name='targetY'>
  325.45 -        <ref name='Integer.datatype'/>
  325.46 -      </attribute>
  325.47 -    </optional>
  325.48 -    <optional>
  325.49 -      <attribute name='edgeMode' a:defaultValue='duplicate'>
  325.50 -        <choice>
  325.51 -          <value>duplicate</value>
  325.52 -          <value>wrap</value>
  325.53 -          <value>none</value>
  325.54 -        </choice>
  325.55 -      </attribute>
  325.56 -    </optional>
  325.57 -    <optional>
  325.58 -      <attribute name='kernelUnitLength'>
  325.59 -        <ref name='NumberOptionalNumber.datatype'/>
  325.60 -      </attribute>
  325.61 -    </optional>
  325.62 -    <optional>
  325.63 -      <attribute name='preserveAlpha'>
  325.64 -        <ref name='Boolean.datatype'/>
  325.65 -      </attribute>
  325.66 -    </optional>
  325.67 -  </define>
   326.1 --- a/publish/rng/feDiffuseLighting	Thu Feb 24 10:19:12 2011 +0000
   326.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   326.3 @@ -1,49 +0,0 @@
   326.4 -  <define name='svg.feDiffuseLighting.content'>
   326.5 -    <choice>
   326.6 -      <ref name='feDistantLight'/>
   326.7 -      <ref name='fePointLight'/>
   326.8 -      <ref name='feSpotLight'/>
   326.9 -    </choice>
  326.10 -    <zeroOrMore>
  326.11 -      <choice>
  326.12 -        <ref name='animate'/>
  326.13 -        <ref name='set'/>
  326.14 -        <ref name='animateColor'/>
  326.15 -      </choice>
  326.16 -    </zeroOrMore>
  326.17 -  </define>
  326.18 -
  326.19 -  <define name='feDiffuseLighting'>
  326.20 -    <element name='feDiffuseLighting'>
  326.21 -      <ref name='attlist.feDiffuseLighting'/>
  326.22 -      <ref name='svg.feDiffuseLighting.content'/>
  326.23 -    </element>
  326.24 -  </define>
  326.25 -
  326.26 -  <define name='attlist.feDiffuseLighting' combine='interleave'>
  326.27 -    <ref name='svg.Core.attrib'/>
  326.28 -    <ref name='svg.Style.attrib'/>
  326.29 -    <ref name='svg.Color.attrib'/>
  326.30 -    <ref name='svg.FilterColor.attrib'/>
  326.31 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  326.32 -    <optional>
  326.33 -      <attribute name='lighting-color'>
  326.34 -        <ref name='SVGColor.datatype'/>
  326.35 -      </attribute>
  326.36 -    </optional>
  326.37 -    <optional>
  326.38 -      <attribute name='surfaceScale'>
  326.39 -        <ref name='Number.datatype'/>
  326.40 -      </attribute>
  326.41 -    </optional>
  326.42 -    <optional>
  326.43 -      <attribute name='diffuseConstant'>
  326.44 -        <ref name='Number.datatype'/>
  326.45 -      </attribute>
  326.46 -    </optional>
  326.47 -    <optional>
  326.48 -      <attribute name='kernelUnitLength'>
  326.49 -        <ref name='NumberOptionalNumber.datatype'/>
  326.50 -      </attribute>
  326.51 -    </optional>
  326.52 -  </define>
   327.1 --- a/publish/rng/feDisplacementMap	Thu Feb 24 10:19:12 2011 +0000
   327.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   327.3 @@ -1,47 +0,0 @@
   327.4 -  <define name='svg.feDisplacementMap.content'>
   327.5 -    <zeroOrMore>
   327.6 -      <choice>
   327.7 -        <ref name='animate'/>
   327.8 -        <ref name='set'/>
   327.9 -      </choice>
  327.10 -    </zeroOrMore>
  327.11 -  </define>
  327.12 -
  327.13 -  <define name='feDisplacementMap'>
  327.14 -    <element name='feDisplacementMap'>
  327.15 -      <ref name='attlist.feDisplacementMap'/>
  327.16 -      <ref name='svg.feDisplacementMap.content'/>
  327.17 -    </element>
  327.18 -  </define>
  327.19 -
  327.20 -  <define name='attlist.feDisplacementMap' combine='interleave'>
  327.21 -    <ref name='svg.Core.attrib'/>
  327.22 -    <ref name='svg.FilterColor.attrib'/>
  327.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  327.24 -    <attribute name='in2'/>
  327.25 -    <optional>
  327.26 -      <attribute name='scale'>
  327.27 -        <ref name='Number.datatype'/>
  327.28 -      </attribute>
  327.29 -    </optional>
  327.30 -    <optional>
  327.31 -      <attribute name='xChannelSelector' a:defaultValue='A'>
  327.32 -        <choice>
  327.33 -          <value>R</value>
  327.34 -          <value>G</value>
  327.35 -          <value>B</value>
  327.36 -          <value>A</value>
  327.37 -        </choice>
  327.38 -      </attribute>
  327.39 -    </optional>
  327.40 -    <optional>
  327.41 -      <attribute name='yChannelSelector' a:defaultValue='A'>
  327.42 -        <choice>
  327.43 -          <value>R</value>
  327.44 -          <value>G</value>
  327.45 -          <value>B</value>
  327.46 -          <value>A</value>
  327.47 -        </choice>
  327.48 -      </attribute>
  327.49 -    </optional>
  327.50 -  </define>
   328.1 --- a/publish/rng/feDistantLight	Thu Feb 24 10:19:12 2011 +0000
   328.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   328.3 @@ -1,29 +0,0 @@
   328.4 -  <define name='svg.feDistantLight.content'>
   328.5 -    <zeroOrMore>
   328.6 -      <choice>
   328.7 -        <ref name='animate'/>
   328.8 -        <ref name='set'/>
   328.9 -      </choice>
  328.10 -    </zeroOrMore>
  328.11 -  </define>
  328.12 -
  328.13 -  <define name='feDistantLight'>
  328.14 -    <element name='feDistantLight'>
  328.15 -      <ref name='feDistantLight.attr'/>
  328.16 -      <ref name='svg.feDistantLight.content'/>
  328.17 -    </element>
  328.18 -  </define>
  328.19 -
  328.20 -  <define name='feDistantLight.attr' combine='interleave'>
  328.21 -    <ref name='svg.Core.attr'/>
  328.22 -    <optional>
  328.23 -      <attribute name='azimuth'>
  328.24 -        <ref name='Number.datatype'/>
  328.25 -      </attribute>
  328.26 -    </optional>
  328.27 -    <optional>
  328.28 -      <attribute name='elevation'>
  328.29 -        <ref name='Number.datatype'/>
  328.30 -      </attribute>
  328.31 -    </optional>
  328.32 -  </define>
   329.1 --- a/publish/rng/feDropShadow	Thu Feb 24 10:19:12 2011 +0000
   329.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   329.3 @@ -1,37 +0,0 @@
   329.4 -  <define name='svg.feDropShadow.content'>
   329.5 -    <zeroOrMore>
   329.6 -      <choice>
   329.7 -        <ref name='animate'/>
   329.8 -        <ref name='set'/>
   329.9 -      </choice>
  329.10 -    </zeroOrMore>
  329.11 -  </define>
  329.12 -
  329.13 -  <define name='feDropShadow'>
  329.14 -    <element name='feDropShadow'>
  329.15 -      <ref name='attlist.feDropShadow'/>
  329.16 -      <ref name='svg.feDropShadow.content'/>
  329.17 -    </element>
  329.18 -  </define>
  329.19 -
  329.20 -  <define name='attlist.feDropShadow' combine='interleave'>
  329.21 -    <ref name='svg.Core.attrib'/>
  329.22 -    <ref name='svg.FilterColor.attrib'/>
  329.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  329.24 -	
  329.25 -	<optional>
  329.26 -      <attribute name='dx'>
  329.27 -        <ref name='Coordinate.datatype'/>
  329.28 -      </attribute>
  329.29 -    </optional>
  329.30 -    <optional>
  329.31 -      <attribute name='dy'>
  329.32 -        <ref name='Coordinate.datatype'/>
  329.33 -      </attribute>
  329.34 -    </optional>
  329.35 -    <optional>
  329.36 -      <attribute name='stdDeviation'>
  329.37 -        <ref name='NumberOptionalNumber.datatype'/>
  329.38 -      </attribute>
  329.39 -    </optional>
  329.40 -  </define>
   330.1 --- a/publish/rng/feFlood	Thu Feb 24 10:19:12 2011 +0000
   330.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   330.3 @@ -1,34 +0,0 @@
   330.4 -  <define name='svg.feFlood.content'>
   330.5 -    <zeroOrMore>
   330.6 -      <choice>
   330.7 -        <ref name='animate'/>
   330.8 -        <ref name='set'/>
   330.9 -        <ref name='animateColor'/>
  330.10 -      </choice>
  330.11 -    </zeroOrMore>
  330.12 -  </define>
  330.13 -
  330.14 -  <define name='feFlood'>
  330.15 -    <element name='feFlood'>
  330.16 -      <ref name='attlist.feFlood'/>
  330.17 -      <ref name='svg.feFlood.content'/>
  330.18 -    </element>
  330.19 -  </define>
  330.20 -
  330.21 -  <define name='attlist.feFlood' combine='interleave'>
  330.22 -    <ref name='svg.Core.attrib'/>
  330.23 -    <ref name='svg.Style.attrib'/>
  330.24 -    <ref name='svg.Color.attrib'/>
  330.25 -    <ref name='svg.FilterColor.attrib'/>
  330.26 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  330.27 -    <optional>
  330.28 -      <attribute name='flood-color'>
  330.29 -        <ref name='SVGColor.datatype'/>
  330.30 -      </attribute>
  330.31 -    </optional>
  330.32 -    <optional>
  330.33 -      <attribute name='flood-opacity'>
  330.34 -        <ref name='OpacityValue.datatype'/>
  330.35 -      </attribute>
  330.36 -    </optional>
  330.37 -  </define>
   331.1 --- a/publish/rng/feGaussianBlur	Thu Feb 24 10:19:12 2011 +0000
   331.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   331.3 @@ -1,27 +0,0 @@
   331.4 -  <define name='svg.feGaussianBlur.content'>
   331.5 -    <zeroOrMore>
   331.6 -      <choice>
   331.7 -        <ref name='animate'/>
   331.8 -        <ref name='set'/>
   331.9 -      </choice>
  331.10 -    </zeroOrMore>
  331.11 -  </define>
  331.12 -
  331.13 -  <define name='feGaussianBlur'>
  331.14 -    <element name='feGaussianBlur'>
  331.15 -      <ref name='attlist.feGaussianBlur'/>
  331.16 -      <ref name='svg.feGaussianBlur.content'/>
  331.17 -    </element>
  331.18 -  </define>
  331.19 -
  331.20 -  <define name='attlist.feGaussianBlur' combine='interleave'>
  331.21 -    <ref name='svg.Core.attrib'/>
  331.22 -    <ref name='svg.FilterColor.attrib'/>
  331.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  331.24 -    <optional>
  331.25 -      <attribute name='stdDeviation'>
  331.26 -        <ref name='NumberOptionalNumber.datatype'/>
  331.27 -      </attribute>
  331.28 -    </optional>
  331.29 -  </define>
  331.30 -  
  331.31 \ No newline at end of file
   332.1 --- a/publish/rng/feImage	Thu Feb 24 10:19:12 2011 +0000
   332.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   332.3 @@ -1,32 +0,0 @@
   332.4 -  <define name='SVG.feImage.content'>
   332.5 -    <zeroOrMore>
   332.6 -      <choice>
   332.7 -        <ref name='animate'/>
   332.8 -        <ref name='set'/>
   332.9 -        <ref name='animateTransform'/>
  332.10 -      </choice>
  332.11 -    </zeroOrMore>
  332.12 -  </define>
  332.13 -
  332.14 -  <define name='feImage'>
  332.15 -    <element name='feImage'>
  332.16 -      <ref name='attlist.feImage'/>
  332.17 -      <ref name='svg.feImage.content'/>
  332.18 -    </element>
  332.19 -  </define>
  332.20 -
  332.21 -  <define name='attlist.feImage' combine='interleave'>
  332.22 -    <ref name='svg.Core.attrib'/>
  332.23 -    <ref name='svg.Style.attrib'/>
  332.24 -    <ref name='svg.Presentation.attrib'/>
  332.25 -    <ref name='svg.FilterPrimitive.attrib'/>
  332.26 -    <ref name='svg.XLinkEmbed.attrib'/>
  332.27 -    <ref name='svg.External.attrib'/>
  332.28 -    <ref name='svg.Transition.attrib'/>
  332.29 -    <ref name='svg.ShadowInherit.attrib'/>
  332.30 -    <optional>
  332.31 -      <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'>
  332.32 -        <ref name='PreserveAspectRatioSpec.datatype'/>
  332.33 -      </attribute>
  332.34 -    </optional>
  332.35 -  </define>
   333.1 --- a/publish/rng/feMerge	Thu Feb 24 10:19:12 2011 +0000
   333.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   333.3 @@ -1,41 +0,0 @@
   333.4 -  <define name='svg.feMerge.content'>
   333.5 -    <zeroOrMore>
   333.6 -      <ref name='feMergeNode'/>
   333.7 -    </zeroOrMore>
   333.8 -  </define>
   333.9 -
  333.10 -  <define name='feMerge'>
  333.11 -    <element name='feMerge'>
  333.12 -      <ref name='attlist.feMerge'/>
  333.13 -      <ref name='svg.feMerge.content'/>
  333.14 -    </element>
  333.15 -  </define>
  333.16 -
  333.17 -  <define name='attlist.feMerge' combine='interleave'>
  333.18 -    <ref name='svg.Core.attrib'/>
  333.19 -    <ref name='svg.FilterColor.attrib'/>
  333.20 -    <ref name='svg.FilterPrimitive.attrib'/>
  333.21 -  </define>
  333.22 -
  333.23 -  <define name='svg.feMergeNode.content'>
  333.24 -    <zeroOrMore>
  333.25 -      <choice>
  333.26 -        <ref name='animate'/>
  333.27 -        <ref name='set'/>
  333.28 -      </choice>
  333.29 -    </zeroOrMore>
  333.30 -  </define>
  333.31 -
  333.32 -  <define name='feMergeNode'>
  333.33 -    <element name='feMergeNode'>
  333.34 -      <ref name='attlist.feMergeNode'/>
  333.35 -      <ref name='svg.feMergeNode.content'/>
  333.36 -    </element>
  333.37 -  </define>
  333.38 -
  333.39 -  <define name='attlist.feMergeNode' combine='interleave'>
  333.40 -    <ref name='svg.Core.attrib'/>
  333.41 -    <optional>
  333.42 -      <attribute name='in'/>
  333.43 -    </optional>
  333.44 -  </define>
   334.1 --- a/publish/rng/feMorphology	Thu Feb 24 10:19:12 2011 +0000
   334.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   334.3 @@ -1,34 +0,0 @@
   334.4 -  <define name='svg.feMorphology.content'>
   334.5 -    <zeroOrMore>
   334.6 -      <choice>
   334.7 -        <ref name='animate'/>
   334.8 -        <ref name='set'/>
   334.9 -      </choice>
  334.10 -    </zeroOrMore>
  334.11 -  </define>
  334.12 -
  334.13 -  <define name='feMorphology'>
  334.14 -    <element name='feMorphology'>
  334.15 -      <ref name='attlist.feMorphology'/>
  334.16 -      <ref name='svg.feMorphology.content'/>
  334.17 -    </element>
  334.18 -  </define>
  334.19 -
  334.20 -  <define name='attlist.feMorphology' combine='interleave'>
  334.21 -    <ref name='svg.Core.attrib'/>
  334.22 -    <ref name='svg.FilterColor.attrib'/>
  334.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  334.24 -    <optional>
  334.25 -      <attribute name='operator' a:defaultValue='erode'>
  334.26 -        <choice>
  334.27 -          <value>erode</value>
  334.28 -          <value>dilate</value>
  334.29 -        </choice>
  334.30 -      </attribute>
  334.31 -    </optional>
  334.32 -    <optional>
  334.33 -      <attribute name='radius'>
  334.34 -        <ref name='NumberOptionalNumber.datatype'/>
  334.35 -      </attribute>
  334.36 -    </optional>
  334.37 -  </define>
   335.1 --- a/publish/rng/feOffset	Thu Feb 24 10:19:12 2011 +0000
   335.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   335.3 @@ -1,21 +0,0 @@
   335.4 -  <define name='svg.feOffset.content'>
   335.5 -    <zeroOrMore>
   335.6 -      <choice>
   335.7 -        <ref name='animate'/>
   335.8 -        <ref name='set'/>
   335.9 -      </choice>
  335.10 -    </zeroOrMore>
  335.11 -  </define>
  335.12 -
  335.13 -  <define name='feOffset'>
  335.14 -    <element name='feOffset'>
  335.15 -      <ref name='attlist.feOffset'/>
  335.16 -      <ref name='svg.feOffset.content'/>
  335.17 -    </element>
  335.18 -  </define>
  335.19 -
  335.20 -  <define name='attlist.feOffset' combine='interleave'>
  335.21 -    <ref name='svg.Core.attrib'/>
  335.22 -    <ref name='svg.FilterColor.attrib'/>
  335.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  335.24 -  </define>
   336.1 --- a/publish/rng/fePointLight	Thu Feb 24 10:19:12 2011 +0000
   336.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   336.3 @@ -1,34 +0,0 @@
   336.4 -  <define name='svg.fePointLight.content'>
   336.5 -    <zeroOrMore>
   336.6 -      <choice>
   336.7 -        <ref name='animate'/>
   336.8 -        <ref name='set'/>
   336.9 -      </choice>
  336.10 -    </zeroOrMore>
  336.11 -  </define>
  336.12 -
  336.13 -  <define name='fePointLight'>
  336.14 -    <element name='fePointLight'>
  336.15 -      <ref name='fePointLight.attr'/>
  336.16 -      <ref name='svg.fePointLight.content'/>
  336.17 -    </element>
  336.18 -  </define>
  336.19 -
  336.20 -  <define name='fePointLight.attr' combine='interleave'>
  336.21 -    <ref name='svg.Core.attr'/>
  336.22 -    <optional>
  336.23 -      <attribute name='x'>
  336.24 -        <ref name='Number.datatype'/>
  336.25 -      </attribute>
  336.26 -    </optional>
  336.27 -    <optional>
  336.28 -      <attribute name='y'>
  336.29 -        <ref name='Number.datatype'/>
  336.30 -      </attribute>
  336.31 -    </optional>
  336.32 -    <optional>
  336.33 -      <attribute name='z'>
  336.34 -        <ref name='Number.datatype'/>
  336.35 -      </attribute>
  336.36 -    </optional>
  336.37 -  </define>
   337.1 --- a/publish/rng/feSpecularLighting	Thu Feb 24 10:19:12 2011 +0000
   337.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   337.3 @@ -1,54 +0,0 @@
   337.4 -  <define name='svg.feSpecularLighting.content'>
   337.5 -    <choice>
   337.6 -      <ref name='feDistantLight'/>
   337.7 -      <ref name='fePointLight'/>
   337.8 -      <ref name='feSpotLight'/>
   337.9 -    </choice>
  337.10 -    <zeroOrMore>
  337.11 -      <choice>
  337.12 -        <ref name='animate'/>
  337.13 -        <ref name='set'/>
  337.14 -        <ref name='animateColor'/>
  337.15 -      </choice>
  337.16 -    </zeroOrMore>
  337.17 -  </define>
  337.18 -
  337.19 -  <define name='feSpecularLighting'>
  337.20 -    <element name='feSpecularLighting'>
  337.21 -      <ref name='attlist.feSpecularLighting'/>
  337.22 -      <ref name='svg.feSpecularLighting.content'/>
  337.23 -    </element>
  337.24 -  </define>
  337.25 -
  337.26 -  <define name='attlist.feSpecularLighting' combine='interleave'>
  337.27 -    <ref name='svg.Core.attrib'/>
  337.28 -    <ref name='svg.Style.attrib'/>
  337.29 -    <ref name='svg.Color.attrib'/>
  337.30 -    <ref name='svg.FilterColor.attrib'/>
  337.31 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  337.32 -    <optional>
  337.33 -      <attribute name='lighting-color'>
  337.34 -        <ref name='SVGColor.datatype'/>
  337.35 -      </attribute>
  337.36 -    </optional>
  337.37 -    <optional>
  337.38 -      <attribute name='surfaceScale'>
  337.39 -        <ref name='Number.datatype'/>
  337.40 -      </attribute>
  337.41 -    </optional>
  337.42 -    <optional>
  337.43 -      <attribute name='specularConstant'>
  337.44 -        <ref name='Number.datatype'/>
  337.45 -      </attribute>
  337.46 -    </optional>
  337.47 -    <optional>
  337.48 -      <attribute name='specularExponent'>
  337.49 -        <ref name='Number.datatype'/>
  337.50 -      </attribute>
  337.51 -    </optional>
  337.52 -    <optional>
  337.53 -      <attribute name='kernelUnitLength'>
  337.54 -        <ref name='NumberOptionalNumber.datatype'/>
  337.55 -      </attribute>
  337.56 -    </optional>
  337.57 -  </define>
   338.1 --- a/publish/rng/feSpotLight	Thu Feb 24 10:19:12 2011 +0000
   338.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   338.3 @@ -1,59 +0,0 @@
   338.4 -<define name='svg.feSpotLight.content'>
   338.5 -    <zeroOrMore>
   338.6 -      <choice>
   338.7 -        <ref name='animate'/>
   338.8 -        <ref name='set'/>
   338.9 -      </choice>
  338.10 -    </zeroOrMore>
  338.11 -  </define>
  338.12 -
  338.13 -  <define name='feSpotLight'>
  338.14 -    <element name='feSpotLight'>
  338.15 -      <ref name='feSpotLight.attr'/>
  338.16 -      <ref name='svg.feSpotLight.content'/>
  338.17 -    </element>
  338.18 -  </define>
  338.19 -  
  338.20 -  <define name='feSpotLight.attr' combine='interleave'>
  338.21 -    <ref name='svg.Core.attr'/>
  338.22 -    <optional>
  338.23 -      <attribute name='x'>
  338.24 -        <ref name='Number.datatype'/>
  338.25 -      </attribute>
  338.26 -    </optional>
  338.27 -    <optional>
  338.28 -      <attribute name='y'>
  338.29 -        <ref name='Number.datatype'/>
  338.30 -      </attribute>
  338.31 -    </optional>
  338.32 -    <optional>
  338.33 -      <attribute name='z'>
  338.34 -        <ref name='Number.datatype'/>
  338.35 -      </attribute>
  338.36 -    </optional>
  338.37 -    <optional>
  338.38 -      <attribute name='pointsAtX'>
  338.39 -        <ref name='Number.datatype'/>
  338.40 -      </attribute>
  338.41 -    </optional>
  338.42 -    <optional>
  338.43 -      <attribute name='pointsAtY'>
  338.44 -        <ref name='Number.datatype'/>
  338.45 -      </attribute>
  338.46 -    </optional>
  338.47 -    <optional>
  338.48 -      <attribute name='pointsAtZ'>
  338.49 -        <ref name='Number.datatype'/>
  338.50 -      </attribute>
  338.51 -    </optional>
  338.52 -    <optional>
  338.53 -      <attribute name='specularExponent'>
  338.54 -        <ref name='Number.datatype'/>
  338.55 -      </attribute>
  338.56 -    </optional>
  338.57 -    <optional>
  338.58 -      <attribute name='limitingConeAngle'>
  338.59 -        <ref name='Number.datatype'/>
  338.60 -      </attribute>
  338.61 -    </optional>
  338.62 -  </define>
   339.1 --- a/publish/rng/feTile	Thu Feb 24 10:19:12 2011 +0000
   339.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   339.3 @@ -1,21 +0,0 @@
   339.4 -  <define name='svg.feTile.content'>
   339.5 -    <zeroOrMore>
   339.6 -      <choice>
   339.7 -        <ref name='animate'/>
   339.8 -        <ref name='set'/>
   339.9 -      </choice>
  339.10 -    </zeroOrMore>
  339.11 -  </define>
  339.12 -
  339.13 -  <define name='feTile'>
  339.14 -    <element name='feTile'>
  339.15 -      <ref name='attlist.feTile'/>
  339.16 -      <ref name='svg.feTile.content'/>
  339.17 -    </element>
  339.18 -  </define>
  339.19 -
  339.20 -  <define name='attlist.feTile' combine='interleave'>
  339.21 -    <ref name='svg.Core.attrib'/>
  339.22 -    <ref name='svg.FilterColor.attrib'/>
  339.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  339.24 -  </define>
   340.1 --- a/publish/rng/feTurbulence	Thu Feb 24 10:19:12 2011 +0000
   340.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   340.3 @@ -1,52 +0,0 @@
   340.4 -  <define name='svg.feTurbulence.content'>
   340.5 -    <zeroOrMore>
   340.6 -      <choice>
   340.7 -        <ref name='animate'/>
   340.8 -        <ref name='set'/>
   340.9 -      </choice>
  340.10 -    </zeroOrMore>
  340.11 -  </define>
  340.12 -
  340.13 -  <define name='feTurbulence'>
  340.14 -    <element name='feTurbulence'>
  340.15 -      <ref name='attlist.feTurbulence'/>
  340.16 -      <ref name='svg.feTurbulence.content'/>
  340.17 -    </element>
  340.18 -  </define>
  340.19 -
  340.20 -  <define name='attlist.feTurbulence' combine='interleave'>
  340.21 -    <ref name='svg.Core.attrib'/>
  340.22 -    <ref name='svg.FilterColor.attrib'/>
  340.23 -    <ref name='svg.FilterPrimitive.attrib'/>
  340.24 -    <optional>
  340.25 -      <attribute name='baseFrequency'>
  340.26 -        <ref name='NumberOptionalNumber.datatype'/>
  340.27 -      </attribute>
  340.28 -    </optional>
  340.29 -    <optional>
  340.30 -      <attribute name='numOctaves'>
  340.31 -        <ref name='Integer.datatype'/>
  340.32 -      </attribute>
  340.33 -    </optional>
  340.34 -    <optional>
  340.35 -      <attribute name='seed'>
  340.36 -        <ref name='Number.datatype'/>
  340.37 -      </attribute>
  340.38 -    </optional>
  340.39 -    <optional>
  340.40 -      <attribute name='stitchTiles' a:defaultValue='noStitch'>
  340.41 -        <choice>
  340.42 -          <value>stitch</value>
  340.43 -          <value>noStitch</value>
  340.44 -        </choice>
  340.45 -      </attribute>
  340.46 -    </optional>
  340.47 -    <optional>
  340.48 -      <attribute name='type' a:defaultValue='turbulence'>
  340.49 -        <choice>
  340.50 -          <value>fractalNoise</value>
  340.51 -          <value>turbulence</value>
  340.52 -        </choice>
  340.53 -      </attribute>
  340.54 -    </optional>
  340.55 -  </define>
   341.1 --- a/publish/rng/feUnsharpMask	Thu Feb 24 10:19:12 2011 +0000
   341.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   341.3 @@ -1,33 +0,0 @@
   341.4 -  <define name='svg.feUnsharpMask.content'>
   341.5 -    <zeroOrMore>
   341.6 -      <choice>
   341.7 -        <ref name='animate'/>
   341.8 -        <ref name='set'/>
   341.9 -      </choice>
  341.10 -    </zeroOrMore>
  341.11 -  </define>
  341.12 -
  341.13 -  <define name='feUnsharpMask'>
  341.14 -    <element name='feUnsharpMask'>
  341.15 -      <ref name='attlist.feUnsharpMask'/>
  341.16 -      <ref name='svg.feUnsharpMask.content'/>
  341.17 -    </element>
  341.18 -  </define>
  341.19 -
  341.20 -  <define name='attlist.feUnsharpMask' combine='interleave'>
  341.21 -    <ref name='svg.Core.attrib'/>
  341.22 -    <ref name='svg.FilterColor.attrib'/>
  341.23 -    <ref name='svg.FilterPrimitiveWithIn.attrib'/>
  341.24 -    <optional>
  341.25 -      <attribute name='amount'>
  341.26 -        <ref name='Number.datatype'/>
  341.27 -      </attribute>
  341.28 -      <attribute name='radius'>
  341.29 -        <ref name='NumberOptionalNumber.datatype'/>
  341.30 -      </attribute>
  341.31 -      <attribute name='threshold'>
  341.32 -        <ref name='Number.datatype'/>
  341.33 -      </attribute>
  341.34 -    </optional>
  341.35 -  </define>
  341.36 -  
   342.1 --- a/publish/rng/filter	Thu Feb 24 10:19:12 2011 +0000
   342.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   342.3 @@ -1,91 +0,0 @@
   342.4 -  <define name='filter'>
   342.5 -    <element name='filter'>
   342.6 -      <ref name='filter.AT'/>
   342.7 -      <ref name='svg.filter.content'/>
   342.8 -    </element>
   342.9 -  </define>
  342.10 -
  342.11 -  <define name='filter.AT' combine='interleave'>
  342.12 -    <ref name='svg.Core.attr'/>
  342.13 -    <ref name='svg.Style.attr'/>
  342.14 -    <ref name='svg.Presentation.attrib'/>
  342.15 -    <ref name='svg.XLink.attrib'/>
  342.16 -    <ref name='svg.External.attrib'/>
  342.17 -    <optional>
  342.18 -      <attribute name='x'>
  342.19 -        <ref name='Coordinate.datatype'/>
  342.20 -      </attribute>
  342.21 -    </optional>
  342.22 -    <optional>
  342.23 -      <attribute name='y'>
  342.24 -        <ref name='Coordinate.datatype'/>
  342.25 -      </attribute>
  342.26 -    </optional>
  342.27 -    <optional>
  342.28 -      <attribute name='width'>
  342.29 -        <ref name='Length.datatype'/>
  342.30 -      </attribute>
  342.31 -    </optional>
  342.32 -    <optional>
  342.33 -      <attribute name='height'>
  342.34 -        <ref name='Length.datatype'/>
  342.35 -      </attribute>
  342.36 -    </optional>
  342.37 -    <optional>
  342.38 -      <attribute name='mx'>
  342.39 -        <ref name='Coordinate.datatype'/>
  342.40 -      </attribute>
  342.41 -    </optional>
  342.42 -    <optional>
  342.43 -      <attribute name='my'>
  342.44 -        <ref name='Coordinate.datatype'/>
  342.45 -      </attribute>
  342.46 -    </optional>
  342.47 -    <optional>
  342.48 -      <attribute name='mw'>
  342.49 -        <ref name='Length.datatype'/>
  342.50 -      </attribute>
  342.51 -    </optional>
  342.52 -    <optional>
  342.53 -      <attribute name='mh'>
  342.54 -        <ref name='Length.datatype'/>
  342.55 -      </attribute>
  342.56 -    </optional>
  342.57 -    <optional>
  342.58 -      <attribute name='filterRes'>
  342.59 -        <ref name='NumberOptionalNumber.datatype'/>
  342.60 -      </attribute>
  342.61 -    </optional>
  342.62 -    <optional>
  342.63 -      <attribute name='filterUnits'>
  342.64 -        <choice>
  342.65 -          <value>userSpaceOnUse</value>
  342.66 -          <value>objectBoundingBox</value>
  342.67 -        </choice>
  342.68 -      </attribute>
  342.69 -    </optional>
  342.70 -    <optional>
  342.71 -      <attribute name='primitiveUnits'>
  342.72 -        <choice>
  342.73 -          <value>userSpaceOnUse</value>
  342.74 -          <value>objectBoundingBox</value>
  342.75 -        </choice>
  342.76 -      </attribute>
  342.77 -    </optional>
  342.78 -    <optional>
  342.79 -      <attribute name='filterMarginsUnits'>
  342.80 -        <choice>
  342.81 -          <value>userSpaceOnUse</value>
  342.82 -          <value>objectBoundingBox</value>
  342.83 -        </choice>
  342.84 -      </attribute>
  342.85 -    </optional>	
  342.86 -    <optional>
  342.87 -      <attribute name='primitiveMarginsUnits'>
  342.88 -        <choice>
  342.89 -          <value>userSpaceOnUse</value>
  342.90 -          <value>objectBoundingBox</value>
  342.91 -        </choice>
  342.92 -      </attribute>
  342.93 -    </optional>	
  342.94 -  </define>
   343.1 --- a/publish/rng/filter-primitive-attr	Thu Feb 24 10:19:12 2011 +0000
   343.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   343.3 @@ -1,52 +0,0 @@
   343.4 -  <define name='svg.FilterPrimitive.attrib'>
   343.5 -    <optional>
   343.6 -      <attribute name='x'>
   343.7 -        <ref name='Coordinate.datatype'/>
   343.8 -      </attribute>
   343.9 -    </optional>
  343.10 -    <optional>
  343.11 -      <attribute name='y'>
  343.12 -        <ref name='Coordinate.datatype'/>
  343.13 -      </attribute>
  343.14 -    </optional>
  343.15 -    <optional>
  343.16 -      <attribute name='width'>
  343.17 -        <ref name='Length.datatype'/>
  343.18 -      </attribute>
  343.19 -    </optional>
  343.20 -    <optional>
  343.21 -      <attribute name='height'>
  343.22 -        <ref name='Length.datatype'/>
  343.23 -      </attribute>
  343.24 -    </optional>
  343.25 -    <optional>
  343.26 -      <attribute name='mx'>
  343.27 -        <ref name='Coordinate.datatype'/>
  343.28 -      </attribute>
  343.29 -    </optional>
  343.30 -    <optional>
  343.31 -      <attribute name='my'>
  343.32 -        <ref name='Coordinate.datatype'/>
  343.33 -      </attribute>
  343.34 -    </optional>
  343.35 -    <optional>
  343.36 -      <attribute name='mw'>
  343.37 -        <ref name='Length.datatype'/>
  343.38 -      </attribute>
  343.39 -    </optional>
  343.40 -    <optional>
  343.41 -      <attribute name='mh'>
  343.42 -        <ref name='Length.datatype'/>
  343.43 -      </attribute>
  343.44 -    </optional>
  343.45 -    <optional>
  343.46 -      <attribute name='result'/>
  343.47 -    </optional>
  343.48 -  </define>
  343.49 -  
  343.50 -  <define name='svg.FilterPrimitiveWithIn.attrib'>
  343.51 -    <ref name='svg.FilterPrimitive.attrib'/>
  343.52 -    <optional>
  343.53 -      <attribute name='in'/>
  343.54 -    </optional>
  343.55 -  </define>
   344.1 --- a/publish/style/W3C-WD.css	Thu Feb 24 10:19:12 2011 +0000
   344.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   344.3 @@ -1,89 +0,0 @@
   344.4 -
   344.5 -/* Style for a public "Working Draft" */
   344.6 -
   344.7 -/*
   344.8 -   Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved.
   344.9 -   The following software licensing rules apply:
  344.10 -   http://www.w3.org/Consortium/Legal/copyright-software */
  344.11 -
  344.12 -/* $Id$ */
  344.13 -
  344.14 -
  344.15 -body {
  344.16 -  padding: 2em 1em 2em 70px;
  344.17 -  margin: 0;
  344.18 -  font-family: sans-serif;
  344.19 -  color: black;
  344.20 -  background: white;
  344.21 -  background-position: top left;
  344.22 -  background-attachment: fixed;
  344.23 -  background-repeat: no-repeat;
  344.24 -}
  344.25 -:link { color: #00C; background: transparent }
  344.26 -:visited { color: #609; background: transparent }
  344.27 -a:active { color: #C00; background: transparent }
  344.28 -
  344.29 -a:link img, a:visited img { border-style: none } /* no border on img links */
  344.30 -
  344.31 -a img { color: white; }        /* trick to hide the border in Netscape 4 */
  344.32 -@media all {                   /* hide the next rule from Netscape 4 */
  344.33 -  a img { color: inherit; }    /* undo the color change above */
  344.34 -}
  344.35 -
  344.36 -th, td { /* ns 4 */
  344.37 -  font-family: sans-serif;
  344.38 -}
  344.39 -
  344.40 -h1, h2, h3, h4, h5, h6 { text-align: left }
  344.41 -/* background should be transparent, but WebTV has a bug */
  344.42 -h1, h2, h3 { color: #005A9C; background: white }
  344.43 -h1 { font: 170% sans-serif }
  344.44 -h2 { font: 140% sans-serif }
  344.45 -h3 { font: 120% sans-serif }
  344.46 -h4 { font: bold 100% sans-serif }
  344.47 -h5 { font: italic 100% sans-serif }
  344.48 -h6 { font: small-caps 100% sans-serif }
  344.49 -
  344.50 -.hide { display: none }
  344.51 -
  344.52 -div.head { margin-bottom: 1em }
  344.53 -div.head h1 { margin-top: 2em; clear: both }
  344.54 -div.head table { margin-left: 2em; margin-top: 2em }
  344.55 -
  344.56 -p.copyright { font-size: small }
  344.57 -p.copyright small { font-size: small }
  344.58 -
  344.59 -@media screen {  /* hide from IE3 */
  344.60 -a[href]:hover { background: #ffa }
  344.61 -}
  344.62 -
  344.63 -pre { margin-left: 2em }
  344.64 -/*
  344.65 -p {
  344.66 -  margin-top: 0.6em;
  344.67 -  margin-bottom: 0.6em;
  344.68 -}
  344.69 -*/
  344.70 -dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  344.71 -dt { font-weight: bold }
  344.72 -
  344.73 -pre, code { font-family: monospace } /* navigator 4 requires this */
  344.74 -
  344.75 -ul.toc {
  344.76 -  list-style: disc;		/* Mac NS has problem with 'none' */
  344.77 -  list-style: none;
  344.78 -}
  344.79 -
  344.80 -@media aural {  
  344.81 -  h1, h2, h3 { stress: 20; richness: 90 }
  344.82 -  .hide { speak: none }
  344.83 -  p.copyright { volume: x-soft; speech-rate: x-fast }
  344.84 -  dt { pause-before: 20% }
  344.85 -  pre { speak-punctuation: code } 
  344.86 -}
  344.87 -
  344.88 -
  344.89 -
  344.90 -body {
  344.91 -  background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD);
  344.92 -}
   345.1 --- a/publish/style/expanders.js	Thu Feb 24 10:19:12 2011 +0000
   345.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   345.3 @@ -1,32 +0,0 @@
   345.4 -function expand(e) {
   345.5 -  e = e.parentNode;
   345.6 -  e.parentNode.removeAttribute('class');
   345.7 -  e.style.display = "none";
   345.8 -  e.nextSibling.style.display = "inline";
   345.9 -}
  345.10 -
  345.11 -(function() {
  345.12 -  var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span');
  345.13 -  for (i = 0; i != l.length; i++) {
  345.14 -    e0 = l[i];
  345.15 -    if (e0.getAttribute('class') == 'expanding') {
  345.16 -      a.push(e0);
  345.17 -    }
  345.18 -  }
  345.19 -  for (i = 0; i != a.length; i++) {
  345.20 -    e0 = a[i];
  345.21 -    e1 = document.createElement('span');
  345.22 -    e1.setAttribute('class', 'expander');
  345.23 -    e1.setAttribute('onclick', 'expand(event.target)');
  345.24 -    e1p = document.createElement('span');
  345.25 -    e1p.textContent = ' ';
  345.26 -    e1p.appendChild(e1);
  345.27 -    e2 = document.createElement('span');
  345.28 -    e2.style.display = 'none';
  345.29 -    while (e0.firstChild) {
  345.30 -      e2.appendChild(e0.firstChild);
  345.31 -    }
  345.32 -    e0.appendChild(e1p);
  345.33 -    e0.appendChild(e2);
  345.34 -  }
  345.35 -})();
   346.1 --- a/publish/style/svg-style-extra.css	Thu Feb 24 10:19:12 2011 +0000
   346.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   346.3 @@ -1,179 +0,0 @@
   346.4 -body { line-height: 1.3; }
   346.5 -
   346.6 -.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em }
   346.7 -.element-summary-name { float: right; font-size: 110% }
   346.8 -.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; }
   346.9 -.element-summary * + dt { margin-top: 0.5em; }
  346.10 -.element-summary dd { margin-top: 0; }
  346.11 -.element-summary ul.no-bullets { list-style: none; padding-left: 0em }
  346.12 -.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; }
  346.13 -.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% }
  346.14 -.expander { }
  346.15 -.expander:active { color: #C00 }
  346.16 -.expander:hover { background: #ffa }
  346.17 -.expander:after { content: 'show »' }
  346.18 -
  346.19 -.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% }
  346.20 -
  346.21 -pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ }
  346.22 -pre.idl a:link, pre.idl a:visited { color: black; }
  346.23 -
  346.24 -dl.interface dt {
  346.25 -  margin-top: 1em;
  346.26 -}
  346.27 -
  346.28 -dl.interface dl.attributes > dt,
  346.29 -dl.interface dl.constants > dt,
  346.30 -dl.interface dl.operations > dt {
  346.31 -  margin-top: 2em;
  346.32 -}
  346.33 -
  346.34 -dl.interface dl.attributes > dt,
  346.35 -dl.interface dl.constants > dt,
  346.36 -dl.interface dl.operations > dt,
  346.37 -dl.interface ol.parameters > li,
  346.38 -dl.interface dl.exceptions > dt {
  346.39 -  font-weight: normal;
  346.40 -  display: list-item;
  346.41 -}
  346.42 -
  346.43 -dl.interface dl.attributes > dt:first-child,
  346.44 -dl.interface dl.constants > dt:first-child,
  346.45 -dl.interface dl.operations > dt:first-child,
  346.46 -dl.interface ol.parameters > li:first-child,
  346.47 -dl.interface dl.exceptions > dt:first-child {
  346.48 -  margin-top: 0;
  346.49 -}
  346.50 -
  346.51 -dl.interface dl.attributes > dd,
  346.52 -dl.interface dl.constants > dd,
  346.53 -dl.interface dl.operations > dd,
  346.54 -dl.interface ol.parameters > li,
  346.55 -dl.interface dl.exceptions > dd {
  346.56 -  margin-top: 0.5em;
  346.57 -  margin-left: 0;
  346.58 -}
  346.59 -
  346.60 -dl.interface dl.attribute {
  346.61 -  /*margin-left: 2em;*/
  346.62 -}
  346.63 -
  346.64 -dl.interface dd > *:first-child,
  346.65 -dl.interface ol.parameters > li,
  346.66 -dl.interface ol.parameters > li > *:first-child + * {
  346.67 -  margin-top: 0;
  346.68 -}
  346.69 -
  346.70 -ol.parameters > li > .parameter {
  346.71 -  float: left;
  346.72 -}
  346.73 -
  346.74 -ol.parameters > li > .parameter::after {
  346.75 -  content: " — ";
  346.76 -}
  346.77 -
  346.78 -.idl .keyword {
  346.79 -  /*font-weight: bold;*/
  346.80 -}
  346.81 -
  346.82 -.idlattr, .idlattr:link, .idlattr:visited {
  346.83 -  background: #d9e8ff;
  346.84 -  color: black;
  346.85 -}
  346.86 -
  346.87 -ol.parameters {
  346.88 -  list-style-type: disc;
  346.89 -  padding-left: 0;
  346.90 -}
  346.91 -
  346.92 -var {
  346.93 -  font-style: italic;
  346.94 -}
  346.95 -
  346.96 -dl.definitions > dt,
  346.97 -.adef-list dl > dt { margin-top: 1em; }
  346.98 -
  346.99 -dl.definitions > dt + dt,
 346.100 -.adef-list dl > dt + dt { margin-top: 0; }
 346.101 -
 346.102 -dl.definitions > dd > :first-child,
 346.103 -.adef-list dl > dd > :first-child { margin-top: 0; }
 346.104 -
 346.105 -table.vert {
 346.106 -  border-collapse: collapse;
 346.107 -  border-top: 2px solid #005a9c;
 346.108 -  border-bottom: 2px solid #005a9c;
 346.109 -  margin-top: 1em;
 346.110 -  margin-bottom: 1em;
 346.111 -  margin-left: auto;
 346.112 -  margin-right: auto;
 346.113 -}
 346.114 -table.vert td {
 346.115 -  background: #f0f6ff;
 346.116 -}
 346.117 -table.vert th {
 346.118 -  text-align: left;
 346.119 -  vertical-align: bottom;
 346.120 -  border-bottom: 2px solid #005a9c;
 346.121 -  white-space: nowrap;
 346.122 -  color: #d9e8ff;
 346.123 -  background: #005a9c;
 346.124 -}
 346.125 -table.vert th a:link,
 346.126 -table.vert th a:visited { color: #d9e8ff; }
 346.127 -table.vert th a:hover { color: black; }
 346.128 -table.vert th, table.vert td { padding: 0.5em 0.75em; }
 346.129 -table.vert th .attr-name { color: white }
 346.130 -table.vert th a:hover .element-name { color: #2A2AA5 }
 346.131 -table.vert th .prop-name { color: white }
 346.132 -table.vert th a:hover .element-name { color: black }
 346.133 -table.vert th .element-name { color: white }
 346.134 -table.vert th a:hover .element-name { color: #A52A2A }
 346.135 -table.vert td { vertical-align: top; }
 346.136 -table.offset { margin-left: 2em; margin-right: 2em; }
 346.137 -.indented {
 346.138 -  margin-left: 2em;
 346.139 -}
 346.140 -.math var, .math sub, .math sup {
 346.141 -  font-family: serif;
 346.142 -}
 346.143 -.separated {
 346.144 -  word-spacing: 1em;
 346.145 -}
 346.146 -.familyname {
 346.147 -  text-transform: uppercase;
 346.148 -}
 346.149 -
 346.150 -dl.unemphasized-names > dt > a { font-weight: normal }
 346.151 -
 346.152 -.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right }
 346.153 -.header.top { border-top: 1px solid #ccc }
 346.154 -.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em }
 346.155 -.header .namedate { display: block; float: left }
 346.156 -.header ul { display: block; margin: 0 }
 346.157 -.header ul li { display: inline; margin: 0 }
 346.158 -.header ul li:first-child::before { content: none }
 346.159 -.header ul li::before { content: ' â‹… ' }
 346.160 -.header .after { display: block; clear: both; height: 1px }
 346.161 -.header .after::before { content: ' ' }
 346.162 -
 346.163 -table.property-table { font-size: 90%; border-collapse: collapse }
 346.164 -table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) }
 346.165 -.tocline1 { font-weight: bold }
 346.166 -/* .toc { margin-bottom: 0.5em } */
 346.167 -
 346.168 -.idl-type-parenthetical { font-size: 90% }
 346.169 -td > :first-child,
 346.170 -th > :first-child { margin-top: 0 }
 346.171 -td p {
 346.172 -  margin-top: 1em;
 346.173 -  margin-bottom: 0;
 346.174 -}
 346.175 -
 346.176 -table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em }
 346.177 -table.collection th { background: #eee }
 346.178 -table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline }
 346.179 -
 346.180 -ol.notes { list-style-type: none; padding-left: 0 }
 346.181 -
 346.182 -.colorpatch { width: 14px; height:14px; border: 1px solid black; }
   347.1 --- a/publish/style/svg-style.css	Thu Feb 24 10:19:12 2011 +0000
   347.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   347.3 @@ -1,454 +0,0 @@
   347.4 -/*
   347.5 - * style sheet for svg specification
   347.6 - */
   347.7 -
   347.8 -
   347.9 -body {
  347.10 -    color: black;
  347.11 -    /* text-align: justify; */
  347.12 -    font-family: helvetica, sans-serif;
  347.13 -    background: white;
  347.14 -    margin: 2em;
  347.15 -    /* for the rec: background: #def url(recbg.jpg); */
  347.16 -}
  347.17 -.navlinks {
  347.18 -    text-align: center;
  347.19 -}
  347.20 -h2, h3, h4, h5, h6 {
  347.21 -    text-align: left;
  347.22 -}
  347.23 -
  347.24 -.header {
  347.25 -  text-align: right;
  347.26 -  border-bottom: 1px solid #aaa;
  347.27 -  padding-bottom: 0.5em;
  347.28 -  font-size: 80%;
  347.29 -}
  347.30 -
  347.31 -.footer {
  347.32 -  text-align: right;
  347.33 -  margin-top: 1em;
  347.34 -  border-top: 1px solid #aaa;
  347.35 -  padding-top: 0.5em;
  347.36 -  font-size: 80%;
  347.37 -}
  347.38 -
  347.39 -.header ul, .footer ul {
  347.40 -  display: inline;
  347.41 -  padding: 0;
  347.42 -}
  347.43 -
  347.44 -.header li, .footer li {
  347.45 -  display: inline;
  347.46 -  border-left: 1px solid #aaa;
  347.47 -  padding-left: 0.2em;
  347.48 -}
  347.49 -
  347.50 -h1 {
  347.51 -    clear: left;
  347.52 -    margin-top: 1em;
  347.53 -    text-align: center;
  347.54 -}
  347.55 -
  347.56 -pre { margin-left: 2em }
  347.57 -pre {
  347.58 -    color: #a52a2a;
  347.59 -    font-family: monospace;
  347.60 -    font-size: 90%
  347.61 -}
  347.62 -pre.svgsamplecompressed {
  347.63 -    font-size: 75%;
  347.64 -    letter-spacing: -.05em;
  347.65 -    line-height: 95%
  347.66 -}
  347.67 -pre strong {
  347.68 -    color: #004400;
  347.69 -    font-weight: bold
  347.70 -}
  347.71 -.filterformula {
  347.72 -    color: #a52a2a;
  347.73 -    font-family: monospace;
  347.74 -    font-size: 90%;
  347.75 -    margin-left: 2em
  347.76 -}
  347.77 -
  347.78 -div.dtd-fragment { 
  347.79 -    background-color: #dddddd;
  347.80 -    margin-left: 0;
  347.81 -}
  347.82 -.dtd-fragment { 
  347.83 -    background-color: #dddddd;
  347.84 -    margin-left: 0;
  347.85 -}
  347.86 -.idl-code { 
  347.87 -  margin: 0;
  347.88 -  font-family: monospace;
  347.89 -	border: 1px solid black;
  347.90 -	white-space: pre;
  347.91 -	color: black; 
  347.92 -	background-color: #dfdfdf;
  347.93 -}
  347.94 -
  347.95 -.adef {
  347.96 -    font-family: monospace;
  347.97 -	font-weight: bold;
  347.98 -}
  347.99 -
 347.100 -
 347.101 -address {
 347.102 -    text-align: right;
 347.103 -    font-style: italic;
 347.104 -}
 347.105 -
 347.106 -var {
 347.107 -    font-style: normal;
 347.108 -}
 347.109 -img {
 347.110 -    border: 0;
 347.111 -}
 347.112 -.toc {
 347.113 -    text-indent: 0;
 347.114 -}
 347.115 -.toc2 {
 347.116 -    text-indent: 2em;
 347.117 -}
 347.118 -.toc3 {
 347.119 -    text-indent: 4em;
 347.120 -}
 347.121 -p.toc-line {
 347.122 -    margin-top: 1em;
 347.123 -    margin-bottom: 1em;
 347.124 -    text-indent: 0;
 347.125 -}
 347.126 -
 347.127 -/* it should be 'inherit', but netscape inserts a random color :-( */
 347.128 -a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/}
 347.129 -div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/}
 347.130 -div.deprecated-html-example a:link,
 347.131 -div.deprecated-html-example a:visited {color: red; /*color: inherit*/}
 347.132 -.note a:link, .note a:visited {color: green; /*color: inherit*/}
 347.133 -
 347.134 -a.propdef-title {
 347.135 -  background: yellow;
 347.136 -}
 347.137 -
 347.138 -a.descdef-title {
 347.139 -  color: yellow;
 347.140 -  background: green
 347.141 -}
 347.142 -
 347.143 -/* table {margin-left: 1em} */
 347.144 -div.propdef {margin: 1.2em 0}
 347.145 -
 347.146 -.example {
 347.147 -  padding: 0;
 347.148 -  background: white;
 347.149 -}
 347.150 -
 347.151 -.exampleheader {
 347.152 -  margin: 0;
 347.153 -  background: #dda;
 347.154 -  border-bottom: 1px solid #666;
 347.155 -  border-right: 1px solid #666;
 347.156 -  border-top: 1px solid #aaa;
 347.157 -  border-left: 1px solid #aaa;
 347.158 -  padding: 0.5em 1em;
 347.159 -}
 347.160 -
 347.161 -.examplesource {
 347.162 -  padding: 0;
 347.163 -  margin: 0;
 347.164 -  background: #ffc;
 347.165 -  border-bottom: 1px solid #996;
 347.166 -  border-right: 1px solid #996;
 347.167 -  border-top: 1px solid #bb8;
 347.168 -  border-left: 1px solid #bb8;
 347.169 -}
 347.170 -
 347.171 -.examplesource pre {
 347.172 -  background: none;
 347.173 -  color: #633;
 347.174 -  margin: 0 1em;
 347.175 -  padding: 0.5em 0 0 0;
 347.176 -}
 347.177 -
 347.178 -.exampleimage {
 347.179 -  text-align: center;
 347.180 -  padding: 1em;
 347.181 -  border-bottom: 1px solid #996;
 347.182 -  border-right: 1px solid #996;
 347.183 -  border-top: 1px solid #bb8;
 347.184 -  border-left: 1px solid #bb8;
 347.185 -}
 347.186 -
 347.187 -.schema {
 347.188 -  padding: 0;
 347.189 -  background: white;
 347.190 -  width: 100%;
 347.191 -}
 347.192 -
 347.193 -.schemaheader {
 347.194 -  margin: 0;
 347.195 -  background: #ccc;
 347.196 -  border-bottom: 1px solid #666;
 347.197 -  border-right: 1px solid #666;
 347.198 -  border-top: 1px solid #aaa;
 347.199 -  border-left: 1px solid #aaa;
 347.200 -  padding: 0.5em 1em;
 347.201 -}
 347.202 -
 347.203 -.schemasource {
 347.204 -  padding: 0;
 347.205 -  margin: 0;
 347.206 -  background: #ddd;
 347.207 -  border-bottom: 1px solid #666;
 347.208 -  border-right: 1px solid #666;
 347.209 -  border-top: 1px solid #aaa;
 347.210 -  border-left: 1px solid #aaa;
 347.211 -}
 347.212 -
 347.213 -.schemasource pre {
 347.214 -  background: none;
 347.215 -  color: #030;
 347.216 -  margin: 0 1em;
 347.217 -  padding: 0.5em 0 0 0;
 347.218 -}
 347.219 -
 347.220 -pre.example { color: maroon }
 347.221 -pre.illegal-example { color: red }
 347.222 -div.illegal-example { color: red }
 347.223 -div.illegal-example p { color: black }
 347.224 -
 347.225 -
 347.226 -div.html-example { color: maroon }
 347.227 -pre.html-example { color: maroon }
 347.228 -pre.illegal-html-example { color: red }
 347.229 -div.illegal-html-example { color: red }
 347.230 -div.illegal-html-example p { color: black }
 347.231 -pre.deprecated-html-example { color: red }
 347.232 -div.deprecated-html-example { color: red }
 347.233 -div.deprecated-html-example p { color: black }
 347.234 -
 347.235 -div.xml-example { color: maroon }
 347.236 -pre.xml-example { color: maroon }
 347.237 -pre.illegal-xml-example { color: red }
 347.238 -div.illegal-xml-example { color: red }
 347.239 -div.illegal-xml-example p { color: black }
 347.240 -
 347.241 -div.dtd-example { color: maroon }
 347.242 -pre.dtd-example { color: maroon }
 347.243 -pre.illegal-dtd-example { color: red }
 347.244 -div.illegal-dtd-example { color: red }
 347.245 -div.illegal-dtd-example p { color: black }
 347.246 -
 347.247 -.note {
 347.248 -    font-weight: bold;
 347.249 -    margin-top: 1em;
 347.250 -    margin-bottom: 1em;
 347.251 -    margin-left: 1em;
 347.252 -    margin-right: 1em;
 347.253 -	background: #6f9 none repeat scroll 0%; 
 347.254 -	color: black; 
 347.255 -}
 347.256 -
 347.257 -.requirement {
 347.258 -    margin-top: 1em;
 347.259 -    margin-bottom: 1em;
 347.260 -    margin-left: 1em;
 347.261 -    margin-right: 1em;
 347.262 -	background: #fad none repeat scroll 0%; 
 347.263 -	color: black; 
 347.264 -}
 347.265 -
 347.266 -.normref { 
 347.267 -    color: red;
 347.268 -}	
 347.269 -
 347.270 -.informref {
 347.271 -    color: green;
 347.272 -}	
 347.273 -
 347.274 -div.propdef th { 
 347.275 -    text-align: right; 
 347.276 -}
 347.277 -
 347.278 -div.descdef th { 
 347.279 -    text-align: right; 
 347.280 -}
 347.281 -
 347.282 -ul.toc, ol.toc {list-style: none}
 347.283 -div.toc ul ul, div.toc ol ol {margin-left: 0}
 347.284 -div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em}
 347.285 -div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0}
 347.286 -li.tocline1 {font-weight: bold}
 347.287 -li.tocline2 {font-weight: normal}
 347.288 -li.tocline4 {font-style: italic}
 347.289 -/* div.subtoc ul, div.subtoc ol {list-style: none} */
 347.290 -/* the border in the following rule crashes nn4 on fonts.html :-(
 347.291 -div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0;
 347.292 -    background: #ddd}
 347.293 -*/
 347.294 -ul.index {list-style: none}
 347.295 -
 347.296 -s, del {text-decoration: line-through; color: red}
 347.297 -u, ins {text-decoration: underline; background: #bfa}
 347.298 -
 347.299 -div.figure {
 347.300 -    text-align: center;
 347.301 -    /*border: solid thin;
 347.302 -    width: 100%;*/
 347.303 -    margin: 2.5em 0
 347.304 -}
 347.305 -p.caption, caption {
 347.306 -    text-align: center;
 347.307 -    font-style: italic;
 347.308 -    font-weight: bold;
 347.309 -    font-size: 90%;
 347.310 -    color: #088;
 347.311 -    margin: 1.5em 25% 0 25%;
 347.312 -}
 347.313 -div.toc, ul.index, dt {
 347.314 -    text-align: left
 347.315 -}
 347.316 -sup {
 347.317 -    vertical-align: super;
 347.318 -    font-size: 80%
 347.319 -}
 347.320 -.code-fragment {
 347.321 -	color: #a52a2a;
 347.322 -	font-weight: bold;
 347.323 -    font-size: 90%
 347.324 -}
 347.325 -.element-name {
 347.326 -	color: #a52a2a;
 347.327 -	font-weight: bold;
 347.328 -    font-size: 90%
 347.329 -}
 347.330 -.attr-name {
 347.331 -	color: #2a2aa5;
 347.332 -	font-weight: bold;
 347.333 -    font-size: 90%
 347.334 -}
 347.335 -.prop-name {
 347.336 -	color: black;
 347.337 -	font-weight: bold;
 347.338 -    font-size: 90%
 347.339 -}
 347.340 -.attr-value, .prop-value {
 347.341 -	font-weight: bold;
 347.342 -    font-size: 90%
 347.343 -}
 347.344 -/*
 347.345 -.svg-term {
 347.346 -    color: red;
 347.347 -	font-weight: bold
 347.348 -}
 347.349 -*/
 347.350 -.svg-termdefine {
 347.351 -	font-weight: bold
 347.352 -}
 347.353 -.example-ref {
 347.354 -	color: green;
 347.355 -}
 347.356 -.anim-target { 
 347.357 -    font-style: italic 
 347.358 -}
 347.359 -.dominterfacename {
 347.360 -        font-weight: bold
 347.361 -}
 347.362 -.dom-attr-name {
 347.363 -        color: black;
 347.364 -        background-color: #ffffd2;
 347.365 -}
 347.366 -.dom-attr-type, .dom-attr-value {
 347.367 -        color: black;
 347.368 -        font-weight: bold;
 347.369 -}
 347.370 -.dom-method-name {
 347.371 -        color: black;
 347.372 -        background-color: #d9e6f8;
 347.373 -}
 347.374 -.dom-parameter-name {
 347.375 -	margin-top: 1%;
 347.376 -        background-color: #fee6f8; 
 347.377 -        color: black;
 347.378 -}
 347.379 -.math-variable {
 347.380 -    font-family:times,serif
 347.381 -}
 347.382 -.color-keyword-value {
 347.383 -	color: #a52a2a;
 347.384 -}
 347.385 -.view-as-svg {
 347.386 -  font-style:italic
 347.387 -}
 347.388 -.table-heading-1 {
 347.389 -  font-style:italic; 
 347.390 -  text-align:center
 347.391 -}
 347.392 -.pathdatatable { 
 347.393 -  background: #dddddd 
 347.394 -}
 347.395 -.useruleapplied {
 347.396 -  font-style:normal; 
 347.397 -  font-weight:bold; 
 347.398 -  color:blue
 347.399 -}
 347.400 -.useruleignored {
 347.401 -  font-style:italic; 
 347.402 -  font-weight:bold; 
 347.403 -  color:#050;
 347.404 -}
 347.405 -
 347.406 -.editor { text-decoration: underline; font-size: 85% }
 347.407 -.editor-intro { color: red; font-weight: bold }
 347.408 -.editor-rec { color: red; font-weight: bold }
 347.409 -.designgoals { list-style-type: upper-alpha }
 347.410 -.reqt-level0 { list-style-type: decimal; font-weight: bold }
 347.411 -.reqt-level1 { list-style-type: lower-alpha; font-weight: normal }
 347.412 -.reqt-level2 { list-style-type: lower-roman; font-weight: normal }
 347.413 -
 347.414 -.b4nomfix { color: #a52a2a; text-decoration: line-through }
 347.415 -.afnomfix { color: red; }
 347.416 -
 347.417 -div.note,p.note { 
 347.418 -	border: 2px dotted #3c6; 
 347.419 -	padding: 0.5em; 
 347.420 -}
 347.421 -
 347.422 -.specissue { 
 347.423 -	border-style: solid; 
 347.424 -	border-color: black; 
 347.425 -	border-width: 1px 1px 1px 4px; 
 347.426 -	padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 
 347.427 -}
 347.428 -
 347.429 -.svgt12 { 
 347.430 -	background: rgb(153, 223, 255) none repeat scroll 0%; 
 347.431 -	color: black; 
 347.432 -}
 347.433 -
 347.434 -a[href="http://www.w3.org/TR/SVG10/"] { background: red; }
 347.435 -a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; }
 347.436 -a[href="http://www.w3.org/SVGMobile12/"] { background: green; }
 347.437 -
 347.438 -.new {
 347.439 -	border-style: solid;
 347.440 -	border-color: green;
 347.441 -	border-width: 0px 0px 0px 4px;
 347.442 -	padding-left: 20px;
 347.443 -	margin-left: -20px;
 347.444 -}
 347.445 -
 347.446 -.changed {
 347.447 -	border-style: solid;
 347.448 -	border-color: blue;
 347.449 -	border-width: 0px 0px 0px 4px;
 347.450 -	padding-left: 20px;
 347.451 -	margin-left: -20px;
 347.452 -}
 347.453 -
 347.454 -div.note-editor
 347.455 -{
 347.456 -	display:none;
 347.457 -}
   348.1 --- a/publish/style/svgspec.css	Thu Feb 24 10:19:12 2011 +0000
   348.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   348.3 @@ -1,105 +0,0 @@
   348.4 -.term {
   348.5 -    FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white
   348.6 -}
   348.7 -PRE {
   348.8 -    FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white
   348.9 -}
  348.10 -PRE.schema {
  348.11 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  348.12 -}
  348.13 -PRE.example {
  348.14 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace
  348.15 -}
  348.16 -.dtd-fragment {
  348.17 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd
  348.18 -}
  348.19 -.idl-code {
  348.20 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf
  348.21 -}
  348.22 -.adef {
  348.23 -    FONT-WEIGHT: bold; FONT-FAMILY: monospace
  348.24 -}
  348.25 -IMG {
  348.26 -    BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px
  348.27 -}
  348.28 -.toc {
  348.29 -    TEXT-INDENT: 0px
  348.30 -}
  348.31 -.toc2 {
  348.32 -    TEXT-INDENT: 2em
  348.33 -}
  348.34 -.toc3 {
  348.35 -    TEXT-INDENT: 4em
  348.36 -}
  348.37 -P.toc-line {
  348.38 -    MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px
  348.39 -}
  348.40 -.example {
  348.41 -    COLOR: maroon; BACKGROUND-COLOR: white
  348.42 -}
  348.43 -.pseudocode {
  348.44 -    BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff
  348.45 -}
  348.46 -.algorithm OL {
  348.47 -    LIST-STYLE-TYPE: decimal
  348.48 -}
  348.49 -.algorithm OL LI {
  348.50 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  348.51 -}
  348.52 -.algorithm OL LI OL {
  348.53 -    LIST-STYLE-TYPE: lower-alpha
  348.54 -}
  348.55 -.algorithm OL LI OL LI {
  348.56 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  348.57 -}
  348.58 -.algorithm OL LI OL LI OL {
  348.59 -    LIST-STYLE-TYPE: lower-roman
  348.60 -}
  348.61 -.algorithm OL LI OL LI OL LI {
  348.62 -    MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em
  348.63 -}
  348.64 -.note {
  348.65 -    BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid
  348.66 -}
  348.67 -P.caption {
  348.68 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  348.69 -}
  348.70 -CAPTION {
  348.71 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center
  348.72 -}
  348.73 -.element {
  348.74 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white
  348.75 -}
  348.76 -.type {
  348.77 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  348.78 -}
  348.79 -.attribute {
  348.80 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white
  348.81 -}
  348.82 -.property {
  348.83 -    FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white
  348.84 -}
  348.85 -.attribute-value {
  348.86 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  348.87 -}
  348.88 -.property-value {
  348.89 -    FONT-WEIGHT: bold; FONT-SIZE: 90%
  348.90 -}
  348.91 -.interface {
  348.92 -    FONT-WEIGHT: bold
  348.93 -}
  348.94 -.dom-attribute {
  348.95 -    COLOR: black; BACKGROUND-COLOR: #ffffd2
  348.96 -}
  348.97 -.dom-attribute-type {
  348.98 -    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
  348.99 -}
 348.100 -.dom-attribute-value {
 348.101 -    FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white
 348.102 -}
 348.103 -.dom-method {
 348.104 -    COLOR: black; BACKGROUND-COLOR: #d9e6f8
 348.105 -}
 348.106 -.dom-parameter {
 348.107 -    COLOR: black; BACKGROUND-COLOR: #fee6f8
 348.108 -}
   349.1 --- a/test/resources/SVGFreeSans.svg	Thu Feb 24 10:19:12 2011 +0000
   349.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   349.3 @@ -1,569 +0,0 @@
   349.4 -<?xml version="1.0" standalone="no"?>
   349.5 -<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" >
   349.6 -<defs >
   349.7 -<font horiz-adv-x="481" id="ascii">
   349.8 -  <font-face
   349.9 -    font-family="SVGFreeSansASCII"
  349.10 -    units-per-em="1000"
  349.11 -    panose-1="2 11 5 4 2 2 2 2 2 4"
  349.12 -    ascent="800"
  349.13 -    descent="-200"
  349.14 -    alphabetic="0" />
  349.15 -<missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z" />
  349.16 -<glyph unicode=" " glyph-name="space" horiz-adv-x="278" />
  349.17 -<glyph unicode="&#160;" glyph-name="nbsp" horiz-adv-x="278" />
  349.18 -<glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z" />
  349.19 -<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z" />
  349.20 -<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360
  349.21 -433Z" />
  349.22 -<glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89
  349.23 --13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436
  349.24 -244 389 274Q360 292 302 309Z" />
  349.25 -<glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544
  349.26 -98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518
  349.27 -151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693
  349.28 -252 690 252H688Z" />
  349.29 -<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134
  349.30 -532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639
  349.31 -221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z" />
  349.32 -<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z" />
  349.33 -<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z" />
  349.34 -<glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z" />
  349.35 -<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z" />
  349.36 -<glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z" />
  349.37 -<glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z" />
  349.38 -<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z" />
  349.39 -<glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z" />
  349.40 -<glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z" />
  349.41 -<glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133
  349.42 -631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z" />
  349.43 -<glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z" />
  349.44 -<glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148
  349.45 -709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z" />
  349.46 -<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485
  349.47 -515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z" />
  349.48 -<glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z" />
  349.49 -<glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171
  349.50 -423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z" />
  349.51 -<glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43
  349.52 -312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285
  349.53 -363Z" />
  349.54 -<glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z" />
  349.55 -<glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488
  349.56 -586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275
  349.57 -631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z" />
  349.58 -<glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509
  349.59 -374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z"
  349.60 -/>
  349.61 -<glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z" />
  349.62 -<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z" />
  349.63 -<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z" />
  349.64 -<glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z" />
  349.65 -<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z" />
  349.66 -<glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162
  349.67 -508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z" />
  349.68 -<glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119
  349.69 -274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741
  349.70 -525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515
  349.71 -458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z" />
  349.72 -<glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z" />
  349.73 -<glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471
  349.74 -498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z" />
  349.75 -<glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236
  349.76 --23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z" />
  349.77 -<glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z" />
  349.78 -<glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z" />
  349.79 -<glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z" />
  349.80 -<glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659
  349.81 -393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z" />
  349.82 -<glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z" />
  349.83 -<glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z" />
  349.84 -<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z" />
  349.85 -<glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z" />
  349.86 -<glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z" />
  349.87 -<glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z" />
  349.88 -<glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z" />
  349.89 -<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741
  349.90 -389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z" />
  349.91 -<glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647
  349.92 -378 647H184V391Z" />
  349.93 -<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221
  349.94 -649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z" />
  349.95 -<glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546
  349.96 -293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z" />
  349.97 -<glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468
  349.98 --23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z" />
  349.99 -<glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z" />
 349.100 -<glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z" />
 349.101 -<glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z" />
 349.102 -<glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z" />
 349.103 -<glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z" />
 349.104 -<glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z" />
 349.105 -<glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z" />
 349.106 -<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z" />
 349.107 -<glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z" />
 349.108 -<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z" />
 349.109 -<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z" />
 349.110 -<glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z" />
 349.111 -<glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z" />
 349.112 -<glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389
 349.113 -448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212
 349.114 -50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z" />
 349.115 -<glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239
 349.116 -55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z" />
 349.117 -<glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31
 349.118 -252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z" />
 349.119 -<glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114
 349.120 -290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z" />
 349.121 -<glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513
 349.122 -347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z" />
 349.123 -<glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z" />
 349.124 -<glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404
 349.125 --58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54
 349.126 -386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z" />
 349.127 -<glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z" />
 349.128 -<glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z" />
 349.129 -<glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z" />
 349.130 -<glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z" />
 349.131 -<glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z" />
 349.132 -<glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678
 349.133 -442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z" />
 349.134 -<glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z" />
 349.135 -<glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123
 349.136 -121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z" />
 349.137 -<glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138
 349.138 -133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z" />
 349.139 -<glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219
 349.140 -55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z" />
 349.141 -<glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z" />
 349.142 -<glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128
 349.143 -109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z" />
 349.144 -<glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z" />
 349.145 -<glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z" />
 349.146 -<glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z" />
 349.147 -<glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z" />
 349.148 -<glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z" />
 349.149 -<glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z" />
 349.150 -<glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z" />
 349.151 -<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="334" d="M276 729V664H261Q214 664 203 637V637Q198 623 198 598V597V416Q198 318 157 283L156 282Q146 273 133 267Q125 263 116 259Q198 221 198 103V101V-80Q198 -130 223 -141Q236 -147 261 -147H276V-212H230Q148
 349.152 --212 127 -132Q121 -110 121 -82V-81V86Q121 179 86 206Q70 218 43 224V293Q97 304 111 348Q121 376 121 430V431V598Q121 700 192 723Q210 729 230 729H276Z" />
 349.153 -<glyph unicode="|" glyph-name="bar" horiz-adv-x="260" d="M100 729H160V-212H100V729Z" />
 349.154 -<glyph unicode="}" glyph-name="braceright" horiz-adv-x="334" d="M29 -212V-147H45Q93 -147 104 -120Q108 -109 109 -90V-80V101Q109 221 191 258Q109 296 109 414V416V597Q109 647 83 658Q70 664 45 664H29V729H76Q159 729 180 648Q186 626 186 599V598V431Q186
 349.155 -337 222 310Q237 298 262 293V224Q210 213 195 167Q186 139 186 87V86V-81Q186 -184 113 -207Q96 -212 76 -212H29Z" />
 349.156 -<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="584" d="M455 411H508V395Q508 310 451 280Q430 268 403 268Q364 268 322 294L224 357Q201 371 181 371Q152 371 136 336Q131 323 128 295V293H75Q82 424 166 437L183 438Q210 438 237 422L354 353Q382
 349.157 -336 404 336Q448 336 454 385L455 411Z" />
 349.158 -
 349.159 -<hkern g1="comma" g2="one" k="100" />
 349.160 -<hkern g1="hyphen" g2="A" k="7" />
 349.161 -<hkern g1="hyphen" g2="T" k="80" />
 349.162 -<hkern g1="hyphen" g2="V" k="46" />
 349.163 -<hkern g1="hyphen" g2="W" k="19" />
 349.164 -<hkern g1="hyphen" g2="Y" k="92" />
 349.165 -<hkern g1="period" g2="one" k="101" />
 349.166 -<hkern g1="zero" g2="one" k="46" />
 349.167 -<hkern g1="zero" g2="four" k="2" />
 349.168 -<hkern g1="zero" g2="seven" k="39" />
 349.169 -<hkern g1="one" g2="comma" k="74" />
 349.170 -<hkern g1="one" g2="period" k="74" />
 349.171 -<hkern g1="one" g2="zero" k="62" />
 349.172 -<hkern g1="one" g2="one" k="118" />
 349.173 -<hkern g1="one" g2="two" k="69" />
 349.174 -<hkern g1="one" g2="three" k="67" />
 349.175 -<hkern g1="one" g2="four" k="81" />
 349.176 -<hkern g1="one" g2="five" k="67" />
 349.177 -<hkern g1="one" g2="six" k="62" />
 349.178 -<hkern g1="one" g2="seven" k="90" />
 349.179 -<hkern g1="one" g2="eight" k="65" />
 349.180 -<hkern g1="one" g2="nine" k="65" />
 349.181 -<hkern g1="two" g2="one" k="36" />
 349.182 -<hkern g1="two" g2="four" k="37" />
 349.183 -<hkern g1="two" g2="seven" k="25" />
 349.184 -<hkern g1="three" g2="one" k="49" />
 349.185 -<hkern g1="three" g2="four" k="2" />
 349.186 -<hkern g1="three" g2="seven" k="33" />
 349.187 -<hkern g1="four" g2="one" k="84" />
 349.188 -<hkern g1="four" g2="four" k="-5" />
 349.189 -<hkern g1="four" g2="seven" k="56" />
 349.190 -<hkern g1="five" g2="one" k="76" />
 349.191 -<hkern g1="five" g2="four" k="-1" />
 349.192 -<hkern g1="five" g2="seven" k="26" />
 349.193 -<hkern g1="six" g2="one" k="43" />
 349.194 -<hkern g1="six" g2="four" k="-1" />
 349.195 -<hkern g1="six" g2="seven" k="30" />
 349.196 -<hkern g1="seven" g2="comma" k="119" />
 349.197 -<hkern g1="seven" g2="period" k="119" />
 349.198 -<hkern g1="seven" g2="one" k="53" />
 349.199 -<hkern g1="seven" g2="two" k="28" />
 349.200 -<hkern g1="seven" g2="three" k="23" />
 349.201 -<hkern g1="seven" g2="four" k="93" />
 349.202 -<hkern g1="seven" g2="five" k="30" />
 349.203 -<hkern g1="seven" g2="six" k="40" />
 349.204 -<hkern g1="seven" g2="seven" k="4" />
 349.205 -<hkern g1="seven" g2="eight" k="28" />
 349.206 -<hkern g1="seven" g2="colon" k="77" />
 349.207 -<hkern g1="eight" g2="one" k="48" />
 349.208 -<hkern g1="eight" g2="four" k="-1" />
 349.209 -<hkern g1="eight" g2="seven" k="33" />
 349.210 -<hkern g1="nine" g2="one" k="43" />
 349.211 -<hkern g1="nine" g2="four" k="3" />
 349.212 -<hkern g1="nine" g2="seven" k="37" />
 349.213 -<hkern g1="A" g2="comma" k="-5" />
 349.214 -<hkern g1="A" g2="hyphen" k="3" />
 349.215 -<hkern g1="A" g2="period" k="-5" />
 349.216 -<hkern g1="A" g2="C" k="36" />
 349.217 -<hkern g1="A" g2="G" k="35" />
 349.218 -<hkern g1="A" g2="O" k="33" />
 349.219 -<hkern g1="A" g2="Q" k="32" />
 349.220 -<hkern g1="A" g2="T" k="93" />
 349.221 -<hkern g1="A" g2="U" k="37" />
 349.222 -<hkern g1="A" g2="V" k="75" />
 349.223 -<hkern g1="A" g2="W" k="51" />
 349.224 -<hkern g1="A" g2="Y" k="99" />
 349.225 -<hkern g1="A" g2="a" k="4" />
 349.226 -<hkern g1="A" g2="b" k="-4" />
 349.227 -<hkern g1="A" g2="c" k="11" />
 349.228 -<hkern g1="A" g2="d" k="8" />
 349.229 -<hkern g1="A" g2="e" k="16" />
 349.230 -<hkern g1="A" g2="g" k="10" />
 349.231 -<hkern g1="A" g2="o" k="13" />
 349.232 -<hkern g1="A" g2="q" k="8" />
 349.233 -<hkern g1="A" g2="t" k="16" />
 349.234 -<hkern g1="A" g2="u" k="12" />
 349.235 -<hkern g1="A" g2="v" k="31" />
 349.236 -<hkern g1="A" g2="w" k="21" />
 349.237 -<hkern g1="A" g2="y" k="34" />
 349.238 -<hkern g1="B" g2="A" k="21" />
 349.239 -<hkern g1="B" g2="O" k="7" />
 349.240 -<hkern g1="B" g2="V" k="41" />
 349.241 -<hkern g1="B" g2="W" k="25" />
 349.242 -<hkern g1="B" g2="Y" k="44" />
 349.243 -<hkern g1="C" g2="A" k="32" />
 349.244 -<hkern g1="C" g2="H" k="12" />
 349.245 -<hkern g1="C" g2="K" k="10" />
 349.246 -<hkern g1="C" g2="O" k="8" />
 349.247 -<hkern g1="D" g2="A" k="42" />
 349.248 -<hkern g1="D" g2="J" k="5" />
 349.249 -<hkern g1="D" g2="T" k="45" />
 349.250 -<hkern g1="D" g2="V" k="51" />
 349.251 -<hkern g1="D" g2="W" k="29" />
 349.252 -<hkern g1="D" g2="X" k="53" />
 349.253 -<hkern g1="D" g2="Y" k="63" />
 349.254 -<hkern g1="F" g2="comma" k="108" />
 349.255 -<hkern g1="F" g2="hyphen" k="14" />
 349.256 -<hkern g1="F" g2="period" k="108" />
 349.257 -<hkern g1="F" g2="A" k="69" />
 349.258 -<hkern g1="F" g2="J" k="51" />
 349.259 -<hkern g1="F" g2="O" k="22" />
 349.260 -<hkern g1="F" g2="a" k="33" />
 349.261 -<hkern g1="F" g2="e" k="24" />
 349.262 -<hkern g1="F" g2="i" k="10" />
 349.263 -<hkern g1="F" g2="j" k="12" />
 349.264 -<hkern g1="F" g2="o" k="21" />
 349.265 -<hkern g1="F" g2="r" k="35" />
 349.266 -<hkern g1="F" g2="u" k="33" />
 349.267 -<hkern g1="G" g2="A" k="6" />
 349.268 -<hkern g1="G" g2="T" k="44" />
 349.269 -<hkern g1="G" g2="V" k="50" />
 349.270 -<hkern g1="G" g2="W" k="28" />
 349.271 -<hkern g1="G" g2="Y" k="62" />
 349.272 -<hkern g1="J" g2="A" k="32" />
 349.273 -<hkern g1="K" g2="hyphen" k="47" />
 349.274 -<hkern g1="K" g2="C" k="51" />
 349.275 -<hkern g1="K" g2="G" k="51" />
 349.276 -<hkern g1="K" g2="O" k="48" />
 349.277 -<hkern g1="K" g2="S" k="38" />
 349.278 -<hkern g1="K" g2="T" k="-20" />
 349.279 -<hkern g1="K" g2="a" k="11" />
 349.280 -<hkern g1="K" g2="e" k="32" />
 349.281 -<hkern g1="K" g2="o" k="29" />
 349.282 -<hkern g1="K" g2="u" k="19" />
 349.283 -<hkern g1="K" g2="y" k="62" />
 349.284 -<hkern g1="L" g2="hyphen" k="125" />
 349.285 -<hkern g1="L" g2="A" k="-17" />
 349.286 -<hkern g1="L" g2="C" k="41" />
 349.287 -<hkern g1="L" g2="G" k="42" />
 349.288 -<hkern g1="L" g2="O" k="41" />
 349.289 -<hkern g1="L" g2="S" k="19" />
 349.290 -<hkern g1="L" g2="T" k="105" />
 349.291 -<hkern g1="L" g2="U" k="35" />
 349.292 -<hkern g1="L" g2="V" k="105" />
 349.293 -<hkern g1="L" g2="W" k="68" />
 349.294 -<hkern g1="L" g2="Y" k="121" />
 349.295 -<hkern g1="L" g2="u" k="7" />
 349.296 -<hkern g1="L" g2="y" k="56" />
 349.297 -<hkern g1="N" g2="comma" k="7" />
 349.298 -<hkern g1="N" g2="period" k="7" />
 349.299 -<hkern g1="N" g2="A" k="9" />
 349.300 -<hkern g1="N" g2="C" k="3" />
 349.301 -<hkern g1="N" g2="G" k="2" />
 349.302 -<hkern g1="N" g2="a" k="5" />
 349.303 -<hkern g1="N" g2="o" k="-2" />
 349.304 -<hkern g1="O" g2="A" k="35" />
 349.305 -<hkern g1="O" g2="T" k="42" />
 349.306 -<hkern g1="O" g2="V" k="45" />
 349.307 -<hkern g1="O" g2="W" k="23" />
 349.308 -<hkern g1="O" g2="X" k="46" />
 349.309 -<hkern g1="O" g2="Y" k="59" />
 349.310 -<hkern g1="P" g2="comma" k="135" />
 349.311 -<hkern g1="P" g2="hyphen" k="40" />
 349.312 -<hkern g1="P" g2="period" k="135" />
 349.313 -<hkern g1="P" g2="A" k="78" />
 349.314 -<hkern g1="P" g2="J" k="78" />
 349.315 -<hkern g1="P" g2="a" k="28" />
 349.316 -<hkern g1="P" g2="e" k="31" />
 349.317 -<hkern g1="P" g2="o" k="27" />
 349.318 -<hkern g1="R" g2="hyphen" k="2" />
 349.319 -<hkern g1="R" g2="C" k="16" />
 349.320 -<hkern g1="R" g2="G" k="15" />
 349.321 -<hkern g1="R" g2="O" k="13" />
 349.322 -<hkern g1="R" g2="T" k="23" />
 349.323 -<hkern g1="R" g2="U" k="17" />
 349.324 -<hkern g1="R" g2="V" k="39" />
 349.325 -<hkern g1="R" g2="W" k="27" />
 349.326 -<hkern g1="R" g2="Y" k="43" />
 349.327 -<hkern g1="R" g2="a" k="15" />
 349.328 -<hkern g1="R" g2="e" k="12" />
 349.329 -<hkern g1="R" g2="o" k="9" />
 349.330 -<hkern g1="R" g2="u" k="9" />
 349.331 -<hkern g1="R" g2="y" k="8" />
 349.332 -<hkern g1="S" g2="A" k="22" />
 349.333 -<hkern g1="S" g2="T" k="28" />
 349.334 -<hkern g1="S" g2="V" k="42" />
 349.335 -<hkern g1="S" g2="W" k="28" />
 349.336 -<hkern g1="S" g2="Y" k="48" />
 349.337 -<hkern g1="S" g2="t" k="3" />
 349.338 -<hkern g1="T" g2="comma" k="100" />
 349.339 -<hkern g1="T" g2="hyphen" k="77" />
 349.340 -<hkern g1="T" g2="period" k="100" />
 349.341 -<hkern g1="T" g2="colon" k="133" />
 349.342 -<hkern g1="T" g2="semicolon" k="129" />
 349.343 -<hkern g1="T" g2="A" k="95" />
 349.344 -<hkern g1="T" g2="C" k="44" />
 349.345 -<hkern g1="T" g2="G" k="45" />
 349.346 -<hkern g1="T" g2="J" k="100" />
 349.347 -<hkern g1="T" g2="O" k="42" />
 349.348 -<hkern g1="T" g2="S" k="24" />
 349.349 -<hkern g1="T" g2="V" k="-12" />
 349.350 -<hkern g1="T" g2="W" k="-16" />
 349.351 -<hkern g1="T" g2="Y" k="-20" />
 349.352 -<hkern g1="T" g2="a" k="100" />
 349.353 -<hkern g1="T" g2="c" k="90" />
 349.354 -<hkern g1="T" g2="e" k="95" />
 349.355 -<hkern g1="T" g2="g" k="89" />
 349.356 -<hkern g1="T" g2="i" k="3" />
 349.357 -<hkern g1="T" g2="j" k="5" />
 349.358 -<hkern g1="T" g2="o" k="92" />
 349.359 -<hkern g1="T" g2="r" k="92" />
 349.360 -<hkern g1="T" g2="s" k="92" />
 349.361 -<hkern g1="T" g2="u" k="91" />
 349.362 -<hkern g1="T" g2="v" k="95" />
 349.363 -<hkern g1="T" g2="w" k="93" />
 349.364 -<hkern g1="T" g2="y" k="100" />
 349.365 -<hkern g1="U" g2="comma" k="27" />
 349.366 -<hkern g1="U" g2="period" k="25" />
 349.367 -<hkern g1="U" g2="A" k="36" />
 349.368 -<hkern g1="U" g2="m" k="4" />
 349.369 -<hkern g1="U" g2="n" k="4" />
 349.370 -<hkern g1="U" g2="p" k="-3" />
 349.371 -<hkern g1="U" g2="r" k="4" />
 349.372 -<hkern g1="V" g2="comma" k="89" />
 349.373 -<hkern g1="V" g2="hyphen" k="38" />
 349.374 -<hkern g1="V" g2="period" k="89" />
 349.375 -<hkern g1="V" g2="colon" k="66" />
 349.376 -<hkern g1="V" g2="semicolon" k="66" />
 349.377 -<hkern g1="V" g2="A" k="71" />
 349.378 -<hkern g1="V" g2="C" k="43" />
 349.379 -<hkern g1="V" g2="G" k="42" />
 349.380 -<hkern g1="V" g2="O" k="40" />
 349.381 -<hkern g1="V" g2="S" k="35" />
 349.382 -<hkern g1="V" g2="T" k="-15" />
 349.383 -<hkern g1="V" g2="a" k="59" />
 349.384 -<hkern g1="V" g2="e" k="57" />
 349.385 -<hkern g1="V" g2="g" k="50" />
 349.386 -<hkern g1="V" g2="i" k="5" />
 349.387 -<hkern g1="V" g2="o" k="54" />
 349.388 -<hkern g1="V" g2="r" k="42" />
 349.389 -<hkern g1="V" g2="u" k="41" />
 349.390 -<hkern g1="V" g2="y" k="20" />
 349.391 -<hkern g1="W" g2="comma" k="56" />
 349.392 -<hkern g1="W" g2="hyphen" k="13" />
 349.393 -<hkern g1="W" g2="period" k="56" />
 349.394 -<hkern g1="W" g2="colon" k="52" />
 349.395 -<hkern g1="W" g2="semicolon" k="53" />
 349.396 -<hkern g1="W" g2="A" k="50" />
 349.397 -<hkern g1="W" g2="C" k="23" />
 349.398 -<hkern g1="W" g2="G" k="22" />
 349.399 -<hkern g1="W" g2="O" k="20" />
 349.400 -<hkern g1="W" g2="S" k="24" />
 349.401 -<hkern g1="W" g2="T" k="-19" />
 349.402 -<hkern g1="W" g2="a" k="38" />
 349.403 -<hkern g1="W" g2="e" k="32" />
 349.404 -<hkern g1="W" g2="g" k="25" />
 349.405 -<hkern g1="W" g2="i" k="1" />
 349.406 -<hkern g1="W" g2="o" k="29" />
 349.407 -<hkern g1="W" g2="r" k="28" />
 349.408 -<hkern g1="W" g2="u" k="28" />
 349.409 -<hkern g1="W" g2="y" k="6" />
 349.410 -<hkern g1="X" g2="hyphen" k="51" />
 349.411 -<hkern g1="X" g2="C" k="48" />
 349.412 -<hkern g1="X" g2="O" k="45" />
 349.413 -<hkern g1="X" g2="Q" k="44" />
 349.414 -<hkern g1="X" g2="a" k="15" />
 349.415 -<hkern g1="X" g2="e" k="36" />
 349.416 -<hkern g1="X" g2="o" k="33" />
 349.417 -<hkern g1="X" g2="u" k="24" />
 349.418 -<hkern g1="X" g2="y" k="61" />
 349.419 -<hkern g1="Y" g2="comma" k="111" />
 349.420 -<hkern g1="Y" g2="hyphen" k="84" />
 349.421 -<hkern g1="Y" g2="period" k="111" />
 349.422 -<hkern g1="Y" g2="colon" k="87" />
 349.423 -<hkern g1="Y" g2="semicolon" k="88" />
 349.424 -<hkern g1="Y" g2="A" k="96" />
 349.425 -<hkern g1="Y" g2="C" k="58" />
 349.426 -<hkern g1="Y" g2="G" k="58" />
 349.427 -<hkern g1="Y" g2="O" k="56" />
 349.428 -<hkern g1="Y" g2="S" k="41" />
 349.429 -<hkern g1="Y" g2="T" k="-23" />
 349.430 -<hkern g1="Y" g2="a" k="88" />
 349.431 -<hkern g1="Y" g2="e" k="89" />
 349.432 -<hkern g1="Y" g2="g" k="83" />
 349.433 -<hkern g1="Y" g2="i" k="-3" />
 349.434 -<hkern g1="Y" g2="o" k="86" />
 349.435 -<hkern g1="Y" g2="p" k="54" />
 349.436 -<hkern g1="Y" g2="u" k="63" />
 349.437 -<hkern g1="Y" g2="v" k="36" />
 349.438 -<hkern g1="Z" g2="v" k="33" />
 349.439 -<hkern g1="Z" g2="y" k="38" />
 349.440 -<hkern g1="a" g2="j" k="4" />
 349.441 -<hkern g1="a" g2="v" k="21" />
 349.442 -<hkern g1="a" g2="w" k="13" />
 349.443 -<hkern g1="a" g2="y" k="26" />
 349.444 -<hkern g1="b" g2="v" k="11" />
 349.445 -<hkern g1="b" g2="w" k="3" />
 349.446 -<hkern g1="b" g2="y" k="15" />
 349.447 -<hkern g1="c" g2="h" k="-1" />
 349.448 -<hkern g1="c" g2="k" k="-7" />
 349.449 -<hkern g1="e" g2="t" k="10" />
 349.450 -<hkern g1="e" g2="v" k="15" />
 349.451 -<hkern g1="e" g2="w" k="9" />
 349.452 -<hkern g1="e" g2="x" k="27" />
 349.453 -<hkern g1="e" g2="y" k="19" />
 349.454 -<hkern g1="f" g2="a" k="9" />
 349.455 -<hkern g1="f" g2="e" k="15" />
 349.456 -<hkern g1="f" g2="f" k="-22" />
 349.457 -<hkern g1="f" g2="i" k="2" />
 349.458 -<hkern g1="f" g2="j" k="4" />
 349.459 -<hkern g1="f" g2="l" k="3" />
 349.460 -<hkern g1="f" g2="o" k="10" />
 349.461 -<hkern g1="f" g2="t" k="-24" />
 349.462 -<hkern g1="g" g2="a" k="5" />
 349.463 -<hkern g1="h" g2="y" k="18" />
 349.464 -<hkern g1="i" g2="T" k="7" />
 349.465 -<hkern g1="i" g2="j" k="3" />
 349.466 -<hkern g1="k" g2="hyphen" k="41" />
 349.467 -<hkern g1="k" g2="a" k="2" />
 349.468 -<hkern g1="k" g2="e" k="21" />
 349.469 -<hkern g1="k" g2="g" k="16" />
 349.470 -<hkern g1="k" g2="o" k="19" />
 349.471 -<hkern g1="k" g2="s" k="3" />
 349.472 -<hkern g1="k" g2="u" k="11" />
 349.473 -<hkern g1="l" g2="y" k="5" />
 349.474 -<hkern g1="m" g2="p" k="-5" />
 349.475 -<hkern g1="m" g2="v" k="13" />
 349.476 -<hkern g1="m" g2="w" k="7" />
 349.477 -<hkern g1="m" g2="y" k="18" />
 349.478 -<hkern g1="n" g2="T" k="96" />
 349.479 -<hkern g1="n" g2="p" k="-5" />
 349.480 -<hkern g1="n" g2="v" k="13" />
 349.481 -<hkern g1="n" g2="w" k="7" />
 349.482 -<hkern g1="n" g2="y" k="18" />
 349.483 -<hkern g1="o" g2="T" k="99" />
 349.484 -<hkern g1="o" g2="t" k="10" />
 349.485 -<hkern g1="o" g2="v" k="18" />
 349.486 -<hkern g1="o" g2="w" k="10" />
 349.487 -<hkern g1="o" g2="x" k="27" />
 349.488 -<hkern g1="o" g2="y" k="22" />
 349.489 -<hkern g1="p" g2="t" k="4" />
 349.490 -<hkern g1="p" g2="y" k="16" />
 349.491 -<hkern g1="q" g2="c" k="-8" />
 349.492 -<hkern g1="q" g2="u" k="-4" />
 349.493 -<hkern g1="r" g2="comma" k="69" />
 349.494 -<hkern g1="r" g2="hyphen" k="47" />
 349.495 -<hkern g1="r" g2="period" k="69" />
 349.496 -<hkern g1="r" g2="colon" k="22" />
 349.497 -<hkern g1="r" g2="semicolon" k="22" />
 349.498 -<hkern g1="r" g2="a" k="5" />
 349.499 -<hkern g1="r" g2="c" k="6" />
 349.500 -<hkern g1="r" g2="d" k="1" />
 349.501 -<hkern g1="r" g2="e" k="11" />
 349.502 -<hkern g1="r" g2="f" k="-26" />
 349.503 -<hkern g1="r" g2="g" k="4" />
 349.504 -<hkern g1="r" g2="i" k="-1" />
 349.505 -<hkern g1="r" g2="k" k="-6" />
 349.506 -<hkern g1="r" g2="l" k="-1" />
 349.507 -<hkern g1="r" g2="o" k="6" />
 349.508 -<hkern g1="r" g2="p" k="-8" />
 349.509 -<hkern g1="r" g2="q" k="3" />
 349.510 -<hkern g1="r" g2="s" k="-4" />
 349.511 -<hkern g1="r" g2="t" k="-28" />
 349.512 -<hkern g1="r" g2="u" k="-2" />
 349.513 -<hkern g1="r" g2="v" k="-29" />
 349.514 -<hkern g1="r" g2="w" k="-31" />
 349.515 -<hkern g1="r" g2="x" k="-20" />
 349.516 -<hkern g1="r" g2="y" k="-24" />
 349.517 -<hkern g1="r" g2="z" k="-9" />
 349.518 -<hkern g1="s" g2="t" k="3" />
 349.519 -<hkern g1="t" g2="colon" k="28" />
 349.520 -<hkern g1="t" g2="semicolon" k="28" />
 349.521 -<hkern g1="t" g2="S" k="8" />
 349.522 -<hkern g1="t" g2="a" k="1" />
 349.523 -<hkern g1="t" g2="e" k="14" />
 349.524 -<hkern g1="t" g2="h" k="3" />
 349.525 -<hkern g1="t" g2="o" k="12" />
 349.526 -<hkern g1="v" g2="comma" k="69" />
 349.527 -<hkern g1="v" g2="hyphen" k="12" />
 349.528 -<hkern g1="v" g2="period" k="69" />
 349.529 -<hkern g1="v" g2="colon" k="23" />
 349.530 -<hkern g1="v" g2="semicolon" k="23" />
 349.531 -<hkern g1="v" g2="a" k="18" />
 349.532 -<hkern g1="v" g2="c" k="16" />
 349.533 -<hkern g1="v" g2="e" k="21" />
 349.534 -<hkern g1="v" g2="g" k="14" />
 349.535 -<hkern g1="v" g2="o" k="17" />
 349.536 -<hkern g1="v" g2="s" k="9" />
 349.537 -<hkern g1="w" g2="comma" k="50" />
 349.538 -<hkern g1="w" g2="hyphen" k="1" />
 349.539 -<hkern g1="w" g2="period" k="50" />
 349.540 -<hkern g1="w" g2="colon" k="23" />
 349.541 -<hkern g1="w" g2="semicolon" k="23" />
 349.542 -<hkern g1="w" g2="a" k="15" />
 349.543 -<hkern g1="w" g2="c" k="7" />
 349.544 -<hkern g1="w" g2="e" k="12" />
 349.545 -<hkern g1="w" g2="g" k="6" />
 349.546 -<hkern g1="w" g2="o" k="9" />
 349.547 -<hkern g1="w" g2="s" k="5" />
 349.548 -<hkern g1="x" g2="a" k="17" />
 349.549 -<hkern g1="x" g2="c" k="23" />
 349.550 -<hkern g1="x" g2="e" k="28" />
 349.551 -<hkern g1="x" g2="o" k="25" />
 349.552 -<hkern g1="x" g2="q" k="20" />
 349.553 -<hkern g1="y" g2="comma" k="70" />
 349.554 -<hkern g1="y" g2="hyphen" k="14" />
 349.555 -<hkern g1="y" g2="period" k="70" />
 349.556 -<hkern g1="y" g2="colon" k="27" />
 349.557 -<hkern g1="y" g2="semicolon" k="27" />
 349.558 -<hkern g1="y" g2="a" k="22" />
 349.559 -<hkern g1="y" g2="c" k="19" />
 349.560 -<hkern g1="y" g2="e" k="24" />
 349.561 -<hkern g1="y" g2="g" k="17" />
 349.562 -<hkern g1="y" g2="l" k="4" />
 349.563 -<hkern g1="y" g2="o" k="20" />
 349.564 -<hkern g1="y" g2="s" k="12" />
 349.565 -</font>
 349.566 -</defs>
 349.567 -<g font-family="SVGFreeSansASCII" font-size="18"> 
 349.568 -<text x="20" y="60">&#160; !&quot;#$%&amp;&apos;()*+,-./0123456789:;&lt;&gt;?</text> 
 349.569 -<text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text> 
 349.570 -<text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text> 
 349.571 -</g>
 349.572 -</svg>
   350.1 --- a/test/svg/filters-gauss-201.svg	Thu Feb 24 10:19:12 2011 +0000
   350.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   350.3 @@ -1,81 +0,0 @@
   350.4 -<svg id="svg-root" width="100%" height="100%" 
   350.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   350.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   350.7 -  <!--======================================================================-->
   350.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   350.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  350.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  350.11 -  <!--=  All Rights Reserved.                                              =-->
  350.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  350.13 -  <!--======================================================================-->
  350.14 -  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  350.15 -    reviewer="[reviewer]" owner="ED" desc="Negative stdDeviation attribute values" status="created"
  350.16 -    version="$Revision$" testname="$RCSfile$">
  350.17 -    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  350.18 -      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feGaussianBlur">
  350.19 -        <p>
  350.20 -          This test tests negative values for 'stdDeviation' on 'feGaussianBlur'. 
  350.21 -        </p>
  350.22 -      </d:Reference>
  350.23 -    </d:TestDescription>
  350.24 -    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  350.25 -      <p>
  350.26 -        Run the test. No interaction required.
  350.27 -      </p>
  350.28 -    </d:OperatorScript>
  350.29 -    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  350.30 -      <p>
  350.31 -        The test has passed if there are two blurred images and they both look exactly the same.
  350.32 -      </p>
  350.33 -    </d:PassCriteria>
  350.34 -  </SVGTestCase>
  350.35 -  <title id="test-title">$RCSfile$</title>
  350.36 -  <defs>
  350.37 -    <font-face
  350.38 -      font-family="SVGFreeSansASCII"
  350.39 -      unicode-range="U+0-7F">
  350.40 -      <font-face-src>
  350.41 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  350.42 -      </font-face-src>
  350.43 -    </font-face>
  350.44 -  </defs>
  350.45 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  350.46 -    
  350.47 -    <defs>
  350.48 -      <filter id="filter1">
  350.49 -        <feGaussianBlur stdDeviation="6"/>
  350.50 -      </filter>
  350.51 -      <filter id="filter2">
  350.52 -        <feGaussianBlur stdDeviation="-6"/>
  350.53 -      </filter>
  350.54 -      <filter id="filter3">
  350.55 -        <feGaussianBlur stdDeviation="-6 6"/>
  350.56 -      </filter>
  350.57 -      <filter id="filter4">
  350.58 -        <feGaussianBlur stdDeviation="6 -6"/>
  350.59 -      </filter>
  350.60 -    </defs>
  350.61 -    
  350.62 -    <circle cx="180" cy="100" r="30" fill="red"/>
  350.63 -    <circle cx="300" cy="100" r="30" fill="red"/>
  350.64 -    <circle cx="180" cy="220" r="30" fill="red"/>
  350.65 -    <circle cx="300" cy="220" r="30" fill="red"/>
  350.66 -    
  350.67 -    <circle cx="180" cy="100" r="50" filter="url(#filter1)" fill="lime"/>
  350.68 -    <circle cx="300" cy="100" r="50" filter="url(#filter2)" fill="lime"/>
  350.69 -    <circle cx="180" cy="220" r="50" filter="url(#filter3)" fill="lime"/>
  350.70 -    <circle cx="300" cy="220" r="50" filter="url(#filter4)" fill="lime"/>
  350.71 -    
  350.72 -  </g>
  350.73 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  350.74 -  <text id="revision" x="10" y="340" stroke="none" 
  350.75 -    fill="black">$Revision$</text>
  350.76 -  </g>
  350.77 -  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  350.78 -  <!-- comment out this watermark once the test is approved -->
  350.79 -  <g id="draft-watermark">
  350.80 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  350.81 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  350.82 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  350.83 -  </g>
  350.84 -</svg>
   351.1 --- a/test/svg/filters-morph-201.svg	Thu Feb 24 10:19:12 2011 +0000
   351.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   351.3 @@ -1,84 +0,0 @@
   351.4 -<svg id="svg-root" width="100%" height="100%"
   351.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   351.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   351.7 -  <!--======================================================================-->
   351.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   351.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  351.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  351.11 -  <!--=  All Rights Reserved.                                              =-->
  351.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  351.13 -  <!--======================================================================-->
  351.14 -  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  351.15 -    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  351.16 -    version="$Revision$" testname="$RCSfile$">
  351.17 -    <d:testDescription>
  351.18 -      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feMorphologyElement">
  351.19 -        <p>
  351.20 -          Tests various values for the <a>'radius'</a> attribute on <a>'feMorphology'</a>.
  351.21 -        </p>
  351.22 -      </d:testComponent>
  351.23 -    </d:testDescription>
  351.24 -    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  351.25 -      <p>
  351.26 -        Run the test. No interaction required.
  351.27 -      </p>
  351.28 -    </d:operatorScript>
  351.29 -    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  351.30 -      <p>
  351.31 -        The test has passed if there are six lines of gradually thinning text, with the boldest line of text at the top, and no red visible. 
  351.32 -      </p>
  351.33 -    </d:passCriteria>
  351.34 -  </d:SVGTestCase>
  351.35 -  <title id="test-title">$RCSfile$</title>
  351.36 -  <defs>
  351.37 -    <font-face
  351.38 -      font-family="SVGFreeSansASCII"
  351.39 -      unicode-range="U+0-7F">
  351.40 -      <font-face-src>
  351.41 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  351.42 -      </font-face-src>
  351.43 -    </font-face>
  351.44 -  </defs>
  351.45 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  351.46 -  
  351.47 -    <defs>
  351.48 -      <filter id="morph0">
  351.49 -        <feMorphology type="erode" radius="0"/>
  351.50 -      </filter>
  351.51 -      <filter id="morph1">
  351.52 -        <feMorphology type="erode" radius="0.5"/>
  351.53 -      </filter>
  351.54 -      <filter id="morph2">
  351.55 -        <feMorphology type="erode" radius="1"/>
  351.56 -      </filter>
  351.57 -      <filter id="morph3">
  351.58 -        <feMorphology type="erode" radius="1.5"/>
  351.59 -      </filter>
  351.60 -      <filter id="morph4">
  351.61 -        <feMorphology type="erode" radius="2"/>
  351.62 -      </filter>
  351.63 -      <filter id="morph5">
  351.64 -        <feMorphology type="erode" radius="3"/>
  351.65 -      </filter>
  351.66 -    </defs>
  351.67 -    
  351.68 -    <text x="240" y="80" font-size="48" text-anchor="middle" stroke="red" fill="red">Erode radius=0.0</text>
  351.69 -    <text x="240" y="80" font-size="48" text-anchor="middle" filter="url(#morph0)" stroke="black">Erode radius=0.0</text>
  351.70 -    <text x="240" y="120" font-size="48" text-anchor="middle" filter="url(#morph1)" stroke="black">Erode radius=0.5</text>
  351.71 -    <text x="240" y="160" font-size="48" text-anchor="middle" filter="url(#morph2)" stroke="black">Erode radius=1.0</text>
  351.72 -    <text x="240" y="200" font-size="48" text-anchor="middle" filter="url(#morph3)" stroke="black">Erode radius=1.5</text>
  351.73 -    <text x="240" y="240" font-size="48" text-anchor="middle" filter="url(#morph4)" stroke="black">Erode radius=2.0</text>
  351.74 -    <text x="240" y="280" font-size="48" text-anchor="middle" filter="url(#morph5)" stroke="black">Erode radius=3.0</text>
  351.75 -  </g>
  351.76 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  351.77 -    <text id="revision" x="10" y="340" stroke="none"
  351.78 -      fill="black">$Revision$</text>
  351.79 -  </g>
  351.80 -  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  351.81 -  <!-- comment out this watermark once the test is approved -->
  351.82 -  <g id="draft-watermark">
  351.83 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  351.84 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  351.85 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  351.86 -  </g>
  351.87 -</svg>
   352.1 --- a/test/svg/filters-region-201.svg	Thu Feb 24 10:19:12 2011 +0000
   352.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   352.3 @@ -1,91 +0,0 @@
   352.4 -<svg id="svg-root" width="100%" height="100%" 
   352.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   352.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   352.7 -  <!--======================================================================-->
   352.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   352.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  352.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  352.11 -  <!--=  All Rights Reserved.                                              =-->
  352.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  352.13 -  <!--======================================================================-->
  352.14 -  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  352.15 -    reviewer="[reviewer]" owner="ED" desc="Test filter effects region" status="created"
  352.16 -    version="$Revision$" testname="$RCSfile$">
  352.17 -    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  352.18 -      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  352.19 -        <p>
  352.20 -          This test tests the x, y, width and height attributes on the 'filter' element. These attributes define the filter effects region.
  352.21 -        </p>
  352.22 -      </d:Reference>
  352.23 -    </d:TestDescription>
  352.24 -    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  352.25 -      <p>
  352.26 -        Load the test, and inspect the image for any traces of red, or misalignments.
  352.27 -      </p>
  352.28 -    </d:OperatorScript>
  352.29 -    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  352.30 -      <p>
  352.31 -        The test has passed if:
  352.32 -        <ul>
  352.33 -          <li>The test shows one green rectangle split into four subrectangles that have equal size</li>
  352.34 -          <li>There is no red visible</li>
  352.35 -        </ul>
  352.36 -      </p>
  352.37 -    </d:PassCriteria>
  352.38 -  </SVGTestCase>
  352.39 -  <title id="test-title">$RCSfile$</title>
  352.40 -  <defs>
  352.41 -    <font-face
  352.42 -      font-family="SVGFreeSansASCII"
  352.43 -      unicode-range="U+0-7F">
  352.44 -      <font-face-src>
  352.45 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  352.46 -      </font-face-src>
  352.47 -    </font-face>
  352.48 -  </defs>
  352.49 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  352.50 -    
  352.51 -    <defs>
  352.52 -      <!-- test small region -->
  352.53 -      <filter id="filter11" x="0" y="0" width="50%" height="50%">
  352.54 -        <feFlood flood-color="lime"/>
  352.55 -      </filter>
  352.56 -      
  352.57 -      <!-- test large region -->
  352.58 -      <filter id="filter12" x="-20%" y="-20%" width="200%" height="200%">
  352.59 -        <feFlood flood-color="lime"/>
  352.60 -      </filter>
  352.61 -      
  352.62 -      <!-- test lacuna values -->
  352.63 -      <filter id="filter21">
  352.64 -        <feFlood flood-color="lime"/>
  352.65 -      </filter>
  352.66 -      
  352.67 -      <!-- test negative width/height values -->
  352.68 -      <filter id="filter22" width="-1" height="-20%">
  352.69 -        <feFlood flood-color="red"/>
  352.70 -      </filter>
  352.71 -    </defs>
  352.72 -    
  352.73 -    <rect x="50" y="40" width="380" height="240" fill="red"/>
  352.74 -    <rect x="50" y="40" width="380" height="240" fill="red" filter="url(#filter11)"/>
  352.75 -    <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  352.76 -    <rect x="66" y="170" width="158" height="100" fill="red" filter="url(#filter21)"/>
  352.77 -    <rect x="240" y="160" width="190" height="120" fill="lime"/>
  352.78 -    <rect x="240" y="160" width="170" height="120" fill="red" filter="url(#filter22)"/>
  352.79 -    <line x1="240" y1="40" x2="240" y2="280" stroke="black"/>
  352.80 -    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  352.81 -    
  352.82 -  </g>
  352.83 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  352.84 -  <text id="revision" x="10" y="340" stroke="none" 
  352.85 -    fill="black">$Revision$</text>
  352.86 -  </g>
  352.87 -  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  352.88 -  <!-- comment out this watermark once the test is approved -->
  352.89 -  <g id="draft-watermark">
  352.90 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  352.91 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  352.92 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  352.93 -  </g>
  352.94 -</svg>
   353.1 --- a/test/svg/filters-region-202.svg	Thu Feb 24 10:19:12 2011 +0000
   353.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   353.3 @@ -1,82 +0,0 @@
   353.4 -<svg id="svg-root" width="100%" height="100%" 
   353.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   353.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   353.7 -  <!--======================================================================-->
   353.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   353.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  353.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  353.11 -  <!--=  All Rights Reserved.                                              =-->
  353.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  353.13 -  <!--======================================================================-->
  353.14 -  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  353.15 -    reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created"
  353.16 -    version="$Revision$" testname="$RCSfile$">
  353.17 -    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  353.18 -      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  353.19 -        <p>
  353.20 -          This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'.
  353.21 -        </p>
  353.22 -      </d:Reference>
  353.23 -    </d:TestDescription>
  353.24 -    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  353.25 -      <p>
  353.26 -        Load the test, and inspect the image for any traces of red.
  353.27 -      </p>
  353.28 -    </d:OperatorScript>
  353.29 -    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  353.30 -      <p>
  353.31 -        The test has passed if:
  353.32 -        <ul>
  353.33 -          <li>The test shows one green rectangle split into two subrectangles that have equal size</li>
  353.34 -          <li>There is no red visible</li>
  353.35 -          <li>There is no green visible outside the two stroked subrectangles</li>
  353.36 -        </ul>
  353.37 -      </p>
  353.38 -    </d:PassCriteria>
  353.39 -  </SVGTestCase>
  353.40 -  <title id="test-title">$RCSfile$</title>
  353.41 -  <defs>
  353.42 -    <font-face
  353.43 -      font-family="SVGFreeSansASCII"
  353.44 -      unicode-range="U+0-7F">
  353.45 -      <font-face-src>
  353.46 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  353.47 -      </font-face-src>
  353.48 -    </font-face>
  353.49 -  </defs>
  353.50 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  353.51 -    
  353.52 -    <defs>
  353.53 -      <!-- test percentage resolving -->
  353.54 -      <filter id="filter11" x="50" y="40" width="79.16%" height="33.33%" filterUnits="userSpaceOnUse">
  353.55 -        <feFlood flood-color="lime"/>
  353.56 -      </filter>
  353.57 -            
  353.58 -      <!-- test lacuna values -->
  353.59 -      <filter id="filter12" filterUnits="userSpaceOnUse">
  353.60 -        <feFlood flood-color="lime"/>
  353.61 -      </filter>
  353.62 -    </defs>
  353.63 -    
  353.64 -    <rect x="50" y="40" width="380" height="240" fill="red"/>
  353.65 -    <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/>
  353.66 -    
  353.67 -    <svg x="82" y="170" width="316" height="100" overflow="visible">
  353.68 -      <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  353.69 -    </svg>
  353.70 -    
  353.71 -    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  353.72 -    <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 
  353.73 -  </g>
  353.74 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  353.75 -  <text id="revision" x="10" y="340" stroke="none" 
  353.76 -    fill="black">$Revision$</text>
  353.77 -  </g>
  353.78 -  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  353.79 -  <!-- comment out this watermark once the test is approved -->
  353.80 -  <g id="draft-watermark">
  353.81 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  353.82 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  353.83 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  353.84 -  </g>
  353.85 -</svg>
   354.1 --- a/test/svg/filters-region-203.svg	Thu Feb 24 10:19:12 2011 +0000
   354.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   354.3 @@ -1,82 +0,0 @@
   354.4 -<svg id="svg-root" width="100%" height="100%" 
   354.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 
   354.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   354.7 -  <!--======================================================================-->
   354.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   354.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  354.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  354.11 -  <!--=  All Rights Reserved.                                              =-->
  354.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  354.13 -  <!--======================================================================-->
  354.14 -  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 
  354.15 -    reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created"
  354.16 -    version="$Revision$" testname="$RCSfile$">
  354.17 -    <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/">
  354.18 -      <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion">
  354.19 -        <p>
  354.20 -          This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'.
  354.21 -        </p>
  354.22 -      </d:Reference>
  354.23 -    </d:TestDescription>
  354.24 -    <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  354.25 -      <p>
  354.26 -        Load the test, and inspect the image for any traces of red.
  354.27 -      </p>
  354.28 -    </d:OperatorScript>
  354.29 -    <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml">
  354.30 -      <p>
  354.31 -        The test has passed if:
  354.32 -        <ul>
  354.33 -          <li>The test shows one green rectangle split into two subrectangles that have equal size</li>
  354.34 -          <li>There is no red visible</li>
  354.35 -          <li>There is no green visible outside the two stroked subrectangles</li>
  354.36 -        </ul>
  354.37 -      </p>
  354.38 -    </d:PassCriteria>
  354.39 -  </SVGTestCase>
  354.40 -  <title id="test-title">$RCSfile$</title>
  354.41 -  <defs>
  354.42 -    <font-face
  354.43 -      font-family="SVGFreeSansASCII"
  354.44 -      unicode-range="U+0-7F">
  354.45 -      <font-face-src>
  354.46 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  354.47 -      </font-face-src>
  354.48 -    </font-face>
  354.49 -  </defs>
  354.50 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
  354.51 -    
  354.52 -    <defs>
  354.53 -      <!-- test percentage resolving -->
  354.54 -      <filter id="filter11" x="0%" y="0%" width="100%" height="100%" primitiveUnits="objectBoundingBox">
  354.55 -        <feFlood flood-color="lime" x="10%" y="10%" width="80%" height="80%"/>
  354.56 -      </filter>
  354.57 -            
  354.58 -      <!-- test lacuna values -->
  354.59 -      <filter id="filter12" filterUnits="userSpaceOnUse">
  354.60 -        <feFlood flood-color="lime"/>
  354.61 -      </filter>
  354.62 -    </defs>
  354.63 -    
  354.64 -    <rect x="50" y="40" width="380" height="240" fill="red"/>
  354.65 -    <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/>
  354.66 -    
  354.67 -    <svg x="82" y="170" width="316" height="100" overflow="visible">
  354.68 -      <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/>
  354.69 -    </svg>
  354.70 -    
  354.71 -    <line x1="50" y1="160" x2="430" y2="160" stroke="black"/>
  354.72 -    <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 
  354.73 -  </g>
  354.74 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  354.75 -  <text id="revision" x="10" y="340" stroke="none" 
  354.76 -    fill="black">$Revision$</text>
  354.77 -  </g>
  354.78 -  <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  354.79 -  <!-- comment out this watermark once the test is approved -->
  354.80 -  <g id="draft-watermark">
  354.81 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  354.82 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 
  354.83 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  354.84 -  </g>
  354.85 -</svg>
   355.1 --- a/test/svg/filters-turb-201.svg	Thu Feb 24 10:19:12 2011 +0000
   355.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   355.3 @@ -1,85 +0,0 @@
   355.4 -<svg id="svg-root" width="100%" height="100%"
   355.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   355.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   355.7 -  <!--======================================================================-->
   355.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   355.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  355.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  355.11 -  <!--=  All Rights Reserved.                                              =-->
  355.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  355.13 -  <!--======================================================================-->
  355.14 -  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  355.15 -    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  355.16 -    version="$Revision$" testname="$RCSfile$">
  355.17 -    <d:testDescription>
  355.18 -      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="http://www.w3.org/TR/SVG11/[chapter]">
  355.19 -        <p>
  355.20 -          Tests the <a>'feTurbulence/type'</a> attribute on <a>'feTurbulence'</a>.
  355.21 -        </p>
  355.22 -      </d:testComponent>
  355.23 -    </d:testDescription>
  355.24 -    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  355.25 -      <p>
  355.26 -        There should be three rectangular filtered areas, showing some turbulence noise.
  355.27 -      </p>
  355.28 -    </d:operatorScript>
  355.29 -    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  355.30 -      <p>
  355.31 -        The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different.
  355.32 -        <!-- FIXME: Add better pass criteria. -->
  355.33 -      </p>
  355.34 -    </d:passCriteria>
  355.35 -  </d:SVGTestCase>
  355.36 -  <title id="test-title">$RCSfile$</title>
  355.37 -  <defs>
  355.38 -    <font-face
  355.39 -      font-family="SVGFreeSansASCII"
  355.40 -      unicode-range="U+0-7F">
  355.41 -      <font-face-src>
  355.42 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  355.43 -      </font-face-src>
  355.44 -    </font-face>
  355.45 -  </defs>
  355.46 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  355.47 -  
  355.48 -    <defs>
  355.49 -      <filter id="t1" x="0" y="0" width="1" height="1">
  355.50 -        <feTurbulence baseFrequency="0.15" />
  355.51 -      </filter>
  355.52 -      <filter id="t2" x="0" y="0" width="1" height="1">
  355.53 -        <feTurbulence baseFrequency="0.15" type="fractalNoise"/>
  355.54 -      </filter>
  355.55 -      <filter id="t3" x="0" y="0" width="1" height="1">
  355.56 -        <feTurbulence baseFrequency="0.15" type="turbulence"/>
  355.57 -      </filter>
  355.58 -    </defs>
  355.59 -    
  355.60 -    <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence type attribute</text>
  355.61 -    
  355.62 -    <g transform="translate(80 120)">
  355.63 -      <g transform="translate(0 0)">
  355.64 -        <rect width="100" height="100" filter="url(#t1)"/>
  355.65 -        <text x="50" y="120" text-anchor="middle">lacuna value</text>
  355.66 -      </g>
  355.67 -      <g transform="translate(100 0)">
  355.68 -        <rect width="100" height="100" filter="url(#t2)"/>
  355.69 -        <text x="50" y="120" text-anchor="middle">fractalNoise</text>
  355.70 -      </g>
  355.71 -      <g transform="translate(200 0)">
  355.72 -        <rect width="100" height="100" filter="url(#t3)"/>
  355.73 -        <text x="50" y="120" text-anchor="middle">turbulence</text>
  355.74 -      </g>
  355.75 -    </g>
  355.76 -  </g>
  355.77 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  355.78 -    <text id="revision" x="10" y="340" stroke="none"
  355.79 -      fill="black">$Revision$</text>
  355.80 -  </g>
  355.81 -  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  355.82 -  <!-- comment out this watermark once the test is approved -->
  355.83 -  <g id="draft-watermark">
  355.84 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  355.85 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  355.86 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  355.87 -  </g>
  355.88 -</svg>
   356.1 --- a/test/svg/filters-turb-202.svg	Thu Feb 24 10:19:12 2011 +0000
   356.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   356.3 @@ -1,88 +0,0 @@
   356.4 -<svg id="svg-root" width="100%" height="100%"
   356.5 -  viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
   356.6 -  xmlns:xlink="http://www.w3.org/1999/xlink">
   356.7 -  <!--======================================================================-->
   356.8 -  <!--=  Copyright 2008 World Wide Web Consortium, (Massachusetts          =-->
   356.9 -  <!--=  Institute of Technology, European Research Consortium for         =-->
  356.10 -  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  356.11 -  <!--=  All Rights Reserved.                                              =-->
  356.12 -  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  356.13 -  <!--======================================================================-->
  356.14 -  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
  356.15 -    template-version="1.3" reviewer="[reviewer]" author="ED" status="created"
  356.16 -    version="$Revision$" testname="$RCSfile$">
  356.17 -    <d:testDescription>
  356.18 -      <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="#assert_turbulenceStitchTilesLacunaValue">
  356.19 -        <p>
  356.20 -          Tests the <a>'feTurbulence/stitchTiles'</a> attribute on <a>'feTurbulence'</a>.
  356.21 -        </p>
  356.22 -      </d:testComponent>
  356.23 -    </d:testDescription>
  356.24 -    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
  356.25 -      <p>
  356.26 -        There should be three rectangular filtered areas, showing some turbulence noise.
  356.27 -      </p>
  356.28 -    </d:operatorScript>
  356.29 -    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
  356.30 -      <p>
  356.31 -        The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different.
  356.32 -        <!-- FIXME: Add better pass criteria. -->
  356.33 -      </p>
  356.34 -    </d:passCriteria>
  356.35 -  </d:SVGTestCase>
  356.36 -  <title id="test-title">$RCSfile$</title>
  356.37 -  <defs>
  356.38 -    <font-face
  356.39 -      font-family="SVGFreeSansASCII"
  356.40 -      unicode-range="U+0-7F">
  356.41 -      <font-face-src>
  356.42 -        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
  356.43 -      </font-face-src>
  356.44 -    </font-face>
  356.45 -  </defs>
  356.46 -  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
  356.47 -  
  356.48 -    <defs>
  356.49 -      <filter id="t1" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  356.50 -        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" />
  356.51 -        <feTile/>
  356.52 -      </filter>
  356.53 -      <filter id="t2" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  356.54 -        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="stitch"/>
  356.55 -        <feTile/>
  356.56 -      </filter>
  356.57 -      <filter id="t3" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
  356.58 -        <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="noStitch"/>
  356.59 -        <feTile/>
  356.60 -      </filter>
  356.61 -    </defs>
  356.62 -    
  356.63 -    <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence stitchTiles attribute</text>
  356.64 -    
  356.65 -    <g transform="translate(80 120)">
  356.66 -      <g transform="translate(-10 0)">
  356.67 -        <rect width="100" height="100" filter="url(#t1)"/>
  356.68 -        <text x="50" y="120" text-anchor="middle">lacuna value</text>
  356.69 -      </g>
  356.70 -      <g transform="translate(110 0)">
  356.71 -        <rect width="100" height="100" filter="url(#t2)"/>
  356.72 -        <text x="50" y="120" text-anchor="middle">stitch</text>
  356.73 -      </g>
  356.74 -      <g transform="translate(230 0)">
  356.75 -        <rect width="100" height="100" filter="url(#t3)"/>
  356.76 -        <text x="50" y="120" text-anchor="middle">noStitch</text>
  356.77 -      </g>
  356.78 -    </g>
  356.79 -  </g>
  356.80 -  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
  356.81 -    <text id="revision" x="10" y="340" stroke="none"
  356.82 -      fill="black">$Revision$</text>
  356.83 -  </g>
  356.84 -  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  356.85 -  <!-- comment out this watermark once the test is approved -->
  356.86 -  <g id="draft-watermark">
  356.87 -    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
  356.88 -    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
  356.89 -      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  356.90 -  </g>
  356.91 -</svg>

mercurial