/*!
* 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 (typeof elements == 'string') {
                        if (!ignoreHistory) replaceHistory.add(elements, arguments);
                        elements = [elements];
                    }
                    else if (elements.nodeType) 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;
                    var pixelRatio = window.devicePixelRatio || 1;
                    if (pixelRatio != 1) {
                        canvas.width = canvasWidth * pixelRatio;
                        canvas.height = canvasHeight * pixelRatio;
                        g.scale(pixelRatio, pixelRatio);
                    }

                    // 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) 2009 by Jos Buivenga. All rights reserved.
 * 
 * Trademark:
 * Museo Slab is a trademark of Jos Buivenga.
 * 
 * Description:
 * Spaced and kerned with iKern.
 * 
 * Manufacturer:
 * Jos Buivenga
 * 
 * Designer:
 * Jos Buivenga
 * 
 * Vendor URL:
 * http://www.exljbris.com
 * 
 * License information:
 * http://new.myfonts.com/license/922,1146
 */
Cufon.registerFont({"w":203,"face":{"font-family":"MuseoSlab","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 0 0 0 0 0 0 0 0","ascent":"279","descent":"-81","x-height":"4","bbox":"-6 -329 408 80.0908","underline-thickness":"18","underline-position":"-18","unicode-range":"U+0020-U+2122"},"glyphs":{" ":{"w":90},"!":{"d":"28,-74r-4,-182r48,0r-4,182r-40,0xm26,0r0,-43r44,0r0,43r-44,0","w":95},"\"":{"d":"78,-180r0,-80r34,0r0,80r-34,0xm21,-180r0,-80r34,0r0,80r-34,0","w":133},"#":{"d":"45,0r12,-67r-43,0r5,-33r43,0r9,-50r-43,0r6,-34r43,0r12,-72r37,0r-13,72r49,0r13,-72r37,0r-13,72r43,0r-5,34r-43,0r-9,50r43,0r-6,33r-43,0r-12,67r-36,0r11,-67r-49,0r-12,67r-36,0xm99,-100r49,0r9,-50r-49,0","w":255},"$":{"d":"174,-111v31,45,-6,107,-57,109r0,38r-31,0r0,-38v-29,-3,-57,-18,-72,-34r24,-33v17,24,99,47,102,-4v-21,-53,-122,-33,-122,-111v0,-37,32,-65,68,-69r0,-39r31,0r0,39v24,3,52,12,63,26r-19,35v-18,-20,-93,-38,-96,7v11,47,85,38,109,74","w":200},"%":{"d":"131,-203v0,31,-27,57,-58,57v-31,0,-59,-25,-59,-57v0,-32,28,-57,59,-57v30,0,58,26,58,57xm23,0r196,-256r42,0r-196,256r-42,0xm49,-203v0,13,11,24,24,24v13,0,24,-11,24,-24v0,-12,-11,-24,-24,-24v-13,0,-24,12,-24,24xm212,4v-31,0,-59,-25,-58,-56v0,-31,27,-57,58,-57v30,0,59,25,59,57v0,31,-27,56,-59,56xm212,-76v-12,0,-23,11,-23,23v0,13,10,24,23,24v13,0,25,-11,25,-24v0,-12,-12,-23,-25,-23","w":284},"&":{"d":"111,4v-51,0,-96,-30,-96,-76v0,-31,23,-55,46,-65v-20,-7,-35,-28,-35,-56v-1,-55,62,-76,118,-63r-11,37v-29,-7,-60,4,-60,32v0,41,46,36,87,35r0,-34r46,0r0,34r33,0r0,38r-33,0v8,74,-27,118,-95,118xm160,-114v-45,0,-98,-6,-97,38v0,25,21,39,48,39v42,2,53,-31,49,-77","w":246},"'":{"d":"21,-180r0,-80r34,0r0,80r-34,0","w":76},"(":{"d":"65,34v-55,-90,-60,-211,0,-301r39,0v-57,94,-52,205,0,301r-39,0","w":118},")":{"d":"14,34v52,-95,57,-209,0,-301r39,0v60,90,55,211,0,301r-39,0","w":118},"*":{"d":"62,-116r-33,-23v10,-13,21,-23,30,-37r-45,-11r12,-39r43,18r-3,-48r42,0r-4,48r44,-18r13,38v-15,5,-33,6,-46,13r30,35r-33,24r-25,-39","w":173},"+":{"d":"15,-85r0,-36r78,0r0,-85r37,0r0,85r78,0r0,36r-78,0r0,85r-37,0r0,-85r-78,0","w":222},",":{"d":"5,43r26,-89r46,0r-37,89r-35,0","w":98},"-":{"d":"30,-83r0,-40r108,0r0,40r-108,0","w":167},".":{"d":"25,0r0,-46r46,0r0,46r-46,0","w":96},"\/":{"d":"13,15r92,-284r39,0r-91,284r-40,0","w":157},"0":{"d":"205,-128v0,73,-20,132,-93,132v-72,0,-92,-59,-93,-132v0,-88,31,-132,93,-132v62,0,93,44,93,132xm112,-37v30,0,45,-30,45,-91v0,-60,-15,-91,-45,-91v-30,0,-45,31,-45,91v0,61,15,91,45,91","w":224},"1":{"d":"18,0r0,-38r56,0r-1,-161v-6,11,-22,24,-31,34r-28,-29r64,-62r41,0r0,218r55,0r0,38r-156,0","w":181},"2":{"d":"187,-184v-4,83,-102,78,-120,146r88,0r0,-32r40,0r0,70r-177,0v-17,-95,73,-109,113,-161v27,-35,-22,-76,-57,-49v-11,8,-16,15,-23,24r-32,-23v14,-27,42,-50,84,-51v47,-2,85,30,84,76","w":213},"3":{"d":"142,-78v0,-30,-31,-44,-64,-39r-11,-23r67,-79v-23,2,-47,0,-71,1r0,30r-40,0r0,-68r161,0r0,33r-60,71v34,6,66,31,66,72v0,87,-128,109,-176,50r23,-33v20,30,105,41,105,-15","w":208},"4":{"d":"9,-66r0,-28r110,-162r55,0r0,154r33,0r0,36r-33,0r0,66r-46,0r0,-66r-119,0xm130,-210v-21,39,-50,71,-73,108r71,0","w":221},"5":{"d":"191,-82v0,86,-126,113,-177,54r22,-34v23,33,107,36,107,-19v0,-45,-62,-56,-93,-33r-26,-10r12,-132r139,0r0,68r-40,0r0,-30r-59,0v-1,19,-6,43,-5,60v59,-20,120,18,120,76","w":206},"6":{"d":"204,-82v0,47,-38,87,-87,86v-60,-1,-99,-51,-99,-119v0,-98,73,-172,171,-134r-14,39v-50,-28,-103,15,-104,61v48,-44,133,-1,133,67xm106,-129v-23,0,-40,13,-40,33v-1,26,23,60,50,59v24,-1,40,-20,40,-45v0,-28,-20,-47,-50,-47","w":217},"7":{"d":"32,0r111,-219v-28,2,-60,0,-90,1r0,30r-40,0r0,-68r179,0r0,33r-112,223r-48,0","w":198},"8":{"d":"109,4v-86,0,-125,-100,-52,-143v-59,-38,-20,-121,52,-121v79,0,113,83,56,133v70,39,23,131,-56,131xm110,-220v-37,0,-48,43,-19,58v13,6,26,14,40,19v28,-28,24,-77,-21,-77xm89,-121v-38,22,-30,85,20,85v41,0,60,-47,20,-66","w":218},"9":{"d":"148,-107v-49,41,-134,2,-134,-67v0,-47,38,-86,87,-86v61,0,99,54,99,120v0,98,-71,171,-172,134r14,-39v52,26,102,-13,106,-62xm101,-219v-24,-1,-37,21,-39,45v-5,51,87,65,90,13v1,-26,-25,-58,-51,-58","w":217},":":{"d":"31,0r0,-46r46,0r0,46r-46,0xm31,-137r0,-47r46,0r0,47r-46,0","w":107},";":{"d":"34,-137r0,-47r44,0r0,47r-44,0xm11,43r22,-89r46,0r-33,89r-35,0","w":108},"<":{"d":"19,-88r0,-30r173,-77r0,40r-125,52r125,52r0,40","w":222},"=":{"d":"23,-122r0,-35r176,0r0,35r-176,0xm23,-48r0,-36r176,0r0,36r-176,0","w":222},">":{"d":"30,-11r0,-40r125,-52r-125,-52r0,-40r173,77r0,30","w":222},"?":{"d":"158,-193v0,62,-67,56,-63,119r-44,0v-9,-67,54,-66,59,-115v4,-35,-56,-36,-73,-14r-26,-32v39,-43,147,-30,147,42xm50,0r0,-43r45,0r0,43r-45,0","w":173},"@":{"d":"156,46v-79,2,-143,-56,-143,-133v0,-76,63,-134,141,-134v56,0,94,30,94,79r0,90r26,0r0,33r-99,0v-42,1,-78,-28,-78,-67v1,-49,48,-73,108,-66v-1,-21,-28,-32,-53,-32v-52,0,-93,45,-93,98v0,52,42,98,97,96r0,36xm205,-123v-35,-4,-62,5,-62,36v0,31,27,39,62,35r0,-71","w":289},"A":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95","w":262},"B":{"d":"230,-74v-1,49,-34,74,-89,74r-123,0r0,-35r31,0r0,-185r-31,0r0,-36v86,3,201,-21,202,66v0,27,-15,46,-31,56v26,6,42,30,41,60xm172,-185v0,-38,-39,-34,-76,-33r0,67v38,1,76,5,76,-34xm182,-77v0,-41,-44,-39,-86,-37r0,76v43,1,86,5,86,-39","w":248},"C":{"d":"149,4v-75,2,-134,-59,-134,-133v0,-74,59,-134,132,-131v56,2,113,14,100,86r-43,0v7,-39,-24,-46,-55,-46v-50,0,-85,37,-85,89v0,55,37,95,88,95v30,0,63,-7,55,-45r43,0v12,71,-42,84,-101,85","w":268},"D":{"d":"265,-128v0,83,-48,128,-136,128r-111,0r0,-35r31,0r0,-185r-31,0r0,-36r111,0v88,-1,136,46,136,128xm216,-128v0,-68,-43,-97,-120,-90r0,180v77,7,120,-21,120,-90","w":281},"E":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r190,0r0,66r-41,0r0,-28r-71,0r0,70r84,0r0,38r-84,0r0,72r77,0r0,-29r40,0r0,67r-195,0","w":230},"F":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r183,0r0,67r-41,0r0,-27r-64,0r0,74r83,0r0,38r-83,0r0,69r34,0r0,35r-112,0","w":211},"G":{"d":"150,4v-77,3,-135,-57,-135,-133v0,-75,58,-131,135,-131v40,0,101,16,101,50r0,36r-43,0v7,-37,-23,-46,-55,-46v-53,0,-90,35,-89,89v0,54,35,97,91,95v23,0,58,-5,58,-27r0,-27r-46,0r0,-35r89,0r0,77v-6,42,-60,50,-106,52","w":276},"H":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,74r116,0r0,-74r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0r0,-35r31,0r0,-73r-116,0r0,73r31,0r0,35r-109,0","w":307},"I":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0","w":145},"J":{"d":"85,4v-51,0,-85,-35,-78,-94r46,0v-2,31,5,54,32,53v20,-1,31,-15,31,-40r0,-143r-35,0r0,-36r109,0r0,36r-27,0r0,145v3,48,-34,79,-78,79"},"K":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r102,0r0,36r-24,0r0,70r28,0r49,-70r-22,0r0,-36r93,0r0,36r-23,0r-61,85v24,21,38,62,56,91v5,8,15,9,28,9r0,35v-29,-1,-56,3,-68,-19r-45,-84v-5,-10,-19,-11,-35,-10r0,78r29,0r0,35r-107,0","w":257},"L":{"d":"18,0r0,-35r31,0r0,-183r-31,0r0,-38r109,0r0,38r-31,0r0,180r76,0r0,-39r40,0r0,77r-194,0","w":221},"M":{"d":"14,0r0,-35r30,0r15,-185r-31,0r0,-36r83,0r64,166v17,-58,43,-111,63,-166r83,0r0,36r-30,0r14,185r31,0r0,35r-105,0r0,-35r28,0r-9,-129v-1,-7,3,-18,0,-24v-14,53,-37,92,-55,140r-41,0v-17,-47,-42,-87,-54,-140r-2,0v2,52,-6,102,-8,153r29,0r0,35r-105,0","w":349},"N":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r78,0r118,187v-4,-47,-1,-101,-2,-151r-31,0r0,-36r109,0r0,36r-30,0r0,220r-48,0r-118,-185v4,46,1,100,2,150r31,0r0,35r-109,0","w":304},"O":{"d":"148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89","w":295},"P":{"d":"229,-174v2,70,-53,91,-133,83r0,56r31,0r0,35r-109,0r0,-35r31,0r0,-185r-31,0r0,-36r122,0v60,-1,87,28,89,82xm182,-174v0,-44,-40,-47,-86,-44r0,89v46,2,86,1,86,-45","w":238},"Q":{"d":"226,-21v-84,65,-211,-4,-211,-108v0,-73,59,-131,133,-131v109,0,174,128,104,211r29,27r-26,29xm148,-219v-48,0,-84,41,-84,90v0,65,72,119,129,78r-36,-35r26,-29r36,36v39,-58,-4,-140,-71,-140","w":297},"R":{"d":"226,-182v0,39,-22,60,-48,72v21,15,28,44,42,66v5,8,14,10,26,9r0,35v-29,0,-55,3,-66,-19v-13,-26,-26,-55,-45,-76v-8,-5,-26,-3,-39,-3r0,63r29,0r0,35r-107,0r0,-35r31,0r0,-185r-31,0r0,-36v91,3,208,-22,208,74xm179,-178v0,-42,-41,-41,-83,-40r0,82v43,2,83,2,83,-42","w":258},"S":{"d":"105,4v-52,-1,-100,-23,-88,-86r43,0v-6,34,16,45,45,45v44,0,58,-46,23,-62v-44,-20,-105,-25,-105,-90v0,-48,39,-71,86,-71v37,0,80,13,81,45r0,34r-43,0v6,-29,-14,-35,-38,-38v-39,-4,-51,43,-17,58v44,19,104,26,105,89v2,51,-42,77,-92,76","w":214},"T":{"d":"67,0r0,-35r31,0r0,-183r-48,0r0,39r-40,0r0,-77r224,0r0,77r-40,0r0,-39r-49,0r0,183r31,0r0,35r-109,0","w":243},"U":{"d":"146,4v-65,0,-104,-35,-104,-100r0,-124r-31,0r0,-36r109,0r0,36r-31,0v6,74,-26,183,57,183v81,0,51,-109,56,-183r-30,0r0,-36r108,0r0,36r-31,0r0,124v1,65,-39,100,-103,100","w":291},"V":{"d":"105,0r-78,-220r-23,0r0,-36r99,0r0,36r-27,0r54,169v13,-60,35,-112,52,-169r-26,0r0,-36r99,0r0,36r-24,0r-77,220r-49,0","w":258},"W":{"d":"5,-220r0,-36r100,0r0,36r-30,0r37,168v14,-71,35,-135,52,-204r38,0r53,204v9,-59,25,-111,36,-168r-30,0r0,-36r100,0r0,36r-23,0r-55,220r-53,0r-47,-185v-12,66,-32,123,-47,185r-53,0r-55,-220r-23,0","w":366},"X":{"d":"12,0r0,-35r22,0r65,-95r-63,-90r-23,0r0,-36r97,0r0,36r-25,0r43,64r41,-64r-25,0r0,-36r93,0r0,36r-22,0r-65,94r64,91r23,0r0,35r-97,0r0,-35r25,0r-44,-65r-41,65r25,0r0,35r-93,0","w":249},"Y":{"d":"64,0r0,-35r31,0r0,-72r-68,-113r-23,0r0,-36r95,0r0,36r-25,0r45,79r44,-79r-24,0r0,-36r94,0r0,36r-23,0r-68,113r0,72r31,0r0,35r-109,0","w":236},"Z":{"d":"19,0r0,-30r133,-189v-29,3,-61,0,-92,1r0,39r-39,0r0,-77r188,0r0,30r-127,183v-3,3,-5,3,-6,6v30,-3,65,0,97,-1r0,-39r40,0r0,77r-194,0","w":231},"[":{"d":"33,34r0,-301r71,0r0,33r-32,0r0,235r32,0r0,33r-71,0","w":118},"\\":{"d":"105,15r-92,-284r39,0r92,284r-39,0","w":157},"]":{"d":"15,1r32,0r0,-235r-32,0r0,-33r71,0r0,301r-71,0r0,-33","w":118},"^":{"d":"23,-88r73,-168r29,0r72,168r-40,0r-47,-119r-47,119r-40,0","w":222},"_":{"d":"1,0r202,0r0,35r-202,0r0,-35","w":204},"`":{"d":"92,-273r-48,-48r49,0r39,48r-40,0","w":177},"a":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56"},"b":{"d":"211,-92v0,82,-97,129,-140,67r1,25r-44,0r0,-221r-28,0r0,-35r74,0r0,95v10,-13,29,-27,55,-27v51,0,82,42,82,96xm119,-149v-29,1,-46,24,-46,58v0,29,16,58,45,57v28,-1,48,-24,47,-57v-1,-31,-16,-58,-46,-58","w":223},"c":{"d":"189,-24v-52,55,-177,24,-177,-67v0,-55,45,-98,99,-97v44,1,84,15,75,69r-39,0v5,-24,-15,-29,-35,-30v-33,0,-54,23,-54,56v0,62,75,76,115,36","w":200},"d":{"d":"93,4v-50,0,-80,-43,-80,-96v0,-78,88,-129,137,-70r0,-59r-29,0r0,-35r74,0r0,214v0,11,15,7,25,8r0,34v-32,0,-74,8,-67,-30v-10,19,-29,34,-60,34xm106,-149v-28,1,-47,24,-47,57v0,30,16,58,45,58v29,0,47,-24,47,-57v0,-30,-16,-58,-45,-58","w":230},"e":{"d":"111,4v-57,0,-98,-42,-98,-96v0,-81,101,-128,153,-71v17,19,26,47,20,78r-127,0v0,54,76,64,109,31r17,33v-13,12,-46,25,-74,25xm140,-112v4,-37,-41,-53,-64,-30v-8,7,-14,18,-16,30r80,0","w":200},"f":{"d":"17,0r0,-34r26,0r0,-115r-28,0r0,-35r28,0v-4,-57,35,-81,91,-73r0,36v-27,-5,-51,6,-45,37r41,0r0,35r-41,0r0,115r31,0r0,34r-103,0","w":140},"g":{"d":"193,-11v3,83,-97,106,-163,71r14,-34v40,22,113,17,103,-45v0,-3,2,-9,0,-10v-44,58,-134,7,-134,-67v0,-51,31,-93,82,-92v25,0,49,11,57,28v-5,-34,38,-22,66,-24r0,35v-10,1,-25,-4,-25,7r0,131xm59,-98v0,31,17,56,46,56v28,0,43,-20,43,-54v0,-35,-15,-53,-45,-53v-28,0,-44,21,-44,51","w":228},"h":{"d":"135,-146v-50,0,-56,56,-52,112r26,0r0,34r-99,0r0,-34r27,0r0,-187r-28,0r0,-35r74,0r-1,105v10,-19,34,-37,64,-37v76,0,64,82,64,154r27,0r0,34r-73,0r0,-109v0,-24,-5,-37,-29,-37","w":244},"i":{"d":"43,-215r0,-41r46,0r0,41r-46,0xm17,0r0,-34r26,0r0,-115r-28,0r0,-35r74,0r0,150r26,0r0,34r-98,0","w":126},"j":{"d":"39,-215r0,-41r46,0r0,41r-46,0xm-6,37v26,4,45,-8,45,-34r0,-152r-29,0r0,-35r75,0v-3,72,10,158,-6,219v-8,31,-46,44,-85,38r0,-36","w":113},"k":{"d":"10,0r0,-34r27,0r0,-187r-28,0r0,-35r74,0r0,142r24,0r30,-35r-21,0r0,-35r88,0r0,35r-24,0r-40,47v18,16,27,41,40,61v4,7,15,8,26,7r0,34v-26,-1,-56,6,-63,-16r-34,-58v-3,-8,-15,-7,-26,-7r0,47r20,0r0,34r-93,0","w":218},"l":{"d":"100,0v-45,6,-73,-9,-73,-58r0,-163r-28,0r0,-35r73,0r0,195v-1,21,8,27,28,25r0,36","w":110},"m":{"d":"136,-146v-47,2,-50,59,-47,112r26,0r0,34r-98,0r0,-34r26,0r0,-108v0,-12,-18,-6,-28,-7r0,-35v36,0,81,-9,72,37v14,-43,103,-62,114,-1v9,-20,36,-40,64,-40v70,0,59,85,59,154r27,0r0,34r-73,0r0,-109v-1,-23,-3,-37,-25,-37v-47,2,-49,59,-47,112r27,0r0,34r-72,0r0,-109v-1,-23,-3,-37,-25,-37","w":358},"n":{"d":"141,-146v-49,1,-56,56,-52,112r26,0r0,34r-98,0r0,-34r26,0r0,-107v0,-12,-17,-7,-28,-8r0,-35v36,0,81,-9,72,37v11,-21,32,-41,67,-41v73,0,63,83,62,154r27,0r0,34r-72,0r0,-109v-1,-23,-6,-37,-30,-37","w":250},"o":{"d":"113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57","w":226},"p":{"d":"221,-92v0,77,-88,130,-137,70v2,17,0,41,1,60r26,0r0,34r-99,0r0,-34r27,0r0,-179v0,-12,-18,-7,-29,-8r0,-35v31,2,75,-11,71,27v10,-18,31,-30,59,-31v51,0,81,43,81,96xm129,-149v-29,1,-46,24,-46,58v0,29,17,58,46,57v28,-1,47,-25,46,-57v-1,-31,-16,-58,-46,-58","w":234},"q":{"d":"150,-23v-47,59,-150,10,-137,-69v-10,-83,95,-126,140,-68r-1,-24r43,0r0,222r27,0r0,34r-99,0r0,-34r27,0r0,-61xm105,-149v-28,1,-47,25,-46,57v1,31,16,58,46,58v29,-1,46,-24,46,-58v0,-29,-16,-58,-46,-57","w":223},"r":{"d":"154,-140v-58,-8,-70,45,-65,106r26,0r0,34r-98,0r0,-34r26,0r0,-107v0,-12,-17,-7,-28,-8r0,-35v40,-1,83,-7,72,45v8,-27,31,-52,67,-46r0,45","w":160},"s":{"d":"165,-51v4,69,-144,76,-152,11r0,-21r38,0v-4,24,15,28,36,30v30,3,45,-31,14,-38v-33,-16,-80,-19,-82,-66v0,-36,36,-53,72,-53v38,1,77,14,67,62r-40,0v3,-20,-9,-26,-27,-26v-31,0,-32,29,-7,37v34,12,79,18,81,64","w":177},"t":{"d":"126,1v-53,6,-90,-17,-91,-68r0,-82r-28,0r0,-35r30,0r0,-50r44,0r0,50r42,0r0,35r-42,0v4,47,-19,120,45,112r0,38","w":137},"u":{"d":"164,-36v-13,20,-32,40,-68,40v-71,0,-60,-84,-60,-153r-28,0r0,-35r74,0r0,111v0,24,6,37,29,37v48,0,55,-58,51,-113r-28,0r0,-35r73,0r0,142v0,12,16,7,26,8r0,34v-34,-2,-78,11,-69,-36","w":243},"v":{"d":"4,-149r0,-35r88,0r0,35r-21,0r38,110v8,-41,25,-73,36,-110r-21,0r0,-35r88,0r0,35r-22,0r-56,149r-52,0r-56,-149r-22,0","w":216},"w":{"d":"4,-149r0,-35r89,0r0,35r-22,0r28,109v8,-52,25,-95,37,-143r40,0v12,48,30,90,37,143r2,0v4,-42,19,-72,27,-109r-22,0r0,-35r88,0r0,35r-22,0r-43,149r-51,0r-36,-128v-8,46,-24,85,-35,128r-52,0r-42,-149r-23,0","w":312},"x":{"d":"14,0r0,-34r26,0r41,-60r-38,-55r-28,0r0,-35r56,0r36,60v11,-21,24,-40,36,-60r53,0r0,35r-26,0r-38,54r42,61r23,0r0,34r-51,0r-41,-64v-10,24,-26,42,-38,64r-53,0","w":209},"y":{"d":"23,30v24,18,62,4,66,-25r-63,-154r-22,0r0,-35r90,0r0,35r-22,0r39,112v9,-41,26,-74,38,-112r-21,0r0,-35r87,0r0,35r-21,0r-68,173v-15,51,-73,65,-117,39","w":218},"z":{"d":"17,-29r92,-110v3,-4,9,-6,11,-11v-20,2,-41,1,-63,1r0,26r-39,0r0,-61r156,0r0,30r-102,121v21,-2,45,-1,67,-1r0,-26r39,0r0,60r-161,0r0,-29","w":193},"{":{"d":"51,-118v29,9,32,48,30,89v-1,22,12,31,35,30r0,34v-58,7,-81,-31,-75,-95v2,-23,-12,-35,-30,-38r0,-40v30,-2,30,-35,30,-69v0,-44,30,-65,75,-60r0,33v-65,-8,-6,96,-65,116","w":128},"|":{"d":"32,58r0,-345r39,0r0,345r-39,0","w":103},"}":{"d":"87,-60v5,62,-15,103,-75,95r0,-34v41,6,37,-35,36,-73v0,-24,12,-39,29,-46v-28,-9,-29,-45,-29,-85v0,-21,-13,-33,-36,-31r0,-33v56,-7,81,29,75,91v-2,22,11,37,30,38r0,40v-19,2,-32,16,-30,38","w":128},"~":{"d":"80,-103v-15,0,-22,15,-22,31r-36,0v0,-44,18,-65,55,-65v33,0,39,30,66,33v16,2,23,-16,23,-32r36,0v0,44,-18,66,-55,66v-34,0,-39,-33,-67,-33","w":222},"\u00a0":{"w":89},"\u00a1":{"d":"25,-140r0,-43r44,0r0,43r-44,0xm24,72r3,-181r40,0r4,181r-47,0","w":94},"\u00a2":{"d":"189,-85v-11,28,-35,54,-69,58r0,31r-31,0r0,-31v-45,-7,-76,-50,-76,-101v0,-51,31,-94,76,-101r0,-31r31,0r0,31v34,6,58,29,69,58r-41,16v-19,-55,-96,-32,-89,27v-6,59,70,84,89,28"},"\u00a3":{"d":"167,-204v-24,-24,-75,-20,-74,19r0,42r61,0r0,31r-61,0r0,74r77,0r0,-39r40,0r0,77r-195,0r0,-36r30,0r0,-76r-25,0r0,-31r25,0v-24,-101,78,-148,147,-92","w":223},"\u00a5":{"d":"33,-67r0,-28r59,0v2,-14,-5,-20,-9,-29r-50,0r0,-27r36,0r-56,-105r53,0v18,35,35,72,50,110v12,-41,32,-74,49,-110r53,0r-56,105r36,0r0,27r-50,0v-4,9,-11,15,-9,29r59,0r0,28r-59,0r0,67r-47,0r0,-67r-59,0","w":231},"\u00a7":{"d":"134,-208v-28,-28,-85,-16,-74,37r25,121r-35,0v-9,-49,-24,-92,-29,-144v-6,-68,92,-84,134,-44xm145,-64v26,76,-80,113,-131,64r19,-31v18,21,83,25,78,-20v-6,-47,-19,-92,-27,-137r36,0","w":169},"\u00a8":{"d":"109,-280r0,-41r38,0r0,41r-38,0xm31,-280r0,-41r37,0r0,41r-37,0","w":177},"\u00a9":{"d":"143,4v-71,0,-129,-62,-129,-132v0,-69,59,-132,129,-132v70,0,130,62,130,132v0,70,-59,132,-130,132xm143,-230v-54,0,-97,47,-97,102v0,55,43,103,97,103v55,0,98,-47,98,-103v0,-56,-43,-102,-98,-102xm145,-57v-38,0,-68,-33,-68,-70v0,-70,102,-97,126,-32v-15,7,-29,17,-38,-1v-22,-18,-58,2,-54,33v-6,40,52,55,65,19r27,13v-10,20,-27,38,-58,38","w":286},"\u00aa":{"d":"96,-156v-13,27,-76,23,-72,-17v-3,-29,31,-37,70,-42v2,-26,-38,-20,-50,-9r-12,-22v30,-23,94,-18,94,34r0,72r-30,0r0,-16xm57,-175v-1,9,7,12,14,12v14,-1,24,-14,23,-29v-22,-1,-39,5,-37,17xm24,-96r0,-24r103,0r0,24r-103,0","w":151},"\u00ab":{"d":"94,-102r59,-74r44,0r-59,74r59,74r-44,0xm72,-28r-59,-74r59,-74r44,0r-59,74r59,74r-44,0","w":214},"\u00ac":{"d":"15,-122r0,-35r176,0r0,106r-37,0r0,-71r-139,0","w":213},"\u00ad":{"d":"30,-83r0,-40r108,0r0,40r-108,0","w":167},"\u00ae":{"d":"143,4v-71,0,-129,-62,-129,-132v0,-69,59,-132,129,-132v70,0,130,62,130,132v0,70,-59,132,-130,132xm143,-230v-54,0,-97,47,-97,102v0,55,43,103,97,103v55,0,98,-47,98,-103v0,-56,-43,-102,-98,-102xm153,-194v46,-6,57,65,19,76r30,55r-34,0r-22,-48r-17,0r0,48r-31,0r0,-131r55,0xm165,-153v0,-18,-16,-21,-36,-19r0,39v20,1,36,-1,36,-20","w":286},"\u00af":{"d":"42,-282r0,-31r94,0r0,31r-94,0","w":177},"\u00b0":{"d":"131,-203v0,31,-28,56,-59,56v-31,0,-58,-25,-58,-56v0,-31,26,-57,58,-57v31,0,59,25,59,57xm49,-203v-1,13,10,23,23,23v13,0,24,-10,24,-23v0,-12,-11,-24,-24,-24v-13,0,-24,12,-23,24","w":144},"\u00b1":{"d":"15,-85r0,-36r78,0r0,-85r37,0r0,85r78,0r0,36r-78,0r0,85r-37,0r0,-85r-78,0xm20,31r183,0r0,35r-183,0r0,-35","w":222},"\u00b2":{"d":"122,-267v-2,52,-61,49,-75,87r50,0r0,-17r27,0r0,45r-111,0v-10,-60,41,-69,69,-98v18,-18,-10,-42,-31,-28v-7,4,-10,6,-14,12r-23,-19v18,-40,110,-39,108,18","w":138},"\u00b3":{"d":"90,-202v-1,-17,-19,-22,-40,-20r-6,-16r39,-47v-12,2,-26,1,-40,1r0,19r-28,0r0,-45r106,0r0,22r-37,42v22,5,39,18,40,44v3,55,-85,70,-113,29r18,-23v10,19,61,26,61,-6","w":137},"\u00b4":{"d":"45,-273r39,-48r50,0r-49,48r-40,0","w":177},"\u00b5":{"d":"152,-34v-12,26,-57,51,-91,31v5,26,2,47,3,75r-40,0r0,-256r46,0r0,109v1,24,5,37,28,38v63,-1,52,-82,52,-147r45,0r0,184r-44,0","w":219},"\u00b6":{"d":"11,-171v0,-47,40,-85,85,-85r110,0r0,40r-77,0r0,234r-33,0r0,-105v-45,1,-85,-37,-85,-84xm152,18r0,-214r33,0r0,214r-33,0","w":223},"\u00b7":{"d":"28,-82r0,-46r45,0r0,46r-45,0","w":101},"\u00b8":{"d":"122,48v0,30,-37,36,-66,30r0,-23v11,5,37,4,35,-8v1,-9,-14,-12,-28,-11r13,-46v6,3,19,0,21,8r-6,21v16,1,31,12,31,29","w":177},"\u00b9":{"d":"14,-152r0,-28r36,0r1,-86v-5,7,-15,13,-21,20r-20,-22r45,-42r30,0r0,130r36,0r0,28r-107,0","w":127},"\u00ba":{"d":"147,-199v0,35,-29,61,-63,61v-34,1,-63,-27,-63,-61v0,-34,28,-61,63,-60v35,0,63,25,63,60xm53,-199v0,18,13,32,31,32v16,0,30,-15,30,-32v0,-17,-14,-32,-30,-32v-18,0,-31,14,-31,32xm26,-96r0,-24r116,0r0,24r-116,0","w":167},"\u00bb":{"d":"99,-28r59,-74r-59,-74r43,0r59,74r-59,74r-43,0xm18,-28r59,-74r-59,-74r44,0r59,74r-59,74r-44,0","w":214},"\u00bc":{"d":"286,0r0,-37r-73,0r0,-22r68,-99r39,0r0,95r21,0r0,26r-21,0r0,37r-34,0xm286,-63v-1,-21,1,-47,1,-63v-11,24,-28,41,-42,63r41,0xm99,0r121,-256r33,0r-121,256r-33,0xm20,-98r0,-27r36,0r1,-87v-5,8,-15,14,-21,21r-20,-22r44,-43r30,0r0,131r37,0r0,27r-107,0","w":352},"\u00bd":{"d":"331,-114v-2,52,-62,48,-75,87r50,0r0,-18r28,0r0,45r-112,0v-9,-58,39,-71,69,-97v13,-13,2,-33,-16,-33v-13,0,-23,10,-29,17r-22,-20v18,-40,109,-39,107,19xm18,-98r0,-27r36,0r0,-87v-4,8,-14,14,-20,21r-20,-22r44,-43r30,0r0,131r37,0r0,27r-107,0xm98,0r121,-256r33,0r-121,256r-33,0","w":348},"\u00be":{"d":"288,0r0,-37r-73,0r0,-22r68,-99r39,0r0,95r21,0r0,26r-21,0r0,37r-34,0xm288,-63v-2,-20,3,-49,0,-63v-10,25,-28,41,-41,63r41,0xm94,-147v0,-17,-19,-22,-40,-20r-6,-17r39,-46v-12,2,-26,1,-40,1r0,18r-28,0r0,-45r106,0r0,22r-37,43v23,4,38,17,40,43v3,56,-84,71,-113,30r18,-23v10,19,61,25,61,-6xm101,0r121,-256r33,0r-121,256r-33,0","w":354},"\u00bf":{"d":"78,-141r0,-43r45,0r0,43r-45,0xm162,50v-39,43,-146,30,-146,-42v0,-62,66,-56,63,-118r44,0v9,66,-60,65,-60,114v0,35,56,36,74,14","w":173},"\u00c0":{"d":"4,0r0,-35r23,0r77,-221r53,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-15,-48r-81,0r-16,48r25,0r0,35r-95,0xm101,-120r59,0r-30,-95v-6,33,-20,64,-29,95xm116,-273r-49,-48r50,0r39,48r-40,0","w":261},"\u00c1":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95xm104,-273r39,-48r50,0r-49,48r-40,0","w":262},"\u00c2":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95xm74,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":262},"\u00c3":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95xm156,-272v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49","w":262},"\u00c4":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95xm151,-280r0,-41r38,0r0,41r-38,0xm73,-280r0,-41r38,0r0,41r-38,0","w":262},"\u00c5":{"d":"4,0r0,-35r24,0r76,-221r54,0r77,221r23,0r0,35r-96,0r0,-35r25,0r-16,-48r-80,0r-16,48r25,0r0,35r-96,0xm102,-120r59,0v-10,-32,-24,-59,-29,-95xm168,-298v0,20,-17,31,-37,31v-20,0,-37,-11,-37,-31v0,-19,18,-31,37,-31v19,0,37,12,37,31xm118,-298v0,8,5,14,13,14v8,0,13,-5,13,-14v0,-8,-5,-14,-13,-14v-8,0,-13,7,-13,14","w":262},"\u00c6":{"d":"4,0r0,-35r22,0r76,-185r-27,0r0,-36r248,0r0,66r-38,0r0,-28r-72,0r0,70r83,0r0,38r-83,0r0,72r78,0r0,-28r38,0r0,66r-194,0r0,-35r31,0r0,-76r-63,0r-30,76r26,0r0,35r-95,0xm117,-146r49,0r0,-72r-21,0","w":345},"\u00c7":{"d":"181,48v0,30,-37,36,-66,30r0,-23v11,5,37,4,35,-8v1,-9,-14,-12,-28,-11r9,-33v-64,-6,-116,-62,-116,-132v0,-74,59,-134,132,-131v56,2,113,14,100,86r-43,0v7,-39,-24,-46,-55,-46v-50,0,-85,37,-85,89v0,55,37,95,88,95v30,0,63,-7,55,-45r43,0v12,68,-40,83,-96,85r-4,15v16,1,31,12,31,29","w":268},"\u00c8":{"d":"105,-273r-48,-48r49,0r39,48r-40,0xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r190,0r0,66r-41,0r0,-28r-71,0r0,70r84,0r0,38r-84,0r0,72r77,0r0,-29r40,0r0,67r-195,0","w":230},"\u00c9":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r190,0r0,66r-41,0r0,-28r-71,0r0,70r84,0r0,38r-84,0r0,72r77,0r0,-29r40,0r0,67r-195,0xm93,-273r39,-48r50,0r-49,48r-40,0","w":230},"\u00ca":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r190,0r0,66r-41,0r0,-28r-71,0r0,70r84,0r0,38r-84,0r0,72r77,0r0,-29r40,0r0,67r-195,0xm62,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":230},"\u00cb":{"d":"140,-280r0,-41r37,0r0,41r-37,0xm62,-280r0,-41r37,0r0,41r-37,0xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r190,0r0,66r-41,0r0,-28r-71,0r0,70r84,0r0,38r-84,0r0,72r77,0r0,-29r40,0r0,67r-195,0","w":230},"\u00cc":{"d":"58,-273r-48,-48r49,0r39,48r-40,0xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0","w":145},"\u00cd":{"d":"46,-273r39,-48r50,0r-49,48r-40,0xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0","w":145},"\u00ce":{"d":"15,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0","w":145},"\u00cf":{"d":"18,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-31,0r0,185r31,0r0,35r-109,0xm93,-280r0,-41r37,0r0,41r-37,0xm15,-280r0,-41r37,0r0,41r-37,0","w":145},"\u00d0":{"d":"267,-128v0,79,-52,128,-131,128r-118,0r0,-35r31,0r0,-73r-27,0r0,-38r27,0r0,-74r-31,0r0,-36r118,0v79,-1,131,49,131,128xm218,-128v0,-69,-47,-98,-122,-90r0,72r50,0r0,38r-50,0r0,70v76,7,122,-19,122,-90","w":283},"\u00d1":{"d":"179,-272v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49xm18,0r0,-35r31,0r0,-185r-31,0r0,-36r78,0r118,187v-4,-47,-1,-101,-2,-151r-31,0r0,-36r109,0r0,36r-30,0r0,220r-48,0r-118,-185v4,46,1,100,2,150r31,0r0,35r-109,0","w":304},"\u00d2":{"d":"148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89xm133,-273r-48,-48r49,0r39,48r-40,0","w":295},"\u00d3":{"d":"148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89xm121,-273r39,-48r50,0r-49,48r-40,0","w":295},"\u00d4":{"d":"148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89xm91,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":295},"\u00d5":{"d":"148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89xm173,-272v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49","w":295},"\u00d6":{"d":"168,-280r0,-41r38,0r0,41r-38,0xm90,-280r0,-41r37,0r0,41r-37,0xm148,4v-75,0,-133,-60,-133,-134v0,-73,60,-130,133,-130v73,0,132,58,132,130v0,74,-57,134,-132,134xm148,-219v-46,0,-84,41,-84,89v0,49,37,93,84,93v47,0,83,-44,83,-93v0,-48,-37,-89,-83,-89","w":295},"\u00d7":{"d":"16,-25r71,-78r-71,-78r25,-25r70,77r70,-77r26,25r-72,78r72,78r-26,25r-70,-77r-70,77","w":222},"\u00d8":{"d":"279,-130v4,99,-110,169,-200,116r-17,23r-21,-14r18,-24v-29,-26,-44,-60,-44,-101v0,-97,109,-163,198,-113r16,-22r20,14r-15,22v25,22,43,55,45,99xm187,-207v-59,-32,-124,15,-124,77v0,25,8,46,23,63xm105,-50v58,36,126,-14,126,-80v0,-25,-7,-45,-24,-62","w":294},"\u00d9":{"d":"131,-273r-48,-48r49,0r39,48r-40,0xm146,4v-65,0,-104,-35,-104,-100r0,-124r-31,0r0,-36r109,0r0,36r-31,0v6,74,-26,183,57,183v81,0,51,-109,56,-183r-30,0r0,-36r108,0r0,36r-31,0r0,124v1,65,-39,100,-103,100","w":291},"\u00da":{"d":"146,4v-65,0,-104,-35,-104,-100r0,-124r-31,0r0,-36r109,0r0,36r-31,0v6,74,-26,183,57,183v81,0,51,-109,56,-183r-30,0r0,-36r108,0r0,36r-31,0r0,124v1,65,-39,100,-103,100xm120,-273r39,-48r50,0r-49,48r-40,0","w":291},"\u00db":{"d":"146,4v-65,0,-104,-35,-104,-100r0,-124r-31,0r0,-36r109,0r0,36r-31,0v6,74,-26,183,57,183v81,0,51,-109,56,-183r-30,0r0,-36r108,0r0,36r-31,0r0,124v1,65,-39,100,-103,100xm89,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":291},"\u00dc":{"d":"166,-280r0,-41r37,0r0,41r-37,0xm88,-280r0,-41r37,0r0,41r-37,0xm146,4v-65,0,-104,-35,-104,-100r0,-124r-31,0r0,-36r109,0r0,36r-31,0v6,74,-26,183,57,183v81,0,51,-109,56,-183r-30,0r0,-36r108,0r0,36r-31,0r0,124v1,65,-39,100,-103,100","w":291},"\u00dd":{"d":"93,-273r39,-48r50,0r-49,48r-40,0xm64,0r0,-35r31,0r0,-72r-68,-113r-23,0r0,-36r95,0r0,36r-25,0r45,79r44,-79r-24,0r0,-36r94,0r0,36r-23,0r-68,113r0,72r31,0r0,35r-109,0","w":236},"\u00de":{"d":"229,-131v0,65,-64,74,-134,69r0,27r32,0r0,35r-109,0r0,-35r31,0r0,-185r-31,0r0,-36r109,0r0,36r-32,0r0,22v69,-4,134,2,134,67xm95,-98v38,0,90,5,86,-33v4,-37,-48,-32,-86,-32r0,65","w":236},"\u00df":{"d":"119,-221v-20,0,-36,13,-36,34r0,187r-73,0r0,-34r27,0r0,-156v0,-44,39,-70,83,-70v39,-1,75,26,74,63v1,28,-28,40,-32,63v11,30,58,36,58,79v0,55,-68,71,-113,48r0,-39v21,11,66,19,68,-12v-12,-32,-82,-49,-51,-98v19,-16,41,-65,-5,-65","w":229},"\u00e0":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm82,-207r-48,-48r49,0r39,48r-40,0"},"\u00e1":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm70,-207r39,-48r50,0r-49,48r-40,0"},"\u00e2":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm40,-207r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0"},"\u00e3":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm122,-206v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49"},"\u00e4":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm117,-213r0,-42r37,0r0,42r-37,0xm39,-213r0,-42r37,0r0,42r-37,0"},"\u00e5":{"d":"130,-31v-18,48,-124,48,-120,-20v3,-54,57,-63,115,-62v9,-51,-61,-41,-86,-21r-17,-31v13,-12,46,-23,73,-23v48,1,75,24,76,72r0,74v0,11,14,7,24,8r0,34v-31,-2,-76,11,-65,-31xm125,-86v-32,0,-66,3,-69,31v-1,15,12,26,27,25v25,-1,44,-28,42,-56xm134,-231v0,20,-18,30,-37,30v-19,0,-37,-10,-37,-30v0,-19,17,-31,37,-31v20,0,37,12,37,31xm84,-231v0,9,5,13,13,13v8,0,13,-4,13,-13v0,-8,-4,-15,-13,-15v-9,0,-13,7,-13,15"},"\u00e6":{"d":"143,-36v-19,50,-133,58,-133,-16v0,-42,43,-63,115,-61v8,-51,-62,-42,-86,-21r-17,-31v26,-26,111,-35,131,4v50,-60,161,-13,141,76r-126,0v-2,55,75,65,107,32r18,31v-35,34,-127,38,-150,-14xm249,-113v2,-34,-41,-51,-64,-29v-8,7,-12,16,-15,29r79,0xm82,-31v26,0,45,-26,43,-54v-38,-2,-70,8,-70,31v0,14,12,23,27,23","w":308},"\u00e7":{"d":"143,48v0,30,-37,36,-66,30r0,-23v11,5,37,4,35,-8v1,-9,-14,-12,-28,-11r9,-33v-45,-7,-81,-43,-81,-94v0,-55,45,-98,99,-97v44,1,84,15,75,69r-39,0v5,-24,-15,-29,-35,-30v-33,0,-54,23,-54,56v0,62,75,76,115,36r16,33v-14,14,-44,29,-73,28r-4,15v16,1,31,12,31,29","w":200},"\u00e8":{"d":"111,4v-57,0,-98,-42,-98,-96v0,-81,101,-128,153,-71v17,19,26,47,20,78r-127,0v0,54,76,64,109,31r17,33v-13,12,-46,25,-74,25xm140,-112v4,-37,-41,-53,-64,-30v-8,7,-14,18,-16,30r80,0xm91,-207r-48,-48r49,0r39,48r-40,0","w":200},"\u00e9":{"d":"111,4v-57,0,-98,-42,-98,-96v0,-81,101,-128,153,-71v17,19,26,47,20,78r-127,0v0,54,76,64,109,31r17,33v-13,12,-46,25,-74,25xm140,-112v4,-37,-41,-53,-64,-30v-8,7,-14,18,-16,30r80,0xm79,-207r39,-48r50,0r-49,48r-40,0","w":200},"\u00ea":{"d":"111,4v-57,0,-98,-42,-98,-96v0,-81,101,-128,153,-71v17,19,26,47,20,78r-127,0v0,54,76,64,109,31r17,33v-13,12,-46,25,-74,25xm140,-112v4,-37,-41,-53,-64,-30v-8,7,-14,18,-16,30r80,0xm49,-207r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":200},"\u00eb":{"d":"126,-213r0,-42r37,0r0,42r-37,0xm48,-213r0,-42r37,0r0,42r-37,0xm111,4v-57,0,-98,-42,-98,-96v0,-81,101,-128,153,-71v17,19,26,47,20,78r-127,0v0,54,76,64,109,31r17,33v-13,12,-46,25,-74,25xm140,-112v4,-37,-41,-53,-64,-30v-8,7,-14,18,-16,30r80,0","w":200},"\u00ec":{"d":"17,0r0,-34r25,0r0,-115r-27,0r0,-35r72,0r0,150r26,0r0,34r-96,0xm50,-207r-48,-48r49,0r39,48r-40,0","w":123},"\u00ed":{"d":"17,0r0,-34r25,0r0,-115r-27,0r0,-35r72,0r0,150r26,0r0,34r-96,0xm38,-207r39,-48r50,0r-49,48r-40,0","w":123},"\u00ee":{"d":"17,0r0,-34r25,0r0,-115r-27,0r0,-35r72,0r0,150r26,0r0,34r-96,0xm8,-207r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":123},"\u00ef":{"d":"17,0r0,-34r25,0r0,-115r-27,0r0,-35r72,0r0,150r26,0r0,34r-96,0xm78,-213r0,-43r38,0r0,43r-38,0xm10,-213r0,-43r37,0r0,43r-37,0","w":123},"\u00f0":{"d":"101,4v-52,0,-88,-41,-88,-89v0,-60,65,-102,122,-72v-7,-16,-19,-30,-35,-40r-65,28r-2,-22r43,-19v-14,-7,-29,-11,-45,-15r13,-36v30,7,57,17,81,31r50,-22r2,22r-33,15v74,54,73,219,-43,219xm106,-132v-29,-1,-47,21,-47,48v0,27,15,50,43,50v32,0,47,-29,47,-58v0,-24,-18,-40,-43,-40","w":213},"\u00f1":{"d":"157,-206v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49xm141,-146v-49,1,-56,56,-52,112r26,0r0,34r-98,0r0,-34r26,0r0,-107v0,-12,-17,-7,-28,-8r0,-35v36,0,81,-9,72,37v11,-21,32,-41,67,-41v73,0,63,83,62,154r27,0r0,34r-72,0r0,-109v-1,-23,-6,-37,-30,-37","w":250},"\u00f2":{"d":"113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57xm99,-207r-48,-48r49,0r39,48r-40,0","w":226},"\u00f3":{"d":"113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57xm87,-207r39,-48r50,0r-49,48r-40,0","w":226},"\u00f4":{"d":"113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57xm56,-207r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":226},"\u00f5":{"d":"113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57xm138,-206v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49","w":226},"\u00f6":{"d":"134,-213r0,-42r37,0r0,42r-37,0xm55,-213r0,-42r38,0r0,42r-38,0xm113,4v-56,0,-101,-41,-101,-96v0,-55,46,-96,101,-96v54,0,101,41,101,96v0,55,-46,96,-101,96xm113,-149v-30,0,-54,26,-54,57v0,31,24,57,54,57v30,0,55,-25,55,-57v0,-32,-25,-57,-55,-57","w":226},"\u00f7":{"d":"91,-157r0,-39r41,0r0,39r-41,0xm18,-85r0,-36r187,0r0,36r-187,0xm91,-10r0,-39r41,0r0,39r-41,0","w":222},"\u00f8":{"d":"214,-92v0,71,-78,118,-147,86r-15,21r-18,-13r14,-19v-72,-52,-27,-171,65,-171v17,0,33,4,49,12r14,-21r18,13r-14,19v23,19,34,44,34,73xm138,-143v-55,-29,-105,44,-65,90xm91,-40v53,25,102,-44,63,-88","w":226},"\u00f9":{"d":"102,-207r-48,-48r49,0r39,48r-40,0xm164,-36v-13,20,-32,40,-68,40v-71,0,-60,-84,-60,-153r-28,0r0,-35r74,0r0,111v0,24,6,37,29,37v48,0,55,-58,51,-113r-28,0r0,-35r73,0r0,142v0,12,16,7,26,8r0,34v-34,-2,-78,11,-69,-36","w":243},"\u00fa":{"d":"164,-36v-13,20,-32,40,-68,40v-71,0,-60,-84,-60,-153r-28,0r0,-35r74,0r0,111v0,24,6,37,29,37v48,0,55,-58,51,-113r-28,0r0,-35r73,0r0,142v0,12,16,7,26,8r0,34v-34,-2,-78,11,-69,-36xm91,-207r39,-48r50,0r-49,48r-40,0","w":243},"\u00fb":{"d":"164,-36v-13,20,-32,40,-68,40v-71,0,-60,-84,-60,-153r-28,0r0,-35r74,0r0,111v0,24,6,37,29,37v48,0,55,-58,51,-113r-28,0r0,-35r73,0r0,142v0,12,16,7,26,8r0,34v-34,-2,-78,11,-69,-36xm60,-207r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":243},"\u00fc":{"d":"137,-213r0,-42r38,0r0,42r-38,0xm59,-213r0,-42r37,0r0,42r-37,0xm164,-36v-13,20,-32,40,-68,40v-71,0,-60,-84,-60,-153r-28,0r0,-35r74,0r0,111v0,24,6,37,29,37v48,0,55,-58,51,-113r-28,0r0,-35r73,0r0,142v0,12,16,7,26,8r0,34v-34,-2,-78,11,-69,-36","w":243},"\u00fd":{"d":"85,-207r39,-48r50,0r-49,48r-40,0xm23,30v24,18,62,4,66,-25r-63,-154r-22,0r0,-35r90,0r0,35r-22,0r39,112v9,-41,26,-74,38,-112r-21,0r0,-35r87,0r0,35r-21,0r-68,173v-15,51,-73,65,-117,39","w":218},"\u00fe":{"d":"211,-92v0,77,-88,130,-138,70v2,17,1,41,1,60r27,0r0,34r-99,0r0,-34r26,0r0,-259r-27,0r0,-35r73,0r1,95v9,-16,28,-27,53,-27v51,-1,83,43,83,96xm120,-149v-31,0,-48,22,-47,58v0,32,16,56,46,57v28,0,46,-27,46,-58v0,-30,-17,-57,-45,-57","w":223},"\u00ff":{"d":"23,30v24,18,62,4,66,-25r-63,-154r-22,0r0,-35r90,0r0,35r-22,0r39,112v9,-41,26,-74,38,-112r-21,0r0,-35r87,0r0,35r-21,0r-68,173v-15,51,-73,65,-117,39xm131,-213r0,-42r37,0r0,42r-37,0xm53,-213r0,-42r37,0r0,42r-37,0","w":218},"\u0152":{"d":"195,0v-100,19,-180,-39,-180,-128v0,-88,77,-128,180,-128r138,0r0,66r-38,0r0,-28r-73,0r0,71r83,0r0,37r-83,0r0,72r78,0r0,-28r38,0r0,66r-143,0xm175,-217v-63,-17,-113,31,-112,89v0,58,46,105,112,90r0,-179","w":355},"\u0153":{"d":"189,-35v-46,74,-177,35,-177,-56v0,-91,129,-133,176,-59v42,-72,176,-34,153,65r-126,0v0,54,74,65,107,32r18,31v-36,34,-126,38,-151,-13xm296,-112v2,-35,-41,-54,-65,-30v-8,7,-13,18,-15,30r80,0xm113,-149v-30,0,-55,26,-55,58v0,33,24,56,55,56v32,0,54,-25,54,-57v0,-32,-24,-57,-54,-57","w":355},"\u0160":{"d":"82,-273r-33,-48r38,0v7,9,11,21,19,29r18,-29r38,0r-33,48r-47,0xm105,4v-52,-1,-100,-23,-88,-86r43,0v-6,34,16,45,45,45v44,0,58,-46,23,-62v-44,-20,-105,-25,-105,-90v0,-48,39,-71,86,-71v37,0,80,13,81,45r0,34r-43,0v6,-29,-14,-35,-38,-38v-39,-4,-51,43,-17,58v44,19,104,26,105,89v2,51,-42,77,-92,76","w":214},"\u0161":{"d":"67,-206r-34,-49r39,0r18,29r18,-29r39,0r-34,49r-46,0xm165,-51v4,69,-144,76,-152,11r0,-21r38,0v-4,24,15,28,36,30v30,3,45,-31,14,-38v-33,-16,-80,-19,-82,-66v0,-36,36,-53,72,-53v38,1,77,14,67,62r-40,0v3,-20,-9,-26,-27,-26v-31,0,-32,29,-7,37v34,12,79,18,81,64","w":177},"\u0178":{"d":"64,0r0,-35r31,0r0,-72r-68,-113r-23,0r0,-36r95,0r0,36r-25,0r45,79r44,-79r-24,0r0,-36r94,0r0,36r-23,0r-68,113r0,72r31,0r0,35r-109,0xm140,-280r0,-41r37,0r0,41r-37,0xm62,-280r0,-41r37,0r0,41r-37,0","w":236},"\u017d":{"d":"95,-273r-33,-48r38,0v7,9,11,21,19,29r18,-29r38,0r-33,48r-47,0xm19,0r0,-30r133,-189v-29,3,-61,0,-92,1r0,39r-39,0r0,-77r188,0r0,30r-127,183v-3,3,-5,3,-6,6v30,-3,65,0,97,-1r0,-39r40,0r0,77r-194,0","w":231},"\u017e":{"d":"74,-206r-33,-49r38,0v7,9,11,21,19,29r18,-29r38,0r-33,49r-47,0xm17,-29r92,-110v3,-4,9,-6,11,-11v-20,2,-41,1,-63,1r0,26r-39,0r0,-61r156,0r0,30r-102,121v21,-2,45,-1,67,-1r0,-26r39,0r0,60r-161,0r0,-29","w":193},"\u0192":{"d":"-3,1v35,6,61,1,63,-31r7,-90r-26,0r0,-37r30,0v-4,-75,38,-116,115,-100r0,39v-36,-7,-63,-3,-66,31r-4,30r40,0r0,37r-43,0v-4,84,-3,183,-116,160r0,-39","w":189},"\u02c6":{"d":"32,-273r34,-48r46,0r33,48r-38,0r-18,-29r-18,29r-39,0","w":177},"\u02dc":{"d":"114,-272v-20,1,-30,-20,-46,-23v-9,0,-13,7,-13,22r-32,0v0,-33,13,-49,40,-49v20,-1,30,20,46,23v9,0,14,-7,14,-22r32,0v0,33,-14,49,-41,49","w":177},"\u2013":{"d":"30,-85r0,-36r199,0r0,36r-199,0","w":259},"\u2014":{"d":"30,-85r0,-36r271,0r0,36r-271,0","w":331},"\u2018":{"d":"14,-176r28,-84r33,0r-18,84r-43,0","w":86},"\u2019":{"d":"16,-176r18,-84r42,0r-28,84r-32,0","w":83},"\u201a":{"d":"12,37r18,-83r41,0r-29,83r-30,0","w":92},"\u201c":{"d":"14,-176r28,-84r33,0r-18,84r-43,0xm75,-176r28,-84r32,0r-18,84r-42,0","w":146},"\u201d":{"d":"76,-176r18,-84r42,0r-28,84r-32,0xm16,-176r18,-84r42,0r-28,84r-32,0","w":144},"\u201e":{"d":"70,37r18,-83r41,0r-28,83r-31,0xm12,37r18,-83r41,0r-29,83r-30,0","w":151},"\u2020":{"d":"58,18r0,-166r-44,0r0,-36r44,0r0,-72r44,0r0,72r46,0r0,36r-46,0r0,166r-44,0","w":161},"\u2021":{"d":"16,-59r0,-35r44,0r0,-54r-44,0r0,-36r44,0r0,-72r44,0r0,72r46,0r0,36r-46,0r0,54r46,0r0,35r-46,0r0,77r-44,0r0,-77r-44,0","w":165},"\u2022":{"d":"136,-105v0,33,-27,60,-60,60v-33,0,-60,-28,-60,-60v0,-32,28,-60,60,-60v32,0,60,27,60,60","w":152},"\u2026":{"d":"230,0r0,-46r45,0r0,46r-45,0xm127,0r0,-46r45,0r0,46r-45,0xm25,0r0,-46r44,0r0,46r-44,0","w":299},"\u2030":{"d":"134,-203v0,32,-29,57,-59,57v-31,0,-58,-26,-58,-57v0,-31,28,-57,58,-57v30,0,59,25,59,57xm26,0r196,-256r42,0r-196,256r-42,0xm51,-203v0,13,11,24,24,24v13,0,24,-11,24,-24v0,-12,-11,-24,-24,-24v-13,0,-24,12,-24,24xm349,4v-31,0,-58,-25,-58,-56v0,-31,28,-57,58,-57v30,0,59,25,59,57v0,31,-28,56,-59,56xm215,4v-32,0,-59,-25,-59,-56v0,-31,29,-57,59,-57v30,0,59,26,59,57v0,31,-28,56,-59,56xm349,-76v-13,0,-24,11,-24,23v-1,13,11,24,24,24v13,0,25,-11,24,-24v0,-12,-11,-23,-24,-23xm215,-76v-13,0,-24,11,-24,23v-1,13,11,24,24,24v13,0,25,-11,24,-24v0,-12,-11,-23,-24,-23","w":419},"\u2039":{"d":"72,-28r-59,-74r59,-74r44,0r-59,74r59,74r-44,0","w":133},"\u203a":{"d":"18,-28r59,-74r-59,-74r44,0r59,74r-59,74r-44,0","w":133},"\u20ac":{"d":"204,-2v-77,23,-151,-22,-164,-85r-25,0r0,-27r20,0v-1,-8,-1,-18,0,-29r-20,0r0,-27r25,0v16,-60,83,-106,161,-85r-11,40v-46,-14,-90,10,-101,45r92,0r-6,27r-92,0v-1,9,-1,18,0,29r87,0r-6,27r-73,0v12,37,57,61,106,45","w":217},"\u2122":{"d":"159,-96r13,-160r32,0r38,91v11,-33,26,-60,38,-91r32,0r12,160r-34,0r-6,-93r-28,64r-27,0v-10,-21,-17,-45,-29,-64v0,33,-4,62,-6,93r-35,0xm62,-96r0,-129r-53,0r0,-31r141,0r0,31r-53,0r0,129r-35,0","w":347}}});

