public static function get_allowed_tags() {
		$tags = array(
			'a',
			'altGlyph',
			'altGlyphDef',
			'altGlyphItem',
			'animate',
			'animateColor',
			'animateMotion',
			'animateTransform',
			'audio',
			'canvas',
			'circle',
			'clipPath',
			'color-profile',
			'cursor',
			'defs',
			'desc',
			'discard',
			'ellipse',
			'feBlend',
			'feColorMatrix',
			'feComponentTransfer',
			'feComposite',
			'feConvolveMatrix',
			'feDiffuseLighting',
			'feDisplacementMap',
			'feDistantLight',
			'feDropShadow',
			'feFlood',
			'feFuncA',
			'feFuncB',
			'feFuncG',
			'feFuncR',
			'feGaussianBlur',
			'feImage',
			'feMerge',
			'feMergeNode',
			'feMorphology',
			'feOffset',
			'fePointLight',
			'feSpecularLighting',
			'feSpotLight',
			'feTile',
			'feTurbulence',
			'filter',
			'font',
			'font-face',
			'font-face-format',
			'font-face-name',
			'font-face-src',
			'font-face-uri',
			'g',
			'glyph',
			'glyphRef',
			'hatch',
			'hatchpath',
			'hkern',
			'image',
			'line',
			'linearGradient',
			'marker',
			'mask',
			'mesh',
			'meshgradient',
			'meshpatch',
			'meshrow',
			'metadata',
			'missing-glyph',
			'mpath',
			'path',
			'pattern',
			'polygon',
			'polyline',
			'radialGradient',
			'rect',
			'set',
			'solidcolor',
			'stop',
			'style',
			'svg',
			'switch',
			'symbol',
			'text',
			'textPath',
			'title',
			'tref',
			'tspan',
			'unknown',
			'use',
			'video',
			'view',
			'vkern',
		);

		$tags = apply_filters('blobmimes_svg_allowed_tags', $tags);
		if (!is_array($tags) || !count($tags)) {
			return array();
		}

		// Convert to lowercase for easier comparison.
		foreach ($tags as $k=>$v) {
			$tags[$k] = mb::strtolower(trim($v));
			if (!strlen($tags[$k])) {
				unset($tags[$k]);
			}
		}

		// Pre-sorting will speed up looped checks.
		$tags = array_unique($tags);
		sort($tags);
		return $tags;
	}