/*!
 * Copyright (c) 2011 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version ${Version}
 */

var Cufon = (function() {

	var api = function() {
		return api.replace.apply(null, arguments);
	};

	var DOM = api.DOM = {

		ready: (function() {

			var complete = false, readyStatus = { loaded: 1, complete: 1 };

			var queue = [], perform = function() {
				if (complete) return;
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};

			// Gecko, Opera, WebKit r26101+

			if (document.addEventListener) {
				document.addEventListener('DOMContentLoaded', perform, false);
				window.addEventListener('pageshow', perform, false); // For cached Gecko pages
			}

			// Old WebKit, Internet Explorer

			if (!window.opera && document.readyState) (function() {
				readyStatus[document.readyState] ? perform() : setTimeout(arguments.callee, 10);
			})();

			// Internet Explorer

			if (document.readyState && document.createStyleSheet) (function() {
				try {
					document.body.doScroll('left');
					perform();
				}
				catch (e) {
					setTimeout(arguments.callee, 1);
				}
			})();

			addEvent(window, 'load', perform); // Fallback

			return function(listener) {
				if (!arguments.length) perform();
				else complete ? listener() : queue.push(listener);
			};

		})(),

		root: function() {
			return document.documentElement || document.body;
		},

		strict: (function() {
			var doctype;
			// no doctype (doesn't always catch it though.. IE I'm looking at you)
			if (document.compatMode == 'BackCompat') return false;
			// WebKit, Gecko, Opera, IE9+
			doctype = document.doctype;
			if (doctype) {
				return !/frameset|transitional/i.test(doctype.publicId);
			}
			// IE<9, firstChild is the doctype even if there's an XML declaration
			doctype = document.firstChild;
			if (doctype.nodeType != 8 || /^DOCTYPE.+(transitional|frameset)/i.test(doctype.data)) {
				return false;
			}
			return true;
		})()

	};

	var CSS = api.CSS = {

		Size: function(value, base) {

			this.value = parseFloat(value);
			this.unit = String(value).match(/[a-z%]*$/)[0] || 'px';

			this.convert = function(value) {
				return value / base * this.value;
			};

			this.convertFrom = function(value) {
				return value / this.value * base;
			};

			this.toString = function() {
				return this.value + this.unit;
			};

		},

		addClass: function(el, className) {
			var current = el.className;
			el.className = current + (current && ' ') + className;
			return el;
		},

		color: cached(function(value) {
			var parsed = {};
			parsed.color = value.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function($0, $1, $2) {
				parsed.opacity = parseFloat($2);
				return 'rgb(' + $1 + ')';
			});
			return parsed;
		}),

		// has no direct CSS equivalent.
		// @see http://msdn.microsoft.com/en-us/library/system.windows.fontstretches.aspx
		fontStretch: cached(function(value) {
			if (typeof value == 'number') return value;
			if (/%$/.test(value)) return parseFloat(value) / 100;
			return {
				'ultra-condensed': 0.5,
				'extra-condensed': 0.625,
				condensed: 0.75,
				'semi-condensed': 0.875,
				'semi-expanded': 1.125,
				expanded: 1.25,
				'extra-expanded': 1.5,
				'ultra-expanded': 2
			}[value] || 1;
		}),

		getStyle: function(el) {
			var view = document.defaultView;
			if (view && view.getComputedStyle) return new Style(view.getComputedStyle(el, null));
			if (el.currentStyle) return new Style(el.currentStyle);
			return new Style(el.style);
		},

		gradient: cached(function(value) {
			var gradient = {
				id: value,
				type: value.match(/^-([a-z]+)-gradient\(/)[1],
				stops: []
			}, colors = value.substr(value.indexOf('(')).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);
			for (var i = 0, l = colors.length, stop; i < l; ++i) {
				stop = colors[i].split('=', 2).reverse();
				gradient.stops.push([ stop[1] || i / (l - 1), stop[0] ]);
			}
			return gradient;
		}),

		quotedList: cached(function(value) {
			// doesn't work properly with empty quoted strings (""), but
			// it's not worth the extra code.
			var list = [], re = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, match;
			while (match = re.exec(value)) list.push(match[3] || match[1]);
			return list;
		}),

		recognizesMedia: cached(function(media) {
			var el = document.createElement('style'), sheet, container, supported;
			el.type = 'text/css';
			el.media = media;
			try { // this is cached anyway
				el.appendChild(document.createTextNode('/**/'));
			} catch (e) {}
			container = elementsByTagName('head')[0];
			container.insertBefore(el, container.firstChild);
			sheet = (el.sheet || el.styleSheet);
			supported = sheet && !sheet.disabled;
			container.removeChild(el);
			return supported;
		}),

		removeClass: function(el, className) {
			var re = RegExp('(?:^|\\s+)' + className +  '(?=\\s|$)', 'g');
			el.className = el.className.replace(re, '');
			return el;
		},

		supports: function(property, value) {
			var checker = document.createElement('span').style;
			if (checker[property] === undefined) return false;
			checker[property] = value;
			return checker[property] === value;
		},

		textAlign: function(word, style, position, wordCount) {
			if (style.get('textAlign') == 'right') {
				if (position > 0) word = ' ' + word;
			}
			else if (position < wordCount - 1) word += ' ';
			return word;
		},

		textShadow: cached(function(value) {
			if (value == 'none') return null;
			var shadows = [], currentShadow = {}, result, offCount = 0;
			var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
			while (result = re.exec(value)) {
				if (result[0] == ',') {
					shadows.push(currentShadow);
					currentShadow = {};
					offCount = 0;
				}
				else if (result[1]) {
					currentShadow.color = result[1];
				}
				else {
					currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2];
				}
			}
			shadows.push(currentShadow);
			return shadows;
		}),

		textTransform: (function() {
			var map = {
				uppercase: function(s) {
					return s.toUpperCase();
				},
				lowercase: function(s) {
					return s.toLowerCase();
				},
				capitalize: function(s) {
					return s.replace(/(?:^|\s)./g, function($0) {
						return $0.toUpperCase();
					});
				}
			};
			return function(text, style) {
				var transform = map[style.get('textTransform')];
				return transform ? transform(text) : text;
			};
		})(),

		whiteSpace: (function() {
			var ignore = {
				inline: 1,
				'inline-block': 1,
				'run-in': 1
			};
			var wsStart = /^\s+/, wsEnd = /\s+$/;
			return function(text, style, node, previousElement, simple) {
				if (simple) return text.replace(wsStart, '').replace(wsEnd, ''); // @fixme too simple
				if (previousElement) {
					if (previousElement.nodeName.toLowerCase() == 'br') {
						text = text.replace(wsStart, '');
					}
				}
				if (ignore[style.get('display')]) return text;
				if (!node.previousSibling) text = text.replace(wsStart, '');
				if (!node.nextSibling) text = text.replace(wsEnd, '');
				return text;
			};
		})()

	};

	CSS.ready = (function() {

		// don't do anything in Safari 2 (it doesn't recognize any media type)
		var complete = !CSS.recognizesMedia('all'), hasLayout = false;

		var queue = [], perform = function() {
			complete = true;
			for (var fn; fn = queue.shift(); fn());
		};

		var links = elementsByTagName('link'), styles = elementsByTagName('style');

		var checkTypes = {
			'': 1,
			'text/css': 1
		};

		function isContainerReady(el) {
			if (!checkTypes[el.type.toLowerCase()]) return true;
			return el.disabled || isSheetReady(el.sheet, el.media || 'screen');
		}

		function isSheetReady(sheet, media) {
			// in Opera sheet.disabled is true when it's still loading,
			// even though link.disabled is false. they stay in sync if
			// set manually.
			if (!CSS.recognizesMedia(media || 'all')) return true;
			if (!sheet || sheet.disabled) return false;
			try {
				var rules = sheet.cssRules, rule;
				if (rules) {
					// needed for Safari 3 and Chrome 1.0.
					// in standards-conforming browsers cssRules contains @-rules.
					// Chrome 1.0 weirdness: rules[<number larger than .length - 1>]
					// returns the last rule, so a for loop is the only option.
					search: for (var i = 0, l = rules.length; rule = rules[i], i < l; ++i) {
						switch (rule.type) {
							case 2: // @charset
								break;
							case 3: // @import
								if (!isSheetReady(rule.styleSheet, rule.media.mediaText)) return false;
								break;
							default:
								// only @charset can precede @import
								break search;
						}
					}
				}
			}
			catch (e) {} // probably a style sheet from another domain
			return true;
		}

		function allStylesLoaded() {
			// Internet Explorer's style sheet model, there's no need to do anything
			if (document.createStyleSheet) return true;
			// standards-compliant browsers
			var el, i;
			for (i = 0; el = links[i]; ++i) {
				if (el.rel.toLowerCase() == 'stylesheet' && !isContainerReady(el)) return false;
			}
			for (i = 0; el = styles[i]; ++i) {
				if (!isContainerReady(el)) return false;
			}
			return true;
		}

		DOM.ready(function() {
			// getComputedStyle returns null in Gecko if used in an iframe with display: none
			if (!hasLayout) hasLayout = CSS.getStyle(document.body).isUsable();
			if (complete || (hasLayout && allStylesLoaded())) perform();
			else setTimeout(arguments.callee, 10);
		});

		return function(listener) {
			if (complete) listener();
			else queue.push(listener);
		};

	})();

	function Font(data) {

		var face = this.face = data.face, wordSeparators = {
			'\u0020': 1,
			'\u00a0': 1,
			'\u3000': 1
		};

		this.glyphs = (function(glyphs) {
			var key, fallbacks = {
				'\u2011': '\u002d',
				'\u00ad': '\u2011'
			};
			for (key in fallbacks) {
				if (!hasOwnProperty(fallbacks, key)) continue;
				if (!glyphs[key]) glyphs[key] = glyphs[fallbacks[key]];
			}
			return glyphs;
		})(data.glyphs);

		this.w = data.w;
		this.baseSize = parseInt(face['units-per-em'], 10);

		this.family = face['font-family'].toLowerCase();
		this.weight = face['font-weight'];
		this.style = face['font-style'] || 'normal';

		this.viewBox = (function () {
			var parts = face.bbox.split(/\s+/);
			var box = {
				minX: parseInt(parts[0], 10),
				minY: parseInt(parts[1], 10),
				maxX: parseInt(parts[2], 10),
				maxY: parseInt(parts[3], 10)
			};
			box.width = box.maxX - box.minX;
			box.height = box.maxY - box.minY;
			box.toString = function() {
				return [ this.minX, this.minY, this.width, this.height ].join(' ');
			};
			return box;
		})();

		this.ascent = -parseInt(face.ascent, 10);
		this.descent = -parseInt(face.descent, 10);

		this.height = -this.ascent + this.descent;

		this.spacing = function(chars, letterSpacing, wordSpacing) {
			var glyphs = this.glyphs, glyph,
				kerning, k,
				jumps = [],
				width = 0, w,
				i = -1, j = -1, chr;
			while (chr = chars[++i]) {
				glyph = glyphs[chr] || this.missingGlyph;
				if (!glyph) continue;
				if (kerning) {
					width -= k = kerning[chr] || 0;
					jumps[j] -= k;
				}
				w = glyph.w;
				if (isNaN(w)) w = +this.w; // may have been a String in old fonts
				if (w > 0) {
					w += letterSpacing;
					if (wordSeparators[chr]) w += wordSpacing;
				}
				width += jumps[++j] = ~~w; // get rid of decimals
				kerning = glyph.k;
			}
			jumps.total = width;
			return jumps;
		};

	}

	function FontFamily() {

		var styles = {}, mapping = {
			oblique: 'italic',
			italic: 'oblique'
		};

		this.add = function(font) {
			(styles[font.style] || (styles[font.style] = {}))[font.weight] = font;
		};

		this.get = function(style, weight) {
			var weights = styles[style] || styles[mapping[style]]
				|| styles.normal || styles.italic || styles.oblique;
			if (!weights) return null;
			// we don't have to worry about "bolder" and "lighter"
			// because IE's currentStyle returns a numeric value for it,
			// and other browsers use the computed value anyway
			weight = {
				normal: 400,
				bold: 700
			}[weight] || parseInt(weight, 10);
			if (weights[weight]) return weights[weight];
			// http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight
			// Gecko uses x99/x01 for lighter/bolder
			var up = {
				1: 1,
				99: 0
			}[weight % 100], alts = [], min, max;
			if (up === undefined) up = weight > 400;
			if (weight == 500) weight = 400;
			for (var alt in weights) {
				if (!hasOwnProperty(weights, alt)) continue;
				alt = parseInt(alt, 10);
				if (!min || alt < min) min = alt;
				if (!max || alt > max) max = alt;
				alts.push(alt);
			}
			if (weight < min) weight = min;
			if (weight > max) weight = max;
			alts.sort(function(a, b) {
				return (up
					? (a >= weight && b >= weight) ? a < b : a > b
					: (a <= weight && b <= weight) ? a > b : a < b) ? -1 : 1;
			});
			return weights[alts[0]];
		};

	}

	function HoverHandler() {

		function contains(node, anotherNode) {
			try {
				if (node.contains) return node.contains(anotherNode);
				return node.compareDocumentPosition(anotherNode) & 16;
			}
			catch(e) {} // probably a XUL element such as a scrollbar
			return false;
		}

		// mouseover/mouseout (standards) mode
		function onOverOut(e) {
			var related = e.relatedTarget;
			// there might be no relatedTarget if the element is right next
			// to the window frame
			if (related && contains(this, related)) return;
			trigger(this, e.type == 'mouseover');
		}

		// mouseenter/mouseleave (probably ie) mode
		function onEnterLeave(e) {
			if (!e) e = window.event;
			// ie model, we don't have access to "this", but
			// mouseenter/leave doesn't bubble so it's fine.
			trigger(e.target || e.srcElement, e.type == 'mouseenter');
		}

		function trigger(el, hoverState) {
			// A timeout is needed so that the event can actually "happen"
			// before replace is triggered. This ensures that styles are up
			// to date.
			setTimeout(function() {
				var options = sharedStorage.get(el).options;
				if (hoverState) {
					options = merge(options, options.hover);
					options._mediatorMode = 1;
				}
				api.replace(el, options, true);
			}, 10);
		}

		this.attach = function(el) {
			if (el.onmouseenter === undefined) {
				addEvent(el, 'mouseover', onOverOut);
				addEvent(el, 'mouseout', onOverOut);
			}
			else {
				addEvent(el, 'mouseenter', onEnterLeave);
				addEvent(el, 'mouseleave', onEnterLeave);
			}
		};

		this.detach = function(el) {
			if (el.onmouseenter === undefined) {
				removeEvent(el, 'mouseover', onOverOut);
				removeEvent(el, 'mouseout', onOverOut);
			}
			else {
				removeEvent(el, 'mouseenter', onEnterLeave);
				removeEvent(el, 'mouseleave', onEnterLeave);
			}
		};

	}

	function ReplaceHistory() {

		var list = [], map = {};

		function filter(keys) {
			var values = [], key;
			for (var i = 0; key = keys[i]; ++i) values[i] = list[map[key]];
			return values;
		}

		this.add = function(key, args) {
			map[key] = list.push(args) - 1;
		};

		this.repeat = function() {
			var snapshot = arguments.length ? filter(arguments) : list, args;
			for (var i = 0; args = snapshot[i++];) api.replace(args[0], args[1], true);
		};

	}

	function Storage() {

		var map = {}, at = 0;

		function identify(el) {
			return el.cufid || (el.cufid = ++at);
		}

		this.get = function(el) {
			var id = identify(el);
			return map[id] || (map[id] = {});
		};

	}

	function Style(style) {

		var custom = {}, sizes = {};

		this.extend = function(styles) {
			for (var property in styles) {
				if (hasOwnProperty(styles, property)) custom[property] = styles[property];
			}
			return this;
		};

		this.get = function(property) {
			return custom[property] != undefined ? custom[property] : style[property];
		};

		this.getSize = function(property, base) {
			return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base));
		};

		this.isUsable = function() {
			return !!style;
		};

	}

	function addEvent(el, type, listener) {
		if (el.addEventListener) {
			el.addEventListener(type, listener, false);
		}
		else if (el.attachEvent) {
			// we don't really need "this" right now, saves code
			el.attachEvent('on' + type, listener);
		}
	}

	function attach(el, options) {
		if (options._mediatorMode) return el;
		var storage = sharedStorage.get(el);
		var oldOptions = storage.options;
		if (oldOptions) {
			if (oldOptions === options) return el;
			if (oldOptions.hover) hoverHandler.detach(el);
		}
		if (options.hover && options.hoverables[el.nodeName.toLowerCase()]) {
			hoverHandler.attach(el);
		}
		storage.options = options;
		return el;
	}

	function cached(fun) {
		var cache = {};
		return function(key) {
			if (!hasOwnProperty(cache, key)) cache[key] = fun.apply(null, arguments);
			return cache[key];
		};
	}

	function getFont(el, style) {
		var families = CSS.quotedList(style.get('fontFamily').toLowerCase()), family;
		for (var i = 0; family = families[i]; ++i) {
			if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight'));
		}
		return null;
	}

	function elementsByTagName(query) {
		return document.getElementsByTagName(query);
	}

	function hasOwnProperty(obj, property) {
		return obj.hasOwnProperty(property);
	}

	function merge() {
		var merged = {}, arg, key;
		for (var i = 0, l = arguments.length; arg = arguments[i], i < l; ++i) {
			for (key in arg) {
				if (hasOwnProperty(arg, key)) merged[key] = arg[key];
			}
		}
		return merged;
	}

	function process(font, text, style, options, node, el) {
		var fragment = document.createDocumentFragment(), processed;
		if (text === '') return fragment;
		var separate = options.separate;
		var parts = text.split(separators[separate]), needsAligning = (separate == 'words');
		if (needsAligning && HAS_BROKEN_REGEXP) {
			// @todo figure out a better way to do this
			if (/^\s/.test(text)) parts.unshift('');
			if (/\s$/.test(text)) parts.push('');
		}
		for (var i = 0, l = parts.length; i < l; ++i) {
			processed = engines[options.engine](font,
				needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i],
				style, options, node, el, i < l - 1);
			if (processed) fragment.appendChild(processed);
		}
		return fragment;
	}

	function removeEvent(el, type, listener) {
		if (el.removeEventListener) {
			el.removeEventListener(type, listener, false);
		}
		else if (el.detachEvent) {
			el.detachEvent('on' + type, listener);
		}
	}

	function replaceElement(el, options) {
		var name = el.nodeName.toLowerCase();
		if (options.ignore[name]) return;
		if (options.ignoreClass && options.ignoreClass.test(el.className)) return;
		if (options.onBeforeReplace) options.onBeforeReplace(el, options);
		var replace = !options.textless[name], simple = (options.trim === 'simple');
		var style = CSS.getStyle(attach(el, options)).extend(options);
		// may cause issues if the element contains other elements
		// with larger fontSize, however such cases are rare and can
		// be fixed by using a more specific selector
		if (parseFloat(style.get('fontSize')) === 0) return;
		var font = getFont(el, style), node, type, next, anchor, text, lastElement;
		var isShy = options.softHyphens, anyShy = false, pos, shy, reShy = /\u00ad/g;
		var modifyText = options.modifyText;
		if (!font) return;
		for (node = el.firstChild; node; node = next) {
			type = node.nodeType;
			next = node.nextSibling;
			if (replace && type == 3) {
				if (isShy && el.nodeName.toLowerCase() != TAG_SHY) {
					pos = node.data.indexOf('\u00ad');
					if (pos >= 0) {
						node.splitText(pos);
						next = node.nextSibling;
						next.deleteData(0, 1);
						shy = document.createElement(TAG_SHY);
						shy.appendChild(document.createTextNode('\u00ad'));
						el.insertBefore(shy, next);
						next = shy;
						anyShy = true;
					}
				}
				// Node.normalize() is broken in IE 6, 7, 8
				if (anchor) {
					anchor.appendData(node.data);
					el.removeChild(node);
				}
				else anchor = node;
				if (next) continue;
			}
			if (anchor) {
				text = anchor.data;
				if (!isShy) text = text.replace(reShy, '');
				text = CSS.whiteSpace(text, style, anchor, lastElement, simple);
				// modify text only on the first replace
				if (modifyText) text = modifyText(text, anchor, el, options);
				el.replaceChild(process(font, text, style, options, node, el), anchor);
				anchor = null;
			}
			if (type == 1) {
				if (node.firstChild) {
					if (node.nodeName.toLowerCase() == 'cufon') {
						engines[options.engine](font, null, style, options, node, el);
					}
					else arguments.callee(node, options);
				}
				lastElement = node;
			}
		}
		if (isShy && anyShy) {
			updateShy(el);
			if (!trackingShy) addEvent(window, 'resize', updateShyOnResize);
			trackingShy = true;
		}
		if (options.onAfterReplace) options.onAfterReplace(el, options);
	}

	function updateShy(context) {
		var shys, shy, parent, glue, newGlue, next, prev, i;
		shys = context.getElementsByTagName(TAG_SHY);
		// unfortunately there doesn't seem to be any easy
		// way to avoid having to loop through the shys twice.
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = C_SHY_DISABLED;
			glue = parent = shy.parentNode;
			if (glue.nodeName.toLowerCase() != TAG_GLUE) {
				newGlue = document.createElement(TAG_GLUE);
				newGlue.appendChild(shy.previousSibling);
				parent.insertBefore(newGlue, shy);
				newGlue.appendChild(shy);
			}
			else {
				// get rid of double glue (edge case fix)
				glue = glue.parentNode;
				if (glue.nodeName.toLowerCase() == TAG_GLUE) {
					parent = glue.parentNode;
					while (glue.firstChild) {
						parent.insertBefore(glue.firstChild, glue);
					}
					parent.removeChild(glue);
				}
			}
		}
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = '';
			glue = shy.parentNode;
			parent = glue.parentNode;
			next = glue.nextSibling || parent.nextSibling;
			// make sure we're comparing same types
			prev = (next.nodeName.toLowerCase() == TAG_GLUE) ? glue : shy.previousSibling;
			if (prev.offsetTop >= next.offsetTop) {
				shy.className = C_SHY_DISABLED;
				if (prev.offsetTop < next.offsetTop) {
					// we have an annoying edge case, double the glue
					newGlue = document.createElement(TAG_GLUE);
					parent.insertBefore(newGlue, glue);
					newGlue.appendChild(glue);
					newGlue.appendChild(next);
				}
			}
		}
	}

	function updateShyOnResize() {
		if (ignoreResize) return; // needed for IE
		CSS.addClass(DOM.root(), C_VIEWPORT_RESIZING);
		clearTimeout(shyTimer);
		shyTimer = setTimeout(function() {
			ignoreResize = true;
			CSS.removeClass(DOM.root(), C_VIEWPORT_RESIZING);
			updateShy(document);
			ignoreResize = false;
		}, 100);
	}

	var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;
	var TAG_GLUE = 'cufonglue';
	var TAG_SHY = 'cufonshy';
	var C_SHY_DISABLED = 'cufon-shy-disabled';
	var C_VIEWPORT_RESIZING = 'cufon-viewport-resizing';

	var sharedStorage = new Storage();
	var hoverHandler = new HoverHandler();
	var replaceHistory = new ReplaceHistory();
	var initialized = false;
	var trackingShy = false;
	var shyTimer;
	var ignoreResize = false;

	var engines = {}, fonts = {}, defaultOptions = {
		autoDetect: false,
		engine: null,
		forceHitArea: false,
		hover: false,
		hoverables: {
			a: true
		},
		ignore: {
			applet: 1,
			canvas: 1,
			col: 1,
			colgroup: 1,
			head: 1,
			iframe: 1,
			map: 1,
			noscript: 1,
			optgroup: 1,
			option: 1,
			script: 1,
			select: 1,
			style: 1,
			textarea: 1,
			title: 1,
			pre: 1
		},
		ignoreClass: null,
		modifyText: null,
		onAfterReplace: null,
		onBeforeReplace: null,
		printable: true,
		selector: (
				window.Sizzle
			||	(window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues
			||	(window.dojo && dojo.query)
			||	(window.glow && glow.dom && glow.dom.get)
			||	(window.Ext && Ext.query)
			||	(window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query)
			||	(window.$$ && function(query) { return $$(query); })
			||	(window.$ && function(query) { return $(query); })
			||	(document.querySelectorAll && function(query) { return document.querySelectorAll(query); })
			||	elementsByTagName
		),
		separate: 'words', // 'none' and 'characters' are also accepted
		softHyphens: true,
		textless: {
			dl: 1,
			html: 1,
			ol: 1,
			table: 1,
			tbody: 1,
			thead: 1,
			tfoot: 1,
			tr: 1,
			ul: 1
		},
		textShadow: 'none',
		trim: 'advanced'
	};

	var separators = {
		// The first pattern may cause unicode characters above
		// code point 255 to be removed in Safari 3.0. Luckily enough
		// Safari 3.0 does not include non-breaking spaces in \s, so
		// we can just use a simple alternative pattern.
		words: /\s/.test('\u00a0') ? /[^\S\u00a0]+/ : /\s+/,
		characters: '',
		none: /^/
	};

	api.now = function() {
		DOM.ready();
		return api;
	};

	api.refresh = function() {
		replaceHistory.repeat.apply(replaceHistory, arguments);
		return api;
	};

	api.registerEngine = function(id, engine) {
		if (!engine) return api;
		engines[id] = engine;
		return api.set('engine', id);
	};

	api.registerFont = function(data) {
		if (!data) return api;
		var font = new Font(data), family = font.family;
		if (!fonts[family]) fonts[family] = new FontFamily();
		fonts[family].add(font);
		return api.set('fontFamily', '"' + family + '"');
	};

	api.replace = function(elements, options, ignoreHistory) {
		options = merge(defaultOptions, options);
		if (!options.engine) return api; // there's no browser support so we'll just stop here
		if (!initialized) {
			CSS.addClass(DOM.root(), 'cufon-active cufon-loading');
			CSS.ready(function() {
				// fires before any replace() calls, but it doesn't really matter
				CSS.addClass(CSS.removeClass(DOM.root(), 'cufon-loading'), 'cufon-ready');
			});
			initialized = true;
		}
		if (options.hover) options.forceHitArea = true;
		if (options.autoDetect) delete options.fontFamily;
		if (typeof options.ignoreClass == 'string') {
			options.ignoreClass = new RegExp('(?:^|\\s)(?:' + options.ignoreClass.replace(/\s+/g, '|') + ')(?:\\s|$)');
		}
		if (typeof options.textShadow == 'string') {
			options.textShadow = CSS.textShadow(options.textShadow);
		}
		if (typeof options.color == 'string' && /^-/.test(options.color)) {
			options.textGradient = CSS.gradient(options.color);
		}
		else delete options.textGradient;
		if (!ignoreHistory) replaceHistory.add(elements, arguments);
		if (elements.nodeType || typeof elements == 'string') elements = [ elements ];
		CSS.ready(function() {
			for (var i = 0, l = elements.length; i < l; ++i) {
				var el = elements[i];
				if (typeof el == 'string') api.replace(options.selector(el), options, true);
				else replaceElement(el, options);
			}
		});
		return api;
	};

	api.set = function(option, value) {
		defaultOptions[option] = value;
		return api;
	};

	return api;

})();

Cufon.registerEngine('vml', (function() {

	var ns = document.namespaces;
	if (!ns) return;
	ns.add('cvml', 'urn:schemas-microsoft-com:vml');
	ns = null;

	var check = document.createElement('cvml:shape');
	check.style.behavior = 'url(#default#VML)';
	if (!check.coordsize) return; // VML isn't supported
	check = null;

	var HAS_BROKEN_LINEHEIGHT = (document.documentMode || 0) < 8;

	document.write(('<style type="text/css">' +
		'cufoncanvas{text-indent:0;}' +
		'@media screen{' +
			'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' +
			'cufoncanvas{position:absolute;text-align:left;}' +
			'cufon{display:inline-block;position:relative;vertical-align:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +
			'cufon cufontext{position:absolute;left:-10000in;font-size:1px;text-align:left;}' +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
			'a cufon{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'cufon cufoncanvas{display:none;}' +
		'}' +
	'</style>').replace(/;/g, '!important;'));

	function getFontSizeInPixels(el, value) {
		return getSizeInPixels(el, /(?:em|ex|%)$|^[a-z-]+$/i.test(value) ? '1em' : value);
	}

	// Original by Dead Edwards.
	// Combined with getFontSizeInPixels it also works with relative units.
	function getSizeInPixels(el, value) {
		if (!isNaN(value) || /px$/i.test(value)) return parseFloat(value);
		var style = el.style.left, runtimeStyle = el.runtimeStyle.left;
		el.runtimeStyle.left = el.currentStyle.left;
		el.style.left = value.replace('%', 'em');
		var result = el.style.pixelLeft;
		el.style.left = style;
		el.runtimeStyle.left = runtimeStyle;
		return result;
	}

	function getSpacingValue(el, style, size, property) {
		var key = 'computed' + property, value = style[key];
		if (isNaN(value)) {
			value = style.get(property);
			style[key] = value = (value == 'normal') ? 0 : ~~size.convertFrom(getSizeInPixels(el, value));
		}
		return value;
	}

	var fills = {};

	function gradientFill(gradient) {
		var id = gradient.id;
		if (!fills[id]) {
			var stops = gradient.stops, fill = document.createElement('cvml:fill'), colors = [];
			fill.type = 'gradient';
			fill.angle = 180;
			fill.focus = '0';
			fill.method = 'none';
			fill.color = stops[0][1];
			for (var j = 1, k = stops.length - 1; j < k; ++j) {
				colors.push(stops[j][0] * 100 + '% ' + stops[j][1]);
			}
			fill.colors = colors.join(',');
			fill.color2 = stops[k][1];
			fills[id] = fill;
		}
		return fills[id];
	}

	return function(font, text, style, options, node, el, hasNext) {

		var redraw = (text === null);

		if (redraw) text = node.alt;

		var viewBox = font.viewBox;

		var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize));

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-vml';
			wrapper.alt = text;

			canvas = document.createElement('cufoncanvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(text));
				wrapper.appendChild(print);
			}

			// ie6, for some reason, has trouble rendering the last VML element in the document.
			// we can work around this by injecting a dummy element where needed.
			// @todo find a better solution
			if (!hasNext) wrapper.appendChild(document.createElement('cvml:shape'));
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height), roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var minX = viewBox.minX, minY = viewBox.minY;

		cStyle.height = roundedHeight;
		cStyle.top = Math.round(size.convert(minY - font.ascent));
		cStyle.left = Math.round(size.convert(minX));

		wStyle.height = size.convert(font.height) + 'px';

		var color = style.get('color');
		var chars = Cufon.CSS.textTransform(text, style).split('');

		var jumps = font.spacing(chars,
			getSpacingValue(el, style, size, 'letterSpacing'),
			getSpacingValue(el, style, size, 'wordSpacing')
		);

		if (!jumps.length) return null;

		var width = jumps.total;
		var fullWidth = -minX + width + (viewBox.width - jumps[jumps.length - 1]);

		var shapeWidth = size.convert(fullWidth * stretchFactor), roundedShapeWidth = Math.round(shapeWidth);

		var coordSize = fullWidth + ',' + viewBox.height, coordOrigin;
		var stretch = 'r' + coordSize + 'ns';

		var fill = options.textGradient && gradientFill(options.textGradient);

		var glyphs = font.glyphs, offsetX = 0;
		var shadows = options.textShadow;
		var i = -1, j = 0, chr;

		while (chr = chars[++i]) {

			var glyph = glyphs[chars[i]] || font.missingGlyph, shape;
			if (!glyph) continue;

			if (redraw) {
				// some glyphs may be missing so we can't use i
				shape = canvas.childNodes[j];
				while (shape.firstChild) shape.removeChild(shape.firstChild); // shadow, fill
			}
			else {
				shape = document.createElement('cvml:shape');
				canvas.appendChild(shape);
			}

			shape.stroked = 'f';
			shape.coordsize = coordSize;
			shape.coordorigin = coordOrigin = (minX - offsetX) + ',' + minY;
			shape.path = (glyph.d ? 'm' + glyph.d + 'xe' : '') + 'm' + coordOrigin + stretch;
			shape.fillcolor = color;

			if (fill) shape.appendChild(fill.cloneNode(false));

			// it's important to not set top/left or IE8 will grind to a halt
			var sStyle = shape.style;
			sStyle.width = roundedShapeWidth;
			sStyle.height = roundedHeight;

			if (shadows) {
				// due to the limitations of the VML shadow element there
				// can only be two visible shadows. opacity is shared
				// for all shadows.
				var shadow1 = shadows[0], shadow2 = shadows[1];
				var color1 = Cufon.CSS.color(shadow1.color), color2;
				var shadow = document.createElement('cvml:shadow');
				shadow.on = 't';
				shadow.color = color1.color;
				shadow.offset = shadow1.offX + ',' + shadow1.offY;
				if (shadow2) {
					color2 = Cufon.CSS.color(shadow2.color);
					shadow.type = 'double';
					shadow.color2 = color2.color;
					shadow.offset2 = shadow2.offX + ',' + shadow2.offY;
				}
				shadow.opacity = color1.opacity || (color2 && color2.opacity) || 1;
				shape.appendChild(shadow);
			}

			offsetX += jumps[j++];
		}

		// addresses flickering issues on :hover

		var cover = shape.nextSibling, coverFill, vStyle;

		if (options.forceHitArea) {

			if (!cover) {
				cover = document.createElement('cvml:rect');
				cover.stroked = 'f';
				cover.className = 'cufon-vml-cover';
				coverFill = document.createElement('cvml:fill');
				coverFill.opacity = 0;
				cover.appendChild(coverFill);
				canvas.appendChild(cover);
			}

			vStyle = cover.style;

			vStyle.width = roundedShapeWidth;
			vStyle.height = roundedHeight;

		}
		else if (cover) canvas.removeChild(cover);

		wStyle.width = Math.max(Math.ceil(size.convert(width * stretchFactor)), 0);

		if (HAS_BROKEN_LINEHEIGHT) {

			var yAdjust = style.computedYAdjust;

			if (yAdjust === undefined) {
				var lineHeight = style.get('lineHeight');
				if (lineHeight == 'normal') lineHeight = '1em';
				else if (!isNaN(lineHeight)) lineHeight += 'em'; // no unit
				style.computedYAdjust = yAdjust = 0.5 * (getSizeInPixels(el, lineHeight) - parseFloat(wStyle.height));
			}

			if (yAdjust) {
				wStyle.marginTop = Math.ceil(yAdjust) + 'px';
				wStyle.marginBottom = yAdjust + 'px';
			}

		}

		return wrapper;

	};

})());

Cufon.registerEngine('canvas', (function() {

	// Safari 2 doesn't support .apply() on native methods

	var check = document.createElement('canvas');
	if (!check || !check.getContext || !check.getContext.apply) return;
	check = null;

	var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block');

	// Firefox 2 w/ non-strict doctype (almost standards mode)
	var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId));

	var styleSheet = document.createElement('style');
	styleSheet.type = 'text/css';
	styleSheet.appendChild(document.createTextNode((
		'cufon{text-indent:0;}' +
		'@media screen,projection{' +
			'cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;' +
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: 'font-size:1px;line-height:1px;') +
			'}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;text-align:left;text-indent:-10000in;}' +
			(HAS_INLINE_BLOCK
				? 'cufon canvas{position:relative;}'
				: 'cufon canvas{position:absolute;}') +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
		'}' +
		'@media print{' +
			'cufon{padding:0;}' + // Firefox 2
			'cufon canvas{display:none;}' +
		'}'
	).replace(/;/g, '!important;')));
	document.getElementsByTagName('head')[0].appendChild(styleSheet);

	function generateFromVML(path, context) {
		var atX = 0, atY = 0;
		var code = [], re = /([mrvxe])([^a-z]*)/g, match;
		generate: for (var i = 0; match = re.exec(path); ++i) {
			var c = match[2].split(',');
			switch (match[1]) {
				case 'v':
					code[i] = { m: 'bezierCurveTo', a: [ atX + ~~c[0], atY + ~~c[1], atX + ~~c[2], atY + ~~c[3], atX += ~~c[4], atY += ~~c[5] ] };
					break;
				case 'r':
					code[i] = { m: 'lineTo', a: [ atX += ~~c[0], atY += ~~c[1] ] };
					break;
				case 'm':
					code[i] = { m: 'moveTo', a: [ atX = ~~c[0], atY = ~~c[1] ] };
					break;
				case 'x':
					code[i] = { m: 'closePath' };
					break;
				case 'e':
					break generate;
			}
			context[code[i].m].apply(context, code[i].a);
		}
		return code;
	}

	function interpret(code, context) {
		for (var i = 0, l = code.length; i < l; ++i) {
			var line = code[i];
			context[line.m].apply(context, line.a);
		}
	}

	return function(font, text, style, options, node, el) {

		var redraw = (text === null);

		if (redraw) text = node.getAttribute('alt');

		var viewBox = font.viewBox;

		var size = style.getSize('fontSize', font.baseSize);

		var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0;
		var shadows = options.textShadow, shadowOffsets = [];
		if (shadows) {
			for (var i = shadows.length; i--;) {
				var shadow = shadows[i];
				var x = size.convertFrom(parseFloat(shadow.offX));
				var y = size.convertFrom(parseFloat(shadow.offY));
				shadowOffsets[i] = [ x, y ];
				if (y < expandTop) expandTop = y;
				if (x > expandRight) expandRight = x;
				if (y > expandBottom) expandBottom = y;
				if (x < expandLeft) expandLeft = x;
			}
		}

		var chars = Cufon.CSS.textTransform(text, style).split('');

		var jumps = font.spacing(chars,
			~~size.convertFrom(parseFloat(style.get('letterSpacing')) || 0),
			~~size.convertFrom(parseFloat(style.get('wordSpacing')) || 0)
		);

		if (!jumps.length) return null; // there's nothing to render

		var width = jumps.total;

		expandRight += viewBox.width - jumps[jumps.length - 1];
		expandLeft += viewBox.minX;

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-canvas';
			wrapper.setAttribute('alt', text);

			canvas = document.createElement('canvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(text));
				wrapper.appendChild(print);
			}
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height);
		var roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var stretchedWidth = width * stretchFactor;

		var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft));
		var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom));

		canvas.width = canvasWidth;
		canvas.height = canvasHeight;

		// needed for WebKit and full page zoom
		cStyle.width = canvasWidth + 'px';
		cStyle.height = canvasHeight + 'px';

		// minY has no part in canvas.height
		expandTop += viewBox.minY;

		cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px';
		cStyle.left = Math.round(size.convert(expandLeft)) + 'px';

		var wrapperWidth = Math.max(Math.ceil(size.convert(stretchedWidth)), 0) + 'px';

		if (HAS_INLINE_BLOCK) {
			wStyle.width = wrapperWidth;
			wStyle.height = size.convert(font.height) + 'px';
		}
		else {
			wStyle.paddingLeft = wrapperWidth;
			wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px';
		}

		var g = canvas.getContext('2d'), scale = height / viewBox.height;

		// proper horizontal scaling is performed later
		g.scale(scale, scale * roundingFactor);
		g.translate(-expandLeft, -expandTop);
		g.save();

		function renderText() {
			var glyphs = font.glyphs, glyph, i = -1, j = -1, chr;
			g.scale(stretchFactor, 1);
			while (chr = chars[++i]) {
				var glyph = glyphs[chars[i]] || font.missingGlyph;
				if (!glyph) continue;
				if (glyph.d) {
					g.beginPath();
					if (glyph.code) interpret(glyph.code, g);
					else glyph.code = generateFromVML('m' + glyph.d, g);
					g.fill();
				}
				g.translate(jumps[++j], 0);
			}
			g.restore();
		}

		if (shadows) {
			for (var i = shadows.length; i--;) {
				var shadow = shadows[i];
				g.save();
				g.fillStyle = shadow.color;
				g.translate.apply(g, shadowOffsets[i]);
				renderText();
			}
		}

		var gradient = options.textGradient;
		if (gradient) {
			var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY);
			for (var i = 0, l = stops.length; i < l; ++i) {
				fill.addColorStop.apply(fill, stops[i]);
			}
			g.fillStyle = fill;
		}
		else g.fillStyle = style.get('color');

		renderText();

		return wrapper;

	};

})());
;
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 1987, 1991 Adobe Systems Incorporated. All Rights Reserved.
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"398,11v-217,0,-371,-165,-371,-371v0,-206,154,-372,371,-372v216,0,372,166,372,372v0,206,-156,371,-372,371xm398,-70v165,0,290,-112,290,-290v0,-178,-125,-290,-290,-290v-156,0,-290,112,-290,290v0,178,134,290,290,290xm486,-291r100,10v-14,89,-79,143,-188,143v-105,0,-192,-68,-192,-219v0,-132,63,-226,192,-226v108,0,173,50,188,142r-100,11v-8,-44,-31,-85,-88,-85v-58,0,-79,99,-79,155v0,56,21,154,79,154v56,0,80,-41,88,-85","w":796},{"d":"332,0r-282,0r0,-720r207,0v233,0,293,81,293,198v0,68,-33,117,-91,149v66,31,105,94,105,166v0,124,-101,207,-232,207xm194,-114r94,0v44,0,128,5,128,-104v0,-98,-82,-111,-222,-101r0,205xm194,-607r0,179v106,0,208,12,208,-87v0,-103,-106,-92,-208,-92","w":599},{"d":"381,0r-12,-44v-42,37,-75,55,-132,55v-105,0,-201,-64,-201,-283v0,-192,115,-258,190,-258v56,0,89,28,128,62r0,-252r137,0r0,720r-110,0xm354,-365v-24,-29,-52,-56,-92,-56v-76,0,-92,96,-92,153v0,62,13,162,95,162v41,0,68,-27,89,-59r0,-200","w":540},{"d":"468,-244r137,17v-22,148,-122,238,-272,238v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372v148,0,248,85,272,238r-137,19v-14,-75,-48,-143,-135,-143v-124,0,-149,165,-149,258v0,93,25,257,149,257v86,0,121,-67,135,-141xm389,60r-63,155r-73,0r23,-155r113,0","w":640},{"d":"526,-720r0,122r-187,0r0,598r-145,0r0,-598r-187,0r0,-122r519,0","w":532},{"d":"188,-519r0,519r-137,0r0,-519r137,0xm130,-720r54,129r-85,0r-95,-129r126,0","w":237},{"d":"498,-720r0,116r-304,482r304,0r0,122r-469,0r0,-113r303,-485r-293,0r0,-122r459,0","w":526},{"d":"447,-707r35,57r-96,30v84,98,105,205,106,283v3,213,-73,348,-228,348v-151,0,-228,-133,-228,-270v0,-115,51,-264,216,-264v33,0,63,10,96,34v-11,-30,-47,-74,-71,-98r-141,43r-33,-56r121,-38v-23,-20,-49,-38,-76,-56r124,-26v21,16,42,32,61,48xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169","w":527},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67xm276,-720r55,129r-86,0r-95,-129r126,0","w":530},{"d":"416,-382r-130,15v-6,-36,-18,-62,-59,-62v-32,0,-56,25,-56,58v0,89,251,24,251,218v0,110,-91,164,-197,164v-106,0,-174,-52,-188,-159r129,-14v3,37,22,72,64,72v34,0,66,-15,66,-55v0,-91,-251,-17,-251,-219v0,-105,90,-166,191,-166v91,0,164,58,180,148xm399,-720r-113,129r-126,0r-108,-129r122,0r48,58r52,-58r125,0","w":450},{"d":"461,-720r0,97r-389,0r0,-97r389,0","w":533},{"d":"50,-720r144,0r0,137r134,0v168,0,237,122,237,226v0,109,-65,218,-273,218r-98,0r0,139r-144,0r0,-720xm194,-261v98,-3,223,24,223,-100v0,-124,-126,-97,-223,-100r0,200","w":583},{"d":"188,-519r0,519r-137,0r0,-519r137,0","w":237},{"w":287},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm388,-922r64,0v4,59,-33,128,-100,128v-51,0,-88,-32,-122,-32v-19,0,-28,15,-29,32r-66,0v-5,-58,35,-128,98,-128v52,0,87,30,125,30v19,0,27,-13,30,-30xm371,-294r-76,-302r-3,0r-76,302r155,0","w":587},{"d":"612,-720r-239,429r0,291r-144,0r0,-291r-236,-429r153,0r156,316r161,-316r149,0","w":604},{"d":"612,-720r-239,429r0,291r-144,0r0,-291r-236,-429r153,0r156,316r161,-316r149,0xm477,-922r0,137r-137,0r0,-137r137,0xm265,-922r0,137r-137,0r0,-137r137,0","w":604},{"w":287},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258xm269,-793r54,-129r126,0r-95,129r-85,0","w":665},{"d":"194,0r-144,0r0,-720r144,0r0,720xm297,-922r0,137r-137,0r0,-137r137,0xm85,-922r0,137r-137,0r0,-137r137,0","w":244},{"d":"498,-720r0,122r-304,0r0,172r252,0r0,122r-252,0r0,182r322,0r0,122r-466,0r0,-720r448,0xm339,-922r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0","w":555},{"d":"97,-591r55,-129r126,0r-96,129r-85,0","w":324},{"d":"491,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-30,103,-129,161,-227,161v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v131,0,231,62,227,303xm179,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116xm274,-720r55,129r-85,0r-96,-129r126,0","w":526},{"d":"519,-661r45,-71r67,48r-62,87v131,222,58,604,-236,608v-69,0,-124,-22,-166,-55r-67,84r-64,-47r76,-96v-151,-217,-82,-629,221,-629v78,0,141,28,186,71xm202,-225r241,-336v-21,-41,-58,-62,-110,-62v-134,0,-149,162,-149,266v0,43,5,87,18,132xm470,-463r-233,325v20,25,53,41,96,41v88,0,149,-64,149,-260v0,-35,-6,-71,-12,-106","w":665},{"d":"498,-720r0,116r-304,482r304,0r0,122r-469,0r0,-113r303,-485r-293,0r0,-122r459,0xm437,-922r-113,129r-126,0r-108,-129r122,0r48,58r52,-58r125,0","w":526},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm371,-294r-76,-302r-3,0r-76,302r155,0xm304,-922r54,129r-85,0r-95,-129r126,0","w":587},{"d":"288,6r105,64v-39,74,-103,121,-188,121v-102,0,-184,-52,-184,-162v0,-172,173,-165,162,-328r124,0v18,162,-160,217,-162,321v0,29,22,55,52,55v44,0,75,-33,91,-71xm178,-382r0,-137r137,0r0,137r-137,0","w":413},{"d":"171,-299r22,476r-157,0r21,-476r114,0xm45,-382r0,-137r137,0r0,137r-137,0","w":228},{"d":"183,-694r0,926r-106,0r0,-926r106,0","w":259},{"d":"516,-136r0,117v-38,19,-85,30,-136,30v-149,0,-236,-98,-273,-222r-88,0r29,-97r41,0r-2,-81r-68,0r29,-97r53,0v32,-133,122,-246,279,-246v80,0,144,26,191,72r-40,133v-46,-63,-93,-91,-151,-91v-77,0,-116,63,-135,132r273,0r-30,97r-256,0v-1,29,-2,52,0,81r231,0r-30,97r-179,0v23,61,66,108,143,108v43,0,87,-13,119,-33"},{"d":"50,-720r284,0v166,0,231,118,231,210v0,79,-49,151,-122,181r143,329r-152,0r-129,-299r-111,0r0,299r-144,0r0,-720xm194,-421r63,0v63,0,160,4,160,-86v0,-118,-124,-86,-223,-91r0,177","w":610},{"d":"576,-720r0,895r-97,0r0,-812r-84,0r0,812r-97,0r0,-507r-66,0v-145,0,-204,-111,-204,-193v0,-115,83,-195,195,-195r353,0xm298,-637v-94,-7,-153,23,-152,109v1,87,58,124,152,113r0,-222","w":620},{"d":"118,-477r0,-83v34,1,108,-1,108,-47v0,-17,-20,-41,-53,-41v-36,0,-54,24,-61,39r-90,-31v29,-57,84,-92,153,-92v76,0,157,28,157,118v0,47,-29,73,-77,92v52,18,86,53,86,101v0,101,-82,135,-171,135v-78,0,-149,-44,-165,-117r96,-16v7,24,26,50,72,50v36,0,61,-28,61,-47v0,-52,-74,-63,-116,-61","w":345},{"d":"449,-519r0,98r-242,313r242,0r0,108r-413,0r0,-93r238,-317r-222,0r0,-109r397,0","w":485},{"d":"188,-519r0,519r-137,0r0,-519r137,0xm188,-720r0,126r-137,0r0,-126r137,0","w":237},{"d":"805,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-46,162,-274,221,-383,87v-39,50,-95,74,-158,74v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v61,0,123,26,164,74v40,-49,98,-74,150,-74v131,0,231,62,227,303xm264,-90v83,0,98,-98,98,-167v0,-68,-15,-172,-98,-172v-74,0,-87,105,-87,170v0,65,13,169,87,169xm493,-313r177,0v0,-58,-22,-116,-88,-116v-62,0,-87,60,-89,116","w":840},{"d":"256,0r0,-98v80,27,109,-76,109,-133v0,-60,-21,-140,-109,-126r0,-101v55,1,87,-28,87,-84v0,-44,-25,-76,-71,-76v-95,0,-85,90,-85,159r0,459r-137,0r0,-502v0,-160,103,-230,214,-230v139,0,213,75,213,183v0,57,-27,104,-77,132v77,33,105,121,105,197v0,136,-101,268,-249,220","w":543},{"d":"301,-571v0,85,-50,161,-142,161v-91,0,-140,-76,-140,-161v0,-84,48,-161,140,-161v92,0,142,77,142,161xm109,-571v0,32,7,96,51,96v44,0,50,-64,50,-96v0,-32,-6,-96,-50,-96v-45,0,-51,64,-51,96","w":319},{"d":"641,-519r-133,519r-128,0r-61,-347r-2,0r-63,347r-129,0r-125,-519r125,0r63,344r2,0r66,-344r138,0r57,344r2,0r70,-344r118,0","w":640},{"d":"498,-720r0,122r-304,0r0,172r252,0r0,122r-252,0r0,182r322,0r0,122r-466,0r0,-720r448,0xm288,-922r55,129r-86,0r-95,-129r126,0","w":555},{"d":"339,0r0,-54v-44,36,-98,65,-155,65v-56,0,-136,-34,-136,-162r0,-368r137,0r0,313v0,42,-2,107,57,107v40,0,71,-29,97,-57r0,-363r137,0r0,519r-137,0xm323,-720r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0","w":524},{"d":"188,-519r0,519r-137,0r0,-519r137,0xm55,-591r54,-129r126,0r-95,129r-85,0","w":237},{"d":"416,-382r-130,15v-6,-36,-18,-62,-59,-62v-32,0,-56,25,-56,58v0,89,251,24,251,218v0,110,-91,164,-197,164v-106,0,-174,-52,-188,-159r129,-14v3,37,22,72,64,72v34,0,66,-15,66,-55v0,-91,-251,-17,-251,-219v0,-105,90,-166,191,-166v91,0,164,58,180,148","w":450},{"d":"194,0r-144,0r0,-720r144,0r0,720xm57,-793r55,-129r126,0r-95,129r-86,0","w":244},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67","w":530},{"d":"185,-519r0,54v44,-36,98,-65,155,-65v56,0,136,34,136,162r0,368r-137,0r0,-312v0,-42,2,-107,-57,-107v-40,0,-71,28,-97,56r0,363r-137,0r0,-519r137,0xm357,-720r63,0v4,59,-33,128,-100,128v-51,0,-88,-32,-122,-32v-19,0,-28,15,-29,32r-65,0v-5,-58,35,-128,98,-128v52,0,87,30,125,30v19,0,27,-13,30,-30","w":524},{"d":"491,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-30,103,-129,161,-227,161v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v131,0,231,62,227,303xm324,-720r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0xm179,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116","w":526},{"d":"187,-519r0,91v62,-69,94,-108,184,-102r0,137v-13,-3,-25,-5,-39,-5v-35,0,-145,32,-145,170r0,228r-137,0r0,-519r137,0","w":386},{"d":"50,-720r176,0v274,0,371,155,371,360v0,203,-106,360,-321,360r-226,0r0,-304r-69,0r0,-122r69,0r0,-294xm194,-122v176,12,251,-40,255,-255v3,-173,-85,-233,-255,-221r0,172r125,0r0,122r-125,0r0,182","w":633},{"d":"388,-121r0,-169r-342,0r0,-101r448,0r0,270r-106,0","w":540},{"d":"46,-391r448,0r0,101r-448,0r0,-101xm46,-167r448,0r0,101r-448,0r0,-101","w":540},{"d":"218,-457r106,0r0,108r170,0r0,101r-170,0r0,107r-106,0r0,-107r-172,0r0,-101r172,0r0,-108xm46,0r0,-101r448,0r0,101r-448,0","w":540},{"d":"194,0r-144,0r0,-720r144,0r0,720xm132,-922r55,129r-85,0r-96,-129r126,0","w":244},{"d":"447,0r-47,-181r-213,0r-47,181r-147,0r201,-720r568,0r0,122r-343,0r48,172r249,0r0,122r-213,0r52,182r231,0r0,122r-339,0xm371,-294r-76,-302r-3,0r-76,302r155,0","w":828},{"d":"197,-324r0,-105v68,2,186,0,186,-94v0,-52,-34,-95,-86,-95v-56,0,-89,41,-108,90r-123,-51v44,-96,128,-153,234,-153v110,0,225,73,225,196v0,80,-42,121,-109,154v73,29,122,87,122,168v0,141,-115,225,-245,225v-119,0,-231,-73,-254,-194r133,-28v19,64,54,108,125,108v56,0,99,-46,99,-103v0,-103,-120,-121,-199,-118"},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm326,-720r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67","w":530},{"d":"782,0r-106,0r0,-83r-190,0r0,-75r169,-274r127,0r0,265r54,0r0,84r-54,0r0,83xm127,-477r0,-83v34,1,108,-1,108,-47v0,-17,-20,-41,-53,-41v-36,0,-54,24,-61,39r-90,-31v29,-57,84,-92,153,-92v76,0,158,28,158,118v0,47,-30,73,-78,92v52,18,86,53,86,101v0,101,-81,135,-170,135v-78,0,-150,-44,-166,-117r96,-16v7,24,26,50,72,50v36,0,62,-28,62,-47v0,-52,-75,-63,-117,-61xm581,-720r87,0r-365,720r-87,0xm676,-167r0,-154r-3,0r-88,154r91,0","w":863},{"d":"288,-732v163,0,268,125,268,378v0,266,-133,365,-268,365v-135,0,-268,-99,-268,-365v0,-253,105,-378,268,-378xm288,-614v-124,0,-126,172,-126,260v0,87,6,248,126,248v120,0,126,-161,126,-248v0,-88,-2,-260,-126,-260"},{"d":"335,-720r-8,115r107,-43r30,90r-113,27r75,88r-77,57r-61,-99r-61,99r-77,-57r75,-88r-113,-27r30,-90r107,43r-8,-115r94,0"},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169xm358,-720r64,0v4,59,-33,128,-100,128v-51,0,-88,-32,-122,-32v-19,0,-28,15,-29,32r-65,0v-5,-58,35,-128,98,-128v52,0,87,30,125,30v19,0,26,-13,29,-30","w":527},{"d":"188,-437r76,-39r0,86r-76,40r0,350r-137,0r0,-299r-77,39r0,-89r77,-37r0,-334r137,0r0,283","w":237},{"d":"607,-360v121,0,155,97,155,191v0,92,-43,180,-155,180v-112,0,-154,-88,-154,-180v0,-94,33,-191,154,-191xm181,-732v121,0,155,98,155,192v0,92,-43,180,-155,180v-112,0,-154,-88,-154,-180v0,-94,33,-192,154,-192xm533,-720r87,0r-364,720r-87,0xm607,-277v-49,0,-48,59,-48,108v0,44,4,97,48,97v44,0,49,-53,49,-97v0,-49,0,-108,-49,-108xm181,-648v-49,0,-48,59,-48,108v0,44,4,96,48,96v44,0,49,-52,49,-96v0,-49,0,-108,-49,-108","w":788},{"d":"339,0r0,-54v-44,36,-98,65,-155,65v-56,0,-136,-34,-136,-162r0,-368r137,0r0,313v0,42,-2,107,57,107v40,0,71,-29,97,-57r0,-363r137,0r0,519r-137,0xm437,-720r0,137r-137,0r0,-137r137,0xm225,-720r0,137r-137,0r0,-137r137,0","w":524},{"d":"449,-519r0,98r-242,313r242,0r0,108r-413,0r0,-93r238,-317r-222,0r0,-109r397,0xm417,-720r-113,129r-126,0r-109,-129r123,0r48,58r52,-58r125,0","w":485},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258xm428,-922r64,0v4,59,-33,128,-100,128v-51,0,-89,-32,-123,-32v-19,0,-27,15,-28,32r-66,0v-5,-58,35,-128,98,-128v52,0,87,30,125,30v19,0,27,-13,30,-30","w":665},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169xm199,-591r55,-129r126,0r-96,129r-85,0","w":527},{"d":"36,-332r244,0r0,115r-244,0r0,-115","w":315},{"d":"213,-137r0,137r-137,0r0,-137r137,0","w":287},{"d":"491,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-30,103,-129,161,-227,161v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v131,0,231,62,227,303xm438,-720r0,137r-137,0r0,-137r137,0xm226,-720r0,137r-137,0r0,-137r137,0xm179,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116","w":526},{"d":"489,-519r-200,561v-33,94,-67,149,-176,149v-30,0,-59,-4,-88,-10r0,-118v20,7,37,13,59,13v62,0,84,-35,101,-89r-185,-506r148,0r105,342r95,-342r141,0xm180,-591r54,-129r126,0r-95,129r-85,0","w":488},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169xm274,-720r55,129r-85,0r-96,-129r126,0","w":527},{"d":"208,60r-63,155r-73,0r23,-155r113,0","w":280},{"d":"491,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-30,103,-129,161,-227,161v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v131,0,231,62,227,303xm179,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116xm199,-591r55,-129r126,0r-96,129r-85,0","w":526},{"d":"409,-720r145,0r0,498v0,148,-102,233,-254,233v-152,0,-254,-85,-254,-233r0,-498r145,0r0,451v0,120,36,158,109,158v73,0,109,-38,109,-158r0,-451xm235,-793r55,-129r126,0r-96,129r-85,0","w":599},{"d":"209,-720r0,137r-137,0r0,-137r137,0xm421,-720r0,137r-137,0r0,-137r137,0","w":493},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm371,-294r-76,-302r-3,0r-76,302r155,0xm229,-793r54,-129r126,0r-95,129r-85,0","w":587},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67xm201,-591r55,-129r126,0r-96,129r-85,0","w":530},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm371,-294r-76,-302r-3,0r-76,302r155,0","w":587},{"d":"491,-227r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83r127,23v-30,103,-129,161,-227,161v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v131,0,231,62,227,303xm179,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116","w":526},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258xm295,-922r0,137r-137,0r0,-137r137,0xm507,-922r0,137r-137,0r0,-137r137,0","w":665},{"d":"426,-720r0,498v0,194,-102,233,-210,233v-115,0,-191,-49,-216,-164r143,-28v7,35,28,78,74,78v43,0,65,-31,65,-92r0,-525r144,0","w":472},{"d":"409,-720r145,0r0,498v0,148,-102,233,-254,233v-152,0,-254,-85,-254,-233r0,-498r145,0r0,451v0,120,36,158,109,158v73,0,109,-38,109,-158r0,-451xm310,-922r55,129r-85,0r-96,-129r126,0","w":599},{"d":"194,-720r0,598r300,0r0,122r-444,0r0,-720r144,0","w":515},{"d":"612,-720r-239,429r0,291r-144,0r0,-291r-236,-429r153,0r156,316r161,-316r149,0xm238,-793r55,-129r126,0r-96,129r-85,0","w":604},{"d":"455,-434r0,102r-91,0r-35,330v-14,131,-28,179,-173,179r-80,0r0,-122v77,-5,109,25,118,-65r33,-322r-71,0r0,-102r82,0r11,-108v12,-122,52,-178,171,-178r81,0r0,122r-75,0v-23,0,-34,-10,-40,53r-11,111r80,0"},{"d":"194,0r-144,0r0,-720r144,0r0,720xm183,-922r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0","w":244},{"d":"409,-720r145,0r0,498v0,148,-102,233,-254,233v-152,0,-254,-85,-254,-233r0,-498r145,0r0,451v0,120,36,158,109,158v73,0,109,-38,109,-158r0,-451xm360,-922r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0","w":599},{"d":"194,-436r165,-94r0,95r-165,94r0,219r300,0r0,122r-444,0r0,-280r-74,42r0,-94r74,-41r0,-347r144,0r0,284","w":515},{"d":"270,-156r-150,150r-74,-73r150,-150r-150,-150r74,-72r150,150r150,-150r74,72r-150,150r150,150r-74,73","w":540},{"d":"50,-720r176,0v274,0,371,155,371,360v0,203,-106,360,-321,360r-226,0r0,-720xm194,-122v176,12,251,-40,255,-255v3,-173,-85,-233,-255,-221r0,476","w":633},{"d":"468,-244r137,17v-22,148,-122,238,-272,238v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372v148,0,248,85,272,238r-137,19v-14,-75,-48,-143,-135,-143v-124,0,-149,165,-149,258v0,93,25,257,149,257v86,0,121,-67,135,-141","w":640},{"d":"326,-376r0,83r-308,0r0,-103v90,-111,203,-150,203,-202v0,-33,-19,-50,-44,-50v-48,0,-65,20,-71,59r-98,-18v3,-79,71,-125,166,-125v106,0,154,58,154,126v0,128,-114,136,-206,230r204,0","w":345},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm186,-855v0,-59,49,-108,108,-108v60,0,108,49,108,108v0,60,-48,109,-108,109v-59,0,-108,-49,-108,-109xm371,-294r-76,-302r-3,0r-76,302r155,0xm251,-855v0,24,20,44,43,44v24,0,43,-20,43,-44v0,-24,-19,-43,-43,-43v-23,0,-43,19,-43,43","w":587},{"d":"770,0r-107,0r0,-83r-190,0r0,-75r169,-274r128,0r0,265r53,0r0,84r-53,0r0,83xm568,-720r87,0r-365,720r-87,0xm220,-725r0,349r66,0r0,83r-239,0r0,-83r67,0r0,-255r-67,0r0,-61r99,-33r74,0xm663,-167r0,-154r-3,0r-88,154r91,0","w":863},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm360,-720r64,0v4,59,-33,128,-100,128v-51,0,-88,-32,-122,-32v-19,0,-28,15,-29,32r-66,0v-5,-58,36,-128,99,-128v52,0,87,30,125,30v19,0,26,-13,29,-30xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67","w":530},{"d":"316,-68r-85,-206r85,-207r101,0r-78,207r78,206r-101,0xm121,-68r-85,-206r85,-207r101,0r-78,207r78,206r-101,0","w":452},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169","w":527},{"d":"800,-720r-164,720r-148,0r-96,-498r-2,0r-97,498r-149,0r-151,-720r142,0r86,507r2,0r90,-507r159,0r90,507r2,0r93,-507r143,0","w":792},{"d":"188,-519r0,519r-137,0r0,-519r137,0xm294,-720r0,137r-138,0r0,-137r138,0xm81,-720r0,137r-137,0r0,-137r137,0","w":237},{"d":"179,78r126,0r0,99r-233,0r0,-897r233,0r0,99r-126,0r0,699","w":304},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm157,-653v0,-59,49,-108,108,-108v60,0,108,49,108,108v0,60,-48,109,-108,109v-59,0,-108,-49,-108,-109xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67xm222,-653v0,24,20,44,43,44v24,0,43,-20,43,-44v0,-24,-19,-43,-43,-43v-23,0,-43,19,-43,43","w":530},{"d":"194,-419r221,-301r167,0r-215,281r241,439r-164,0r-175,-312r-75,95r0,217r-144,0r0,-720r144,0r0,301","w":615},{"d":"468,-16r-394,-154r0,-115r394,-158r0,100r-284,114r284,113r0,100","w":540},{"d":"460,-248r-125,0r0,-114r264,0r0,362r-101,0r-14,-51v-41,45,-103,62,-151,62v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372v142,0,251,87,266,224r-130,19v-12,-69,-46,-129,-136,-129v-124,0,-149,165,-149,258v0,93,25,257,149,257v112,0,133,-64,127,-145","w":642},{"d":"472,-348v0,131,-119,178,-259,178v-16,0,-39,8,-39,32v0,68,359,-50,359,153v0,77,-51,158,-257,158v-179,0,-240,-62,-240,-130v0,-40,26,-60,57,-79v-22,-17,-41,-36,-41,-66v0,-51,27,-78,67,-104v-38,-37,-64,-83,-64,-142v0,-164,207,-228,337,-146v34,-35,74,-50,133,-38r0,96v-26,-13,-56,-15,-81,0v15,28,28,58,28,88xm189,-344v0,47,22,87,75,87v57,0,74,-48,74,-97v0,-47,-22,-87,-74,-87v-57,0,-75,48,-75,97xm321,11r-152,-10v-13,8,-21,15,-21,32v0,48,98,51,130,51v23,0,143,-2,143,-44v0,-27,-19,-24,-100,-29","w":554},{"d":"50,-720r211,0r216,475r2,0r0,-475r144,0r0,720r-154,0r-273,-579r-2,0r0,579r-144,0r0,-720","w":673},{"d":"188,-519r0,519r-137,0r0,-519r137,0xm180,-720r113,129r-125,0r-52,-58r-48,58r-123,0r109,-129r126,0","w":237},{"d":"532,-606r-120,62v-23,-41,-47,-65,-97,-65v-88,0,-127,102,-125,176v43,-24,83,-42,133,-42v89,0,218,68,218,231v0,175,-143,255,-238,255v-135,0,-268,-99,-268,-365v0,-257,127,-378,278,-378v89,0,173,53,219,126xm185,-298v-2,70,18,187,108,187v73,0,106,-58,106,-126v0,-57,-32,-116,-96,-116v-48,0,-84,24,-118,55"},{"d":"126,-546r-105,-65v39,-74,103,-121,188,-121v102,0,184,53,184,163v0,172,-173,165,-162,350r-125,0v-18,-180,161,-243,163,-344v0,-29,-22,-55,-52,-55v-44,0,-75,34,-91,72xm236,-137r0,137r-137,0r0,-137r137,0","w":413},{"d":"225,-720r98,0r-38,201r93,0r39,-201r98,0r-39,201r67,0r0,103r-85,0r-21,111r80,0r0,103r-101,0r-39,202r-98,0r39,-202r-94,0r-39,202r-98,0r39,-202r-93,0r0,-103r112,0r24,-111r-98,0r0,-103r116,0xm267,-416r-23,111r94,0r23,-111r-94,0"},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258xm344,-922r54,129r-85,0r-95,-129r126,0","w":665},{"d":"498,-720r0,122r-304,0r0,172r235,0r0,122r-235,0r0,304r-144,0r0,-720r448,0","w":519},{"d":"74,-16r0,-100r283,-113r-283,-114r0,-100r394,158r0,115","w":540},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169xm227,-720r0,137r-137,0r0,-137r137,0xm439,-720r0,137r-137,0r0,-137r137,0","w":527},{"d":"213,-137r0,137r-137,0r0,-137r137,0xm213,-519r0,137r-137,0r0,-137r137,0","w":287},{"d":"264,11v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v152,0,228,133,228,271v0,137,-77,270,-228,270xm264,-90v74,0,87,-104,87,-169v0,-65,-13,-170,-87,-170v-74,0,-87,105,-87,170v0,65,13,169,87,169xm325,-720r113,129r-125,0r-52,-58r-48,58r-122,0r108,-129r126,0","w":527},{"d":"530,-720r0,78r-283,642r-161,0r273,-598r-297,0r0,-122r468,0"},{"d":"126,78r0,-699r-126,0r0,-99r232,0r0,897r-232,0r0,-99r126,0","w":304},{"d":"327,-317r0,90v-19,-1,-76,-5,-76,46r0,226v0,93,-72,132,-105,132r-78,0r0,-90r34,0v43,0,42,-28,42,-56r0,-208v2,-74,60,-91,89,-93r0,-3v-29,-2,-89,-20,-89,-94r0,-207v0,-28,1,-57,-42,-57r-34,0r0,-89r78,0v33,0,105,38,105,131r0,226v0,51,57,47,76,46","w":360},{"d":"563,-720r-219,720r-132,0r-219,-720r149,0r135,535r2,0r135,-535r149,0","w":555},{"d":"357,-190r124,22v-22,108,-101,179,-217,179v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v116,0,195,71,217,179r-124,21v-10,-49,-24,-99,-93,-99v-74,0,-87,105,-87,170v0,65,13,169,87,169v69,0,83,-50,93,-100","w":516},{"d":"172,-720r55,129r-85,0r-96,-129r126,0","w":324},{"d":"57,-219r-21,-501r157,0r-22,501r-114,0xm182,-137r0,137r-137,0r0,-137r137,0","w":228},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm344,-922r113,129r-125,0r-52,-58r-48,58r-123,0r109,-129r126,0xm371,-294r-76,-302r-3,0r-76,302r155,0","w":587},{"d":"545,74r0,103v-158,-12,-273,59,-276,-171v-98,-17,-233,-131,-233,-366v0,-181,91,-372,297,-372v206,0,298,191,298,372v0,235,-131,349,-245,366v0,65,14,68,56,68r103,0xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258","w":665},{"d":"389,-720r205,720r-147,0r-47,-181r-213,0r-47,181r-147,0r201,-720r195,0xm371,-294r-76,-302r-3,0r-76,302r155,0xm257,-922r0,137r-138,0r0,-137r138,0xm469,-922r0,137r-137,0r0,-137r137,0","w":587},{"d":"489,-519r-200,561v-33,94,-67,149,-176,149v-30,0,-59,-4,-88,-10r0,-118v20,7,37,13,59,13v62,0,84,-35,101,-89r-185,-506r148,0r105,342r95,-342r141,0xm419,-720r0,137r-137,0r0,-137r137,0xm207,-720r0,137r-137,0r0,-137r137,0","w":488},{"d":"213,-137r0,131r-79,152r-56,-24r45,-122r-47,0r0,-137r137,0","w":287},{"d":"222,-274r-85,206r-101,0r78,-206r-78,-207r101,0xm417,-274r-85,206r-101,0r77,-206r-77,-207r101,0","w":452},{"d":"589,-720r-211,353r219,367r-168,0r-131,-235r-138,235r-160,0r220,-367r-201,-353r169,0r116,231r125,-231r160,0","w":597},{"d":"218,-457r106,0r0,178r170,0r0,101r-170,0r0,178r-106,0r0,-178r-172,0r0,-101r172,0r0,-178","w":540},{"d":"457,-720r0,438r89,0r0,114r-89,0r0,168r-145,0r0,-168r-282,0r0,-104r258,-448r169,0xm312,-282r0,-256r-2,0r-140,256r142,0"},{"d":"491,-519r0,696r-137,0r0,-210v-41,27,-73,44,-117,44v-105,0,-201,-64,-201,-283v0,-192,115,-258,190,-258v69,0,101,18,143,55r12,-44r110,0xm354,-135r0,-236v-19,-26,-47,-39,-80,-39v-85,0,-104,86,-104,154v0,68,22,156,104,156v31,0,57,-16,80,-35","w":540},{"d":"526,-122r0,122r-475,0r0,-153v152,-188,329,-250,329,-375v0,-50,-32,-90,-84,-90v-75,0,-99,60,-109,124r-136,-25v5,-138,109,-213,241,-213v163,0,236,98,236,211v0,188,-189,225,-331,399r329,0"},{"d":"213,-137r0,131r-79,152r-56,-24r45,-122r-47,0r0,-137r137,0xm213,-519r0,137r-137,0r0,-137r137,0","w":287},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258xm394,-922r113,129r-125,0r-52,-58r-48,58r-123,0r109,-129r126,0","w":665},{"d":"390,-299r77,0v4,65,-41,142,-121,142v-61,0,-105,-37,-146,-37v-22,0,-33,18,-35,37r-79,0v-6,-64,43,-142,118,-142v63,0,105,33,150,33v22,0,32,-14,36,-33","w":540},{"d":"33,-227r0,-90v19,1,76,5,76,-46r0,-226v0,-93,72,-131,105,-131r79,0r0,89r-35,0v-43,0,-42,29,-42,57r0,207v-2,74,-60,92,-89,94r0,3v29,2,89,19,89,93r0,208v0,28,-1,56,42,56r35,0r0,90r-79,0v-33,0,-105,-39,-105,-132r0,-226v0,-51,-57,-47,-76,-46","w":360},{"d":"339,0r0,-54v-44,36,-98,65,-155,65v-56,0,-136,-34,-136,-162r0,-368r137,0r0,313v0,42,-2,107,57,107v40,0,71,-29,97,-57r0,-363r137,0r0,519r-137,0","w":524},{"d":"409,-720r145,0r0,498v0,148,-102,233,-254,233v-152,0,-254,-85,-254,-233r0,-498r145,0r0,451v0,120,36,158,109,158v73,0,109,-38,109,-158r0,-451","w":599},{"d":"55,-699r99,-33v126,290,127,631,0,921r-99,-33v37,-119,81,-245,81,-427v0,-182,-44,-309,-81,-428","w":304},{"d":"498,-720r0,122r-304,0r0,172r252,0r0,122r-252,0r0,182r322,0r0,122r-466,0r0,-720r448,0xm213,-793r55,-129r126,0r-96,129r-85,0","w":555},{"d":"387,-300r124,22v-19,94,-82,163,-179,177r0,82r-88,0r0,-86v-124,-32,-179,-136,-179,-258v0,-124,51,-235,179,-269r0,-88r88,0r0,83v96,12,160,82,179,176r-124,21v-10,-49,-23,-99,-85,-99v-83,0,-95,107,-95,170v0,63,12,169,95,169v62,0,75,-50,85,-100"},{"d":"427,-456r61,-74r35,39r-67,77v86,169,16,426,-192,425v-69,0,-125,-28,-158,-68r-63,68r-37,-35r70,-75v-92,-170,-23,-431,188,-431v71,0,126,30,163,74xm181,-194r155,-173v-13,-30,-30,-62,-72,-62v-74,0,-87,105,-87,170v0,21,1,35,4,65xm349,-308r-151,171v11,19,22,47,66,47v89,0,91,-129,85,-218","w":527},{"d":"194,-439r238,0r0,-281r145,0r0,720r-145,0r0,-317r-238,0r0,317r-144,0r0,-720r144,0r0,281","w":626},{"d":"187,-720r0,396r145,-195r157,0r-160,195r176,324r-154,0r-114,-213r-50,61r0,152r-137,0r0,-720r137,0","w":514},{"d":"194,0r-144,0r0,-720r144,0r0,720","w":244},{"d":"46,-720r128,0r0,120r-39,119r-50,0r-39,-119r0,-120","w":220},{"d":"185,-519r0,54v44,-36,98,-65,155,-65v56,0,136,34,136,162r0,368r-137,0r0,-312v0,-42,2,-107,-57,-107v-40,0,-71,28,-97,56r0,363r-137,0r0,-519r137,0","w":524},{"d":"494,-500r13,-41r95,0r-67,254v-5,19,3,48,37,48v72,0,116,-46,116,-121v0,-178,-125,-290,-290,-290v-156,0,-290,112,-290,290v0,178,134,290,290,290v85,0,139,-14,177,-34r33,78v-41,19,-121,37,-210,37v-217,0,-371,-165,-371,-371v0,-206,154,-372,371,-372v216,0,372,166,372,372v0,125,-93,203,-196,203v-89,0,-105,-38,-118,-61v-39,46,-70,61,-116,61v-95,0,-148,-74,-148,-149v0,-156,107,-252,222,-252v51,0,69,31,80,58xm298,-327v0,53,14,88,59,88v43,0,108,-90,108,-162v0,-25,-12,-76,-57,-76v-68,0,-110,69,-110,150","w":796},{"d":"334,-583v0,86,-63,148,-148,148v-86,0,-148,-62,-148,-148v0,-85,62,-149,148,-149v85,0,148,64,148,149xm251,-583v0,-35,-30,-65,-65,-65v-36,0,-65,30,-65,65v0,36,29,64,65,64v35,0,65,-28,65,-64","w":370},{"d":"307,-519r0,114r-101,0r0,405r-137,0r0,-405r-69,0r0,-114r69,0v-7,-113,20,-190,151,-201r87,0r0,122r-25,0v-83,-7,-76,2,-76,79r101,0","w":306},{"d":"-18,-720r103,0r395,720r-103,0","w":463},{"d":"201,-648r0,129r106,0r0,114r-106,0r0,264v0,25,8,51,52,51v23,0,37,-9,54,-19r0,104v-119,40,-244,6,-243,-145r0,-255r-64,0r0,-114r64,0r0,-129r137,0","w":307},{"d":"187,-720r0,252v39,-34,72,-62,128,-62v75,0,190,66,190,258v0,219,-96,283,-201,283v-44,0,-79,-19,-117,-48r0,214r-137,0r0,-897r137,0xm187,-351r0,200v21,32,48,61,89,61v82,0,94,-102,94,-164v0,-57,-15,-153,-91,-153v-40,0,-68,27,-92,56","w":540},{"d":"360,-720r0,606r111,0r0,114r-366,0r0,-114r111,0r0,-472r-111,0r0,-79r152,-55r103,0"},{"d":"227,-725r0,349r66,0r0,83r-239,0r0,-83r66,0r0,-255r-66,0r0,-61r99,-33r74,0","w":345},{"d":"647,-173r127,23v-47,172,-301,220,-403,75v-47,51,-109,86,-172,86v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v57,0,101,15,149,59v39,-40,88,-59,126,-59v131,0,231,62,227,303r-317,0v-5,63,34,137,104,137v49,0,76,-39,86,-83xm344,-159r-5,-78v-56,10,-169,16,-169,92v0,31,16,55,48,55v45,0,92,-35,126,-69xm462,-313r178,0v0,-58,-23,-116,-89,-116v-62,0,-87,60,-89,116","w":810},{"d":"462,-519r-156,519r-145,0r-161,-519r144,0r90,372r2,0r89,-372r137,0","w":462},{"d":"517,-532r-131,24v-14,-50,-42,-101,-100,-101v-47,0,-88,34,-88,83v0,142,339,49,339,318v0,88,-66,219,-244,219v-137,0,-237,-66,-259,-207r145,-22v13,61,44,107,113,107v56,0,103,-30,103,-92v0,-144,-339,-61,-339,-306v0,-130,110,-223,235,-223v122,0,214,79,226,200","w":571},{"d":"494,-279r0,101r-448,0r0,-101r448,0xm217,-354r0,-103r106,0r0,103r-106,0xm217,0r0,-103r106,0r0,103r-106,0","w":540},{"d":"576,-720r-124,201r101,0r0,103r-164,0v-11,26,-34,42,-29,84r193,0r0,103r-193,0r0,229r-144,0r0,-229r-193,0r0,-103r193,0r0,-31r-34,-53r-159,0r0,-103r98,0r-121,-201r154,0r134,244r139,-244r149,0"},{"d":"527,-599r-111,66v-28,-42,-63,-70,-115,-70v-40,0,-92,21,-92,67v0,112,333,112,333,330v0,123,-84,191,-190,214r0,86r-89,0r0,-86v-99,-9,-180,-64,-229,-151r113,-67v32,56,81,92,149,92v47,0,110,-18,110,-76v0,-106,-333,-111,-333,-329v0,-113,84,-190,190,-206r0,-85r89,0r0,85v74,20,141,61,175,130"},{"d":"830,-83r0,83r-309,0r0,-104v90,-111,204,-150,204,-202v0,-33,-19,-50,-44,-50v-48,0,-65,21,-71,60r-98,-19v3,-79,71,-124,166,-124v106,0,154,58,154,126v0,128,-114,136,-206,230r204,0xm547,-720r87,0r-365,720r-87,0xm206,-725r0,349r65,0r0,83r-239,0r0,-83r67,0r0,-255r-67,0r0,-61r99,-33r75,0","w":863},{"d":"36,-186v-3,-91,58,-153,128,-198v-93,-125,-55,-348,130,-348v91,0,175,75,175,170v0,93,-57,161,-131,210v34,52,69,94,108,127v27,-40,41,-79,51,-119r116,25v-13,58,-36,113,-70,163v36,21,73,29,111,32r-8,128v-67,2,-131,-22,-187,-57v-137,121,-417,67,-423,-133xm178,-206v-1,89,118,134,184,78v-56,-52,-109,-103,-142,-155v-28,19,-42,42,-42,77xm272,-444v50,-31,82,-56,82,-113v0,-32,-21,-66,-57,-66v-89,0,-64,124,-25,179","w":660},{"d":"489,-519r-200,561v-33,94,-67,149,-176,149v-30,0,-59,-4,-88,-10r0,-118v20,7,37,13,59,13v62,0,84,-35,101,-89r-185,-506r148,0r105,342r95,-342r141,0","w":488},{"d":"498,-720r0,122r-304,0r0,172r252,0r0,122r-252,0r0,182r322,0r0,122r-466,0r0,-720r448,0","w":555},{"d":"187,-519r0,51v39,-34,72,-62,128,-62v75,0,190,66,190,258v0,219,-96,283,-201,283v-44,0,-79,-19,-117,-48r0,214r-137,0r0,-696r137,0xm187,-351r0,200v21,32,48,61,89,61v82,0,94,-102,94,-164v0,-57,-15,-153,-91,-153v-40,0,-68,27,-92,56","w":540},{"d":"491,-519r-165,248r172,271r-154,0r-97,-167r-94,167r-149,0r171,-261r-161,-258r155,0r85,148r88,-148r149,0","w":501},{"d":"213,-297r0,137r-137,0r0,-137r137,0","w":287},{"d":"357,-190r124,22v-22,108,-101,179,-217,179v-151,0,-228,-133,-228,-270v0,-138,76,-271,228,-271v116,0,195,71,217,179r-124,21v-10,-49,-24,-99,-93,-99v-74,0,-87,105,-87,170v0,65,13,169,87,169v69,0,83,-50,93,-100xm327,60r-63,155r-73,0r23,-155r113,0","w":516},{"d":"188,-720r0,720r-137,0r0,-720r137,0","w":237},{"d":"361,0r-15,-47v-51,36,-81,58,-147,58v-90,0,-163,-61,-163,-154v0,-146,193,-176,303,-188v9,-72,-15,-98,-66,-98v-44,0,-75,20,-82,65r-132,-20v31,-110,105,-146,213,-146v140,0,204,67,204,164r0,258v0,37,1,74,18,108r-133,0xm440,-720r0,137r-137,0r0,-137r137,0xm228,-720r0,137r-137,0r0,-137r137,0xm339,-157r0,-80v-56,10,-169,16,-169,92v0,31,16,55,48,55v56,0,95,-33,121,-67","w":530},{"d":"498,-720r0,122r-304,0r0,172r252,0r0,122r-252,0r0,182r322,0r0,122r-466,0r0,-720r448,0xm453,-922r0,137r-137,0r0,-137r137,0xm241,-922r0,137r-137,0r0,-137r137,0","w":555},{"d":"50,-720r278,0v168,0,237,122,237,226v0,109,-65,218,-273,218r-98,0r0,276r-144,0r0,-720xm194,-398v98,-3,223,24,223,-100v0,-124,-126,-97,-223,-100r0,200","w":583},{"d":"178,-331r-121,0r0,-102r84,0v-7,-33,-13,-68,-13,-102v0,-123,97,-197,215,-197v97,0,169,50,199,144r-120,40v-10,-36,-41,-70,-81,-70v-89,0,-72,118,-49,185r146,0r0,102r-112,0v17,58,24,123,7,183v73,48,108,57,153,-21r105,50v-37,65,-73,130,-158,130v-55,0,-101,-32,-143,-65v-42,42,-87,65,-146,65v-77,0,-148,-45,-148,-128v0,-105,123,-149,212,-99v-6,-40,-13,-79,-30,-115xm201,-119v-21,-14,-38,-27,-64,-27v-21,0,-40,9,-40,33v0,22,19,37,40,37v30,0,45,-23,64,-43"},{"d":"443,-720r101,0r-491,897r-101,0","w":495},{"d":"151,-732r99,33v-37,119,-81,246,-81,428v0,182,44,308,81,427r-99,33v-126,-290,-127,-631,0,-921","w":304},{"d":"504,-580r-122,41v-19,-42,-42,-79,-95,-79v-33,0,-73,18,-73,57v0,43,40,54,74,67v107,41,244,82,245,217v0,64,-40,116,-87,157v30,31,49,67,49,111v0,111,-98,190,-206,190v-100,0,-185,-58,-217,-152r122,-41v19,42,42,79,95,79v33,0,73,-18,73,-57v0,-43,-40,-53,-74,-66v-106,-43,-244,-82,-245,-218v0,-64,40,-116,87,-157v-30,-31,-49,-67,-49,-111v0,-111,98,-190,206,-190v100,0,185,58,217,152xm232,-235r136,59v23,-19,45,-43,45,-74v0,-45,-33,-60,-69,-76r-136,-59v-23,19,-45,43,-45,74v0,45,33,60,69,76"},{"d":"50,-720r211,0r216,475r2,0r0,-475r144,0r0,720r-154,0r-273,-579r-2,0r0,579r-144,0r0,-720xm432,-922r63,0v4,59,-33,128,-100,128v-51,0,-88,-32,-122,-32v-19,0,-28,15,-29,32r-65,0v-5,-58,35,-128,98,-128v52,0,87,30,125,30v19,0,27,-13,30,-30","w":673},{"d":"50,0r0,-720r137,0r0,252v39,-34,72,-62,128,-62v75,0,190,66,190,258v0,219,-96,283,-201,283v-57,0,-90,-18,-132,-55r-12,44r-110,0xm187,-351r0,200v21,32,48,61,89,61v82,0,94,-102,94,-164v0,-57,-15,-153,-91,-153v-40,0,-68,27,-92,56","w":540},{"d":"192,-619v1,-30,0,-48,-37,-48v-27,0,-44,9,-49,36r-86,-12v19,-67,65,-89,131,-89v85,0,129,27,129,125v0,67,-11,139,12,190r-86,0r-9,-26v-59,57,-190,39,-190,-56v0,-92,116,-109,185,-120xm192,-512r0,-37v-26,4,-94,12,-94,47v0,51,77,19,94,-10","w":298},{"d":"46,-720r128,0r0,120r-39,119r-50,0r-39,-119r0,-120xm265,-720r128,0r0,120r-39,119r-50,0r-39,-119r0,-120","w":438},{"d":"57,-327r155,-393r115,0r157,393r-100,0r-114,-283r-113,283r-100,0","w":540},{"d":"469,-720r0,122r-288,0r0,150v41,-36,84,-54,139,-54v135,0,220,120,220,246v0,140,-106,267,-262,267v-99,0,-202,-58,-241,-152r128,-51v18,48,53,89,109,89v77,0,118,-67,118,-137v0,-70,-35,-140,-114,-140v-45,0,-85,29,-97,73r-125,-30r11,-383r402,0"},{"d":"394,-204r108,-516r237,0r0,720r-145,0r-1,-574r-134,574r-129,0r-134,-574r-2,0r0,574r-144,0r0,-720r237,0","w":788},{"d":"409,-720r145,0r0,498v0,148,-102,233,-254,233v-152,0,-254,-85,-254,-233r0,-498r145,0r0,451v0,120,36,158,109,158v73,0,109,-38,109,-158r0,-451xm474,-922r0,137r-137,0r0,-137r137,0xm262,-922r0,137r-137,0r0,-137r137,0","w":599},{"d":"185,-720r0,255v44,-36,98,-65,155,-65v56,0,136,34,136,162r0,368r-137,0r0,-312v0,-42,2,-107,-57,-107v-40,0,-71,28,-97,56r0,363r-137,0r0,-720r137,0","w":524},{"d":"183,-625r0,324r-106,0r0,-324r106,0xm183,-162r0,324r-106,0r0,-324r106,0","w":259},{"d":"188,-519r0,515v0,166,-85,189,-232,181r0,-110v64,-7,95,30,95,-74r0,-512r137,0xm188,-720r0,126r-137,0r0,-126r137,0","w":237},{"d":"44,-115r120,-62v23,41,47,66,97,66v88,0,127,-102,125,-176v-43,24,-83,42,-133,42v-89,0,-218,-68,-218,-231v0,-175,143,-256,238,-256v135,0,268,99,268,365v0,257,-127,378,-278,378v-89,0,-173,-53,-219,-126xm391,-422v2,-70,-18,-187,-108,-187v-73,0,-106,58,-106,126v0,57,32,115,96,115v48,0,84,-23,118,-54"},{"d":"398,11v-217,0,-371,-165,-371,-371v0,-206,154,-372,371,-372v216,0,372,166,372,372v0,206,-156,371,-372,371xm398,-70v165,0,290,-112,290,-290v0,-178,-125,-290,-290,-290v-156,0,-290,112,-290,290v0,178,134,290,290,290xm241,-577r185,0v189,-12,212,217,71,261r88,172r-109,0r-73,-154r-65,0r0,154r-97,0r0,-433xm338,-380v62,-3,144,15,144,-56v0,-76,-81,-56,-144,-59r0,115","w":796},{"d":"517,-532r-131,24v-14,-50,-42,-101,-100,-101v-47,0,-88,34,-88,83v0,142,339,49,339,318v0,88,-66,219,-244,219v-137,0,-237,-66,-259,-207r145,-22v13,61,44,107,113,107v56,0,103,-30,103,-92v0,-144,-339,-61,-339,-306v0,-130,110,-223,235,-223v122,0,214,79,226,200xm459,-922r-113,129r-126,0r-108,-129r122,0r48,58r52,-58r125,0","w":571},{"d":"484,0r0,-48v-49,39,-98,59,-151,59v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372v54,0,102,19,151,57r0,-45r448,0r0,122r-312,0r0,172r261,0r0,122r-261,0r0,182r330,0r0,122r-466,0xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258","w":992},{"d":"333,-732v206,0,298,191,298,372v0,181,-92,371,-298,371v-206,0,-297,-190,-297,-371v0,-181,91,-372,297,-372xm333,-618v-124,0,-149,165,-149,258v0,93,25,257,149,257v124,0,149,-164,149,-257v0,-93,-25,-258,-149,-258","w":665},{"d":"463,69r0,47r-463,0r0,-47r463,0","w":463},{"d":"186,-519r0,54v75,-74,236,-98,287,7v47,-39,96,-72,160,-72v81,0,146,53,146,155r0,375r-137,0r0,-327v0,-41,2,-92,-55,-92v-44,0,-81,27,-105,61r0,358r-137,0r0,-327v0,-41,3,-92,-54,-92v-44,0,-81,27,-105,61r0,358r-137,0r0,-519r137,0","w":826},{"d":"418,-379v62,42,122,97,122,178v0,81,-66,212,-256,212v-169,0,-248,-109,-248,-205v0,-81,55,-151,126,-185v-60,-31,-105,-81,-105,-151v0,-123,112,-202,227,-202v110,0,232,74,232,195v0,72,-44,118,-98,158xm284,-320v-54,22,-106,62,-106,126v0,49,49,87,106,87v54,0,114,-30,114,-92v0,-65,-59,-102,-114,-121xm298,-435v43,-22,80,-50,80,-103v0,-40,-39,-75,-93,-75v-42,0,-90,27,-90,72v0,56,58,87,103,106"},{"d":"339,0r0,-54v-44,36,-98,65,-155,65v-56,0,-136,-34,-136,-162r0,-368r137,0r0,313v0,42,-2,107,57,107v40,0,71,-29,97,-57r0,-363r137,0r0,519r-137,0xm272,-720r55,129r-85,0r-96,-129r126,0","w":524},{"d":"339,0r0,-54v-44,36,-98,65,-155,65v-56,0,-136,-34,-136,-162r0,-368r137,0r0,313v0,42,-2,107,57,107v40,0,71,-29,97,-57r0,-363r137,0r0,519r-137,0xm197,-591r55,-129r126,0r-96,129r-85,0","w":524}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+-840-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("C?S=IPGpF-m!CtMJ4Py9L?Lm+>G=SPm!+>a9F-$:SdgEz^pe+UVY{?s}`P)ft]sy?ULaCD{G;N`$7kVd-+zSFI34iBOZe.AMP:QXKoE6!WYR9^p=>~h}nJgmv#$34k)Yz^4V+UVY{?d.-MR={]fP{yR={]fM{yR={]s>{dR={]fZSMR={]fASdR={]s^{7f34k)Yz^GS+UVY{k3h+UVY{?sY+UVY{?`^+UVY{?GP+UVY{?GZ+UVY{?Lp+UVY{?Vh+UVY{?`h+UVY{k4A+UVY{?{Y+UVY{?aP+UVY{?sRByR={]fZGya34k)Yz.S34k)Yz.GnFdR={]s={=R={]fASMR={]fez+434k)Yz^Z34k)YSPa34k)YS-$^+UVY{?GAzdR={]fP{dR={]fMz+a34k)YS]f34k)Yz-{m+UVY{?LR+UVY{?G.+UVY{?{>{=R={]fM{MR={]feSk)K+UVY{?z=+UVY{k`9adR={]fPz=R={]s~SdR={]fAGdR={]fP{9p!+UVY{?de+UVY{?SA+UVY{?z9+UVY{?Lh+UVY{?V}+UVY{?$Z+UVY{?sh+UVY{?{R+UVY{?VR`-d34k)YS]SC+UVY{?`}kyR={]fASyR={]s}{MR={]f.SdR={]fAzMR={]sp{dR={]fAGp$]+UVY{?L9+UVY{?{=+UVY{?a.+UVY{?V^+UVY{?yeI=434k)YS-SI+UVY{?V=7^RUSp}34k)YS-V>N9G34k)YS]a?NMR={]fPG.X34k)YS.`~++=-z>)Z+UVY{?{9VdR={]f.GyR={]fPSeR34k)YzPazC^$R{.634k)YS]$vi~ddCdR={]f.;dR={]fZ{MR={]fP;sZo774!`yR={]fe{?S3+U$34k)YSPVR+UVY{?L}+UVY{?V>4MG34k)YS.434k)YzkVA+UVY{?aAa:My3UZ34k)Yz.434k)YSk4E+UVY{?Vp+UVY{?GeVyR={]fZ{=YWCyR={]fZG=R={]fA{-a34k)Yz-y3LMh=kdR={]fAz>Z34k)YzkSK;dR={]fZSdR={]s>{yR={]s={AmBIkZ34k)YS.M34k)YSPseD:GYI?MpCtLeC7RXNk)E3]=eD:)EI]=YDPRMIP4pFtR:N-L!Se}:IUMYFU{mi~pJF-zQze}WF^pW+eO#;:4~4=Y!CkgQN^XEI>GZI?ZW3~$gDe63DP$MI?yp+t}^S+Y!C=Y!z>Mpi-a9S-yo+t}.I>=gDe63DP4=I?$9F-6M4yY!z>m6B?4=I?$9F-6M4yY!z>m6Btho+t}:I>RAI>SEz+fEz-}A+t}.I>=gS>mES?mPI?yYI?y!SyY!z>m6C7`WF7}pS+GpC?RWz>ypF-m!DPZW3~$!z-=MC7MPI~LQ;>AgI]EoC>AXS=6.->M4+k=Y->M4B7AQC7)O")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":575,"face":{"font-family":"HeaderBold","font-weight":700,"font-stretch":"normal","units-per-em":"926","panose-1":"2 0 8 3 0 0 0 0 0 0","ascent":"741","descent":"-185","x-height":"11","bbox":"-56 -963 950 358","underline-thickness":"46.3","underline-position":"-92.6","stemh":"122","stemv":"137","unicode-range":"U+0020-U+0192"}}));
;

