/*!
* Copyright (c) 2009 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;
        }

    };

    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;
            }),

            hasClass: function(el, className) {
                return RegExp('(?:^|\\s)' + className + '(?=\\s|$)').test(el.className);
            },

            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(/\b./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
                };
                return function(text, style, node) {
                    if (ignore[style.get('display')]) return text;
                    if (!node.previousSibling) text = text.replace(/^\s+/, '');
                    if (!node.nextSibling) text = text.replace(/\s+$/, '');
                    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');

            function isContainerReady(el) {
                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 = 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,
				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 - 1] -= k;
                    }
                    width += jumps[++j] = ~ ~(glyph.w || this.w) + letterSpacing + (wordSeparators[chr] ? wordSpacing : 0);
                    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) {
                        if (node.contains) return node.contains(anotherNode);
                        return node.compareDocumentPosition(anotherNode) & 16;
                    }

                    function onOverOut(e) {
                        var related = e.relatedTarget;
                        if (!related || contains(this, related)) return;
                        trigger(this);
                    }

                    function onEnterLeave(e) {
                        trigger(this);
                    }

                    function trigger(el) {
                        // 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() {
                            api.replace(el, sharedStorage.get(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);
                        }
                    };

                }

                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) {
                        el.attachEvent('on' + type, function() {
                            return listener.call(el, window.event);
                        });
                    }
                }

                function attach(el, options) {
                    var storage = sharedStorage.get(el);
                    if (storage.options) return 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 = {}, args, key;
                    for (var i = 0, l = arguments.length; args = arguments[i], i < l; ++i) {
                        for (key in args) {
                            if (hasOwnProperty(args, key)) merged[key] = args[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 replaceElement(el, options) {
                    var style = CSS.getStyle(attach(el, options)).extend(options);
                    var font = getFont(el, style), node, type, next, anchor, text;
                    if (!font) return;
                    for (node = el.firstChild; node; node = next) {
                        type = node.nodeType;
                        next = node.nextSibling;
                        if (type == 3) {
                            // 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) {
                            el.replaceChild(process(font,
					CSS.whiteSpace(anchor.data, style, anchor),
					style, options, node, el), anchor);
                            anchor = null;
                        }
                        if (type == 1 && node.firstChild) {
                            if (CSS.hasClass(node, 'cufon')) {
                                engines[options.engine](font, null, style, options, node, el);
                            }
                            else arguments.callee(node, options);
                        }
                    }
                }

                var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;

                var sharedStorage = new Storage();
                var hoverHandler = new HoverHandler();
                var replaceHistory = new ReplaceHistory();
                var initialized = false;

                var engines = {}, fonts = {}, defaultOptions = {
                    autoDetect: false,
                    engine: null,
                    //fontScale: 1,
                    //fontScaling: false,
                    forceHitArea: false,
                    hover: false,
                    hoverables: {
                        a: true
                    },
                    printable: true,
                    //rotation: 0,
                    //selectable: false,
                    selector: (
				window.Sizzle
			|| (window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues
			|| (window.dojo && dojo.query)
			|| (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
                    textShadow: 'none'
                };

                var separators = {
                    words: /[^\S\u00a0]+/,
                    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.textShadow == 'string')
                        options.textShadow = CSS.textShadow(options.textShadow);
                    if (typeof options.color == 'string' && /^-/.test(options.color))
                        options.textGradient = CSS.gradient(options.color);
                    if (!ignoreHistory) replaceHistory.add(elements, arguments);
                    if (elements.nodeType || typeof elements == 'string') elements = [elements];
                    CSS.ready(function() {
                        for (var i = 0, l = elements.length; i < l; ++i) {
                            var el = elements[i];
                            if (typeof el == 'string') api.replace(options.selector(el), options, true);
                            else replaceElement(el, options);
                        }
                    });
                    return api;
                };

                api.set = function(option, value) {
                    defaultOptions[option] = value;
                    return api;
                };

                return api;

            })();

            Cufon.registerEngine('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-canvas{text-indent:0;}' +
		'@media screen,projection{' +
			'.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle;' +
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: 'font-size:1px;line-height:1px;') +
			'}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}' +
			(HAS_INLINE_BLOCK
				? '.cufon-canvas canvas{position:relative;}'
				: '.cufon-canvas canvas{position:absolute;}') +
		'}' +
		'@media print{' +
			'.cufon-canvas{padding:0;}' +
			'.cufon-canvas canvas{display:none;}' +
			'.cufon-canvas .cufon-alt{display:inline;}' +
		'}'
	).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.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('span');
                        wrapper.className = 'cufon cufon-canvas';
                        wrapper.alt = text;

                        canvas = document.createElement('canvas');
                        wrapper.appendChild(canvas);

                        if (options.printable) {
                            var print = document.createElement('span');
                            print.className = 'cufon-alt';
                            print.appendChild(document.createTextNode(text));
                            wrapper.appendChild(print);
                        }
                    }

                    var wStyle = wrapper.style;
                    var cStyle = canvas.style;

                    var height = size.convert(viewBox.height);
                    var roundedHeight = Math.ceil(height);
                    var roundingFactor = roundedHeight / height;
                    var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
                    var stretchedWidth = width * stretchFactor;

                    var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft));
                    var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom));

                    canvas.width = canvasWidth;
                    canvas.height = canvasHeight;

                    // needed for WebKit and full page zoom
                    cStyle.width = canvasWidth + 'px';
                    cStyle.height = canvasHeight + 'px';

                    // minY has no part in canvas.height
                    expandTop += viewBox.minY;

                    cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px';
                    cStyle.left = Math.round(size.convert(expandLeft)) + 'px';

                    var wrapperWidth = Math.max(Math.ceil(size.convert(stretchedWidth)), 0) + 'px';

                    if (HAS_INLINE_BLOCK) {
                        wStyle.width = wrapperWidth;
                        wStyle.height = size.convert(font.height) + 'px';
                    }
                    else {
                        wStyle.paddingLeft = wrapperWidth;
                        wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px';
                    }

                    var g = canvas.getContext('2d'), scale = height / viewBox.height;

                    // proper horizontal scaling is performed later
                    g.scale(scale, scale * roundingFactor);
                    g.translate(-expandLeft, -expandTop);
                    g.save();

                    function renderText() {
                        var glyphs = font.glyphs, glyph, i = -1, j = -1, chr;
                        g.scale(stretchFactor, 1);
                        while (chr = chars[++i]) {
                            var glyph = glyphs[chars[i]] || font.missingGlyph;
                            if (!glyph) continue;
                            if (glyph.d) {
                                g.beginPath();
                                if (glyph.code) interpret(glyph.code, g);
                                else glyph.code = generateFromVML('m' + glyph.d, g);
                                g.fill();
                            }
                            g.translate(jumps[++j], 0);
                        }
                        g.restore();
                    }

                    if (shadows) {
                        for (var i = shadows.length; i--; ) {
                            var shadow = shadows[i];
                            g.save();
                            g.fillStyle = shadow.color;
                            g.translate.apply(g, shadowOffsets[i]);
                            renderText();
                        }
                    }

                    var gradient = options.textGradient;
                    if (gradient) {
                        var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY);
                        for (var i = 0, l = stops.length; i < l; ++i) {
                            fill.addColorStop.apply(fill, stops[i]);
                        }
                        g.fillStyle = fill;
                    }
                    else g.fillStyle = style.get('color');

                    renderText();

                    return wrapper;

                };

            })());

            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">' +
		'.cufon-vml-canvas{text-indent:0;}' +
		'@media screen{' +
			'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' +
			'.cufon-vml-canvas{position:absolute;text-align:left;}' +
			'.cufon-vml{display:inline-block;position:relative;vertical-align:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +
			'.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px;}' +
			'a .cufon-vml{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'.cufon-vml *{display:none;}' +
			'.cufon-vml .cufon-alt{display:inline;}' +
		'}' +
	'</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 (value === '0') return 0;
                    if (/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 = 'sigma';
                        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('span');
                        wrapper.className = 'cufon cufon-vml';
                        wrapper.alt = text;

                        canvas = document.createElement('span');
                        canvas.className = 'cufon-vml-canvas';
                        wrapper.appendChild(canvas);

                        if (options.printable) {
                            var print = document.createElement('span');
                            print.className = 'cufon-alt';
                            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;

                };

            })());
/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Md
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeue","font-weight":500,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 6 4 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-15 -343 338 79.8246","underline-thickness":"18","underline-position":"-18","stemh":"32","stemv":"41","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"40,-72v-7,-59,-15,-117,-12,-185r45,0v2,68,-5,126,-12,185r-21,0xm26,0r0,-45r48,0r0,45r-48,0","w":100},"\"":{"d":"30,-156r0,-101r37,0r0,101r-37,0xm93,-156r0,-101r37,0r0,101r-37,0","w":159},"#":{"d":"178,-103r0,27r-34,0r-11,76r-29,0r11,-76r-40,0r-11,76r-28,0r10,-76r-34,0r0,-27r38,0r7,-46r-34,0r0,-27r37,0r11,-76r29,0r-11,76r40,0r10,-76r29,0r-10,76r31,0r0,27r-35,0r-6,46r30,0xm125,-149r-40,0r-6,46r40,0"},"$":{"d":"109,-110r0,84v26,-2,44,-14,44,-43v0,-27,-22,-35,-44,-41xm6,-78r41,0v0,32,13,51,46,52r0,-87v-39,-11,-81,-27,-81,-80v0,-46,38,-70,81,-70r0,-28r16,0r0,28v43,0,79,22,79,70r-41,0v-1,-24,-12,-38,-38,-38r0,76v44,12,85,28,85,80v0,54,-37,79,-85,81r0,28r-16,0r0,-28v-52,-1,-88,-30,-87,-84xm93,-159r0,-72v-26,0,-40,11,-40,36v0,23,20,31,40,36"},"%":{"d":"270,5v-44,0,-60,-33,-60,-72v0,-39,18,-71,60,-71v42,0,60,32,60,71v0,39,-16,72,-60,72xm243,-67v0,27,7,49,27,49v20,0,28,-22,28,-49v0,-24,-6,-48,-28,-48v-22,0,-27,24,-27,48xm90,-114v-44,0,-60,-32,-60,-71v0,-39,18,-72,60,-72v42,0,60,33,60,72v0,39,-16,71,-60,71xm62,-185v0,27,7,48,27,48v20,0,28,-21,28,-48v0,-24,-6,-49,-28,-49v-22,0,-27,25,-27,49xm94,9r140,-270r27,0r-139,270r-28,0","w":360},"&":{"d":"109,-233v-15,0,-28,12,-28,29v0,17,15,30,24,43v15,-10,30,-21,30,-42v0,-17,-10,-30,-26,-30xm143,-56r-51,-63v-15,9,-39,17,-39,48v0,28,17,44,41,44v30,0,41,-19,49,-29xm188,0r-23,-29v-40,58,-153,40,-153,-42v0,-36,29,-60,59,-75v-13,-17,-26,-34,-26,-56v0,-37,28,-61,63,-61v33,0,64,20,64,61v0,30,-22,53,-47,66r40,48v3,-8,6,-18,8,-35r36,0v-3,22,-8,45,-20,63r49,60r-50,0","w":233},"(":{"d":"103,69r-34,0v-63,-88,-70,-237,0,-332r34,0v-58,99,-59,233,0,332","w":100},")":{"d":"-3,-263r34,0v63,88,70,237,0,332r-34,0v58,-99,59,-233,0,-332","w":100},"*":{"d":"47,-192r-40,-14r8,-23r39,15r0,-43r25,0r0,43r39,-15r9,23r-41,14r25,34r-19,14r-26,-36r-24,36r-20,-14","w":133},"+":{"d":"90,-109r0,-73r36,0r0,73r73,0r0,36r-73,0r0,73r-36,0r0,-73r-73,0r0,-36r73,0","w":216},",":{"d":"25,0r0,-49r50,0v4,55,-3,98,-49,106r0,-22v16,-4,24,-20,24,-35r-25,0","w":100},"-":{"d":"18,-78r0,-39r104,0r0,39r-104,0","w":140},".":{"d":"25,0r0,-49r50,0r0,49r-50,0","w":100},"\/":{"d":"-8,6r103,-269r40,0r-104,269r-39,0","w":126},"0":{"d":"100,-29v36,0,46,-44,46,-97v0,-53,-10,-97,-46,-97v-36,0,-46,44,-46,97v0,53,10,97,46,97xm100,-257v72,0,87,74,87,131v0,57,-15,131,-87,131v-72,0,-87,-74,-87,-131v0,-57,15,-131,87,-131"},"1":{"d":"19,-178r0,-32v35,0,68,-12,74,-42r33,0r0,252r-45,0r0,-178r-62,0"},"2":{"d":"186,-180v0,75,-103,96,-123,143r123,0r0,37r-172,0v0,-41,21,-71,55,-95v33,-23,75,-44,76,-83v0,-18,-7,-45,-42,-45v-32,0,-42,28,-43,63r-41,0v0,-56,30,-97,86,-97v62,0,81,45,81,77"},"3":{"d":"82,-117r0,-31v27,1,56,-8,56,-39v0,-21,-16,-36,-39,-36v-28,0,-43,26,-42,52r-41,0v2,-49,32,-86,83,-86v39,0,80,22,80,67v1,26,-14,44,-36,55v28,6,46,31,46,63v0,48,-41,77,-89,77v-58,0,-88,-35,-89,-88r41,0v-1,31,16,54,48,54v27,0,48,-16,48,-45v0,-39,-34,-44,-66,-43"},"4":{"d":"188,-92r0,32r-32,0r0,60r-39,0r0,-60r-108,0r0,-40r108,-152r39,0r0,160r32,0xm117,-203v-28,35,-51,75,-77,111r77,0r0,-111"},"5":{"d":"17,-114r27,-138r131,0r0,37r-100,0v-3,21,-12,45,-12,65v46,-47,125,-4,125,65v0,40,-25,90,-87,90v-49,0,-86,-27,-88,-77r41,0v3,27,19,43,46,43v35,0,47,-25,47,-56v0,-49,-69,-74,-89,-29r-41,0"},"6":{"d":"103,-29v30,0,44,-26,44,-53v0,-27,-14,-51,-44,-51v-30,0,-46,23,-46,51v0,27,16,53,46,53xm183,-188r-41,0v-2,-21,-16,-35,-37,-35v-44,-1,-51,56,-51,87v37,-62,134,-19,134,55v0,49,-34,86,-84,86v-74,0,-92,-59,-92,-132v0,-60,24,-130,95,-130v40,0,74,28,76,69"},"7":{"d":"13,-215r0,-37r172,0r0,34v-53,59,-88,127,-94,218r-45,0v5,-80,45,-157,97,-215r-130,0"},"8":{"d":"100,-27v27,0,48,-17,48,-47v0,-28,-21,-44,-48,-44v-27,0,-48,16,-48,44v0,30,21,47,48,47xm100,5v-51,0,-89,-30,-89,-79v0,-32,18,-55,46,-62v-63,-26,-36,-130,43,-121v79,-9,108,94,43,121v82,25,44,141,-43,141xm100,-225v-22,0,-40,14,-40,39v0,24,17,37,40,37v23,0,40,-13,40,-37v0,-25,-18,-39,-40,-39"},"9":{"d":"97,-223v-30,0,-44,25,-44,52v0,27,14,53,44,53v31,0,46,-25,46,-53v0,-27,-15,-52,-46,-52xm17,-64r41,0v2,21,16,35,37,35v44,1,51,-56,51,-87v-37,60,-134,23,-134,-55v0,-49,32,-86,87,-86v71,0,89,59,89,132v0,60,-24,130,-95,130v-40,0,-74,-28,-76,-69"},":":{"d":"25,-134r0,-48r50,0r0,48r-50,0xm25,0r0,-49r50,0r0,49r-50,0","w":100},";":{"d":"25,0r0,-49r50,0v4,55,-3,98,-49,106r0,-22v16,-4,24,-20,24,-35r-25,0xm25,-134r0,-48r50,0r0,48r-50,0","w":100},"<":{"d":"199,-34r0,37r-182,-81r0,-26r182,-81r0,37r-134,57","w":216},"=":{"d":"199,-146r0,37r-182,0r0,-37r182,0xm199,-73r0,37r-182,0r0,-37r182,0","w":216},">":{"d":"17,-34r134,-57r-134,-57r0,-37r182,81r0,26r-182,81r0,-37","w":216},"?":{"d":"80,-70v-8,-73,58,-66,58,-119v0,-29,-23,-40,-36,-40v-30,0,-43,22,-43,54r-41,0v0,-53,33,-88,86,-88v44,0,79,27,79,73v0,67,-66,52,-64,120r-39,0xm75,0r0,-45r48,0r0,45r-48,0"},"@":{"d":"130,-78v28,0,49,-38,49,-64v0,-17,-13,-32,-28,-32v-30,0,-50,36,-50,63v0,19,11,33,29,33xm221,-195r-26,95v-4,11,-6,24,4,24v22,0,47,-33,47,-77v0,-54,-43,-87,-96,-87v-61,0,-104,48,-104,108v0,109,126,150,188,79r25,0v-62,106,-241,57,-241,-80v0,-73,60,-130,132,-130v64,0,120,43,120,105v0,72,-56,108,-85,108v-12,0,-19,-9,-22,-21v-29,38,-92,16,-92,-36v0,-64,79,-133,119,-68r6,-20r25,0","w":288},"A":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0","w":240},"B":{"d":"72,-117r0,80v51,-3,123,15,123,-40v0,-54,-72,-38,-123,-40xm27,0r0,-257v83,4,202,-23,202,64v0,27,-16,43,-37,55v31,7,48,31,48,66v0,40,-28,72,-95,72r-118,0xm72,-220r0,71v47,-3,112,14,112,-36v0,-53,-67,-30,-112,-35","w":253},"C":{"d":"246,-175r-45,0v-8,-30,-27,-51,-64,-51v-55,0,-78,48,-78,97v0,49,23,98,78,98v40,0,61,-30,65,-67r44,0v-4,62,-47,104,-109,104v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134v58,0,104,33,109,88","w":259},"D":{"d":"72,-220r0,183r45,0v71,0,85,-41,85,-92v0,-51,-14,-91,-85,-91r-45,0xm27,0r0,-257r107,0v79,0,113,57,113,128v0,71,-34,129,-113,129r-107,0","w":259},"E":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0","w":226},"F":{"d":"27,0r0,-257r178,0r0,39r-133,0r0,67r117,0r0,37r-117,0r0,114r-45,0","w":213,"k":{"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46}},"G":{"d":"252,-135r0,135r-29,0r-7,-30v-73,86,-201,7,-201,-99v0,-73,47,-134,124,-134v56,0,103,30,110,88r-44,0v-4,-34,-34,-51,-66,-51v-55,0,-79,48,-79,97v0,49,24,98,79,98v46,0,71,-26,72,-70r-69,0r0,-34r110,0","w":273},"H":{"d":"26,0r0,-257r45,0r0,102r117,0r0,-102r45,0r0,257r-45,0r0,-116r-117,0r0,116r-45,0","w":259},"I":{"d":"27,0r0,-257r45,0r0,257r-45,0","w":100},"J":{"d":"166,-257r0,174v0,45,-11,89,-85,89v-59,-1,-79,-40,-76,-96r45,0v-1,33,3,59,35,59v29,0,36,-17,36,-49r0,-177r45,0","w":193},"K":{"d":"27,0r0,-257r45,0r0,117r115,-117r55,0r-102,103r109,154r-56,0r-84,-123r-37,37r0,86r-45,0","w":246},"L":{"d":"27,0r0,-257r45,0r0,218r131,0r0,39r-176,0","w":206,"k":{"T":33,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"M":{"d":"27,0r0,-257r63,0r72,201r69,-201r62,0r0,257r-42,0r-1,-198r-71,198r-38,0r-72,-198r0,198r-42,0","w":320},"N":{"d":"26,0r0,-257r47,0r118,189r0,-189r43,0r0,257r-48,0r-118,-189r0,189r-42,0","w":259},"O":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97","w":273},"P":{"d":"72,-220r0,85v52,-3,111,15,111,-43v0,-60,-61,-38,-111,-42xm27,0r0,-257r114,0v73,0,87,48,87,80v0,32,-14,78,-87,78r-69,0r0,99r-45,0","w":240,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":61,".":61}},"Q":{"d":"166,-37r-26,-22r21,-25r32,27v42,-55,27,-169,-56,-169v-55,0,-78,48,-78,97v0,59,42,117,107,92xm224,-30r33,29r-22,24r-38,-32v-91,48,-183,-25,-183,-120v0,-73,46,-134,123,-134v118,0,160,156,87,233","w":273},"R":{"d":"72,-220r0,80v50,-2,120,14,118,-41v-2,-60,-68,-33,-118,-39xm27,0r0,-257r123,0v56,0,85,25,85,69v0,50,-35,60,-42,66v15,2,38,13,38,54v0,30,4,58,14,68r-48,0v-15,-44,4,-106,-58,-106r-67,0r0,106r-45,0","w":253,"k":{"T":6,"V":6,"W":6,"Y":13,"\u00dd":13}},"S":{"d":"12,-86r45,0v0,40,29,55,65,55v62,0,67,-56,33,-70v-18,-8,-42,-11,-77,-21v-44,-12,-56,-39,-56,-66v0,-51,48,-75,94,-75v54,0,98,28,98,82r-45,0v-2,-33,-24,-45,-55,-45v-21,0,-47,7,-47,33v0,44,65,38,104,53v33,12,50,38,50,65v0,58,-51,81,-102,81v-59,0,-106,-28,-107,-92","w":233},"T":{"d":"3,-218r0,-39r208,0r0,39r-82,0r0,218r-45,0r0,-218r-81,0","w":213,"k":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":36,"\u00e5":36,"\u00e0":36,"\u00e4":36,"\u00e2":36,"w":40,"y":40,"\u00fd":40,"\u00ff":40,"A":33,"\u00c6":33,"\u00c1":33,"\u00c2":33,"\u00c4":33,"\u00c0":33,"\u00c5":33,"\u00c3":33,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":36,"\u00e6":36,"\u00e1":36,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":30,";":30}},"U":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99","w":259},"V":{"d":"84,0r-86,-257r47,0r65,203r66,-203r46,0r-88,257r-50,0","w":219,"k":{"\u00f6":20,"\u00f4":20,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":17,";":17,"i":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4}},"W":{"d":"70,0r-68,-257r46,0r47,197r52,-197r46,0r51,197r48,-197r46,0r-71,257r-46,0r-52,-197r-53,197r-46,0","w":339,"k":{"\u00fc":6,"\u00f6":6,"\u00ea":6,"\u00e4":13,"A":9,"\u00c6":9,"\u00c1":9,"\u00c2":9,"\u00c4":9,"\u00c0":9,"\u00c5":9,"\u00c3":9,",":27,".":27,"e":6,"\u00e9":6,"\u00eb":6,"\u00e8":6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f2":6,"\u00f5":6,"-":10,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"X":{"d":"90,-133r-85,-124r54,0r58,91r61,-91r50,0r-85,124r91,133r-54,0r-64,-98r-66,98r-51,0","w":233},"Y":{"d":"94,0r0,-101r-96,-156r52,0r68,115r67,-115r50,0r-96,156r0,101r-45,0","w":233,"k":{"\u00fc":31,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":37,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":31,"\u00fa":31,"\u00fb":31,"\u00f9":31,":":33,";":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"p":31}},"Z":{"d":"20,-218r0,-39r195,0r0,34r-149,184r153,0r0,39r-211,0r0,-37r150,-181r-138,0","w":226},"[":{"d":"26,69r0,-332r80,0r0,32r-41,0r0,267r41,0r0,33r-80,0","w":106},"\\":{"d":"31,-263r104,269r-40,0r-103,-269r39,0","w":126},"]":{"d":"81,-263r0,332r-81,0r0,-33r42,0r0,-267r-42,0r0,-32r81,0","w":106},"^":{"d":"67,-121r-37,0r65,-131r26,0r65,131r-37,0r-41,-89","w":216},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54"},"b":{"d":"114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66xm23,0r0,-257r41,0r0,95v11,-18,35,-29,56,-29v59,0,87,45,87,99v0,50,-25,97,-80,97v-25,0,-53,-7,-65,-31r0,26r-39,0","w":219},"c":{"d":"188,-124r-41,0v-3,-23,-19,-35,-42,-35v-21,0,-51,11,-51,68v0,31,13,64,49,64v24,0,40,-16,44,-43r41,0v-8,48,-37,75,-85,75v-58,0,-90,-41,-90,-96v0,-56,30,-100,91,-100v43,0,80,21,84,67"},"d":{"d":"106,-159v-71,1,-70,131,-1,132v37,0,52,-34,52,-66v0,-41,-19,-66,-51,-66xm197,-257r0,257r-39,0v-1,-8,2,-19,-1,-25v-11,21,-34,30,-57,30v-59,0,-87,-43,-87,-99v-2,-100,92,-123,143,-68r0,-95r41,0","w":219},"e":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50"},"f":{"d":"3,-156r0,-30r31,0v-5,-64,29,-80,80,-69r0,33v-15,-4,-40,-7,-39,17r0,19r35,0r0,30r-35,0r0,156r-41,0r0,-156r-31,0","w":113,"k":{"f":6,"\u00df":6}},"g":{"d":"103,-32v67,0,69,-128,0,-127v-67,1,-66,127,0,127xm194,-186r0,176v0,56,-33,84,-92,84v-37,0,-79,-14,-83,-58r41,0v5,23,24,27,45,27v44,0,53,-34,47,-76v-12,21,-33,33,-56,33v-59,0,-83,-45,-83,-98v0,-77,97,-128,140,-63r0,-25r41,0","w":213},"h":{"d":"22,0r0,-257r41,0r0,95v26,-47,122,-37,122,34r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0","w":206},"i":{"d":"23,0r0,-186r41,0r0,186r-41,0xm23,-218r0,-39r41,0r0,39r-41,0","w":86},"j":{"d":"23,14r0,-200r41,0r0,202v3,44,-28,65,-72,56r0,-32v21,4,31,-1,31,-26xm23,-218r0,-39r41,0r0,39r-41,0","w":86},"k":{"d":"23,0r0,-257r41,0r0,146r74,-75r50,0r-71,68r78,118r-50,0r-57,-90r-24,23r0,67r-41,0","w":193},"l":{"d":"23,0r0,-257r41,0r0,257r-41,0","w":86},"m":{"d":"22,0r0,-186r38,0v1,8,-3,22,2,26v16,-37,93,-45,109,0v27,-46,121,-45,121,31r0,129r-41,0r0,-109v0,-30,-2,-50,-34,-50v-63,1,-34,101,-40,159r-41,0r0,-120v0,-26,-8,-39,-33,-39v-57,0,-37,101,-40,159r-41,0","w":313},"n":{"d":"22,0r0,-186r38,0v1,9,-2,21,1,28v27,-52,124,-42,124,30r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0","w":206},"o":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98","w":213},"p":{"d":"114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66xm23,69r0,-255r39,0r0,25v12,-21,34,-30,58,-30v59,0,87,45,87,99v0,50,-25,97,-80,97v-24,0,-50,-8,-63,-29r0,93r-41,0","w":219},"q":{"d":"54,-93v0,32,14,66,51,66v36,0,52,-27,52,-66v0,-40,-18,-66,-52,-66v-34,0,-51,32,-51,66xm197,-186r0,255r-41,0r-1,-93v-13,21,-38,29,-62,29v-55,0,-80,-47,-80,-97v0,-54,28,-99,87,-99v25,-1,44,11,58,30r0,-25r39,0","w":219},"r":{"d":"22,0r0,-186r38,0v1,11,-2,27,1,36v6,-24,36,-47,70,-40r0,40v-41,-9,-68,13,-68,61r0,89r-41,0","w":126,"k":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"s":{"d":"12,-60r41,0v2,24,20,33,42,33v15,0,42,-4,41,-25v-1,-22,-31,-24,-61,-31v-30,-6,-60,-17,-60,-55v0,-76,151,-71,156,4r-43,0v-4,-19,-20,-25,-38,-25v-12,0,-33,3,-33,19v0,20,30,23,60,30v30,7,60,18,60,55v0,44,-44,60,-83,60v-47,0,-81,-21,-82,-65","w":186},"t":{"d":"3,-156r0,-30r31,0r0,-56r41,0r0,56r37,0r0,30r-37,0r0,100v-4,25,15,27,37,24r0,32v-44,8,-78,-4,-78,-46r0,-110r-31,0","w":119},"u":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0","w":206},"v":{"d":"71,0r-68,-186r45,0r48,143r45,-143r43,0r-67,186r-46,0","w":186,"k":{",":27,".":27}},"w":{"d":"62,0r-57,-186r43,0r37,139r35,-139r42,0r34,139r38,-139r41,0r-58,186r-42,0r-35,-138r-35,138r-43,0","w":280,"k":{",":20,".":20}},"x":{"d":"1,0r71,-98r-65,-88r50,0r39,57r40,-57r48,0r-63,86r71,100r-49,0r-48,-69r-45,69r-49,0","w":193},"y":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38","w":186,"k":{",":33,".":33}},"z":{"d":"15,-154r0,-32r151,0r0,29r-106,125r112,0r0,32r-164,0r0,-29r103,-125r-96,0","w":180},"{":{"d":"-1,-81r0,-32v10,0,33,-6,33,-27r0,-74v7,-48,36,-52,79,-49r0,32v-24,-4,-44,5,-40,25r0,71v1,30,-27,34,-37,38v12,1,37,5,37,40v0,40,-23,102,40,93r0,33v-44,3,-79,-1,-79,-50r0,-71v0,-23,-23,-29,-33,-29","w":106},"|":{"d":"22,77r0,-360r36,0r0,360r-36,0","w":79},"}":{"d":"108,-113r0,32v-10,0,-34,5,-34,26r0,74v-7,48,-35,53,-79,50r0,-33v24,4,44,-5,40,-25r0,-70v-1,-30,28,-35,38,-39v-12,-1,-38,-5,-38,-40v0,-40,23,-102,-40,-93r0,-32v44,-2,79,0,79,49r0,71v0,23,24,30,34,30","w":106},"~":{"d":"70,-122v23,0,56,24,77,25v14,0,23,-14,31,-25r13,31v-11,15,-23,31,-45,31v-36,0,-90,-50,-108,0r-13,-31v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"61,-120v6,60,15,117,12,186r-45,0v-2,-68,5,-127,12,-186r21,0xm74,-191r0,45r-48,0r0,-45r48,0","w":100},"\u00a2":{"d":"96,-27r0,-132v-58,9,-57,122,0,132xm96,37r0,-32v-52,0,-83,-44,-83,-96v0,-60,34,-100,83,-100r0,-33r16,0r0,33v40,0,74,25,77,67r-41,0v-3,-21,-17,-35,-36,-35r0,132v22,-4,34,-19,37,-43r41,0v-8,45,-33,75,-78,75r0,32r-16,0"},"\u00a3":{"d":"199,-14v-43,48,-118,-14,-167,20r-19,-29v27,-18,52,-56,31,-92r-33,0r0,-23r23,0v-43,-52,2,-125,67,-125v55,0,91,30,91,89r-42,0v-1,-31,-13,-55,-48,-55v-45,0,-48,62,-24,91r53,0r0,23r-44,0v18,34,-7,66,-30,84v40,-29,90,25,124,-11"},"\u00a5":{"d":"80,0r0,-59r-50,0r0,-24r50,0r0,-24r-50,0r0,-24r36,0r-68,-126r46,0r56,115r57,-115r45,0r-68,126r36,0r0,24r-49,0r0,24r49,0r0,24r-49,0r0,59r-41,0"},"\u00a7":{"d":"154,-82v0,-30,-61,-47,-85,-64v-25,11,-35,38,-2,57r65,37v13,-5,22,-15,22,-30xm133,12v0,-54,-125,-59,-125,-124v0,-27,15,-44,39,-54v-40,-38,4,-97,55,-97v41,0,73,26,73,68r-39,0v4,-40,-61,-50,-64,-9v6,49,121,53,121,118v0,23,-18,45,-39,52v13,11,20,24,20,46v0,41,-34,62,-71,62v-44,0,-77,-26,-78,-74r39,0v-5,44,69,60,69,12"},"\u00a4":{"d":"27,-32r-20,-21r21,-22v-24,-24,-24,-78,0,-102r-21,-22r21,-21r20,20v24,-20,79,-22,102,0r21,-21r22,22r-20,21v23,25,22,79,-1,104r20,21r-20,20r-20,-21v-24,24,-79,24,-104,1xm100,-72v29,0,51,-25,51,-54v0,-28,-21,-54,-50,-54v-30,0,-52,24,-52,54v0,30,22,54,51,54"},"'":{"d":"32,-156r0,-101r36,0r0,101r-36,0","w":100},"\u00ab":{"d":"74,-33r-56,-45r0,-40r56,-44r0,37r-34,27r34,27r0,38xm145,-33r-56,-45r0,-40r56,-44r0,37r-34,27r34,27r0,38","w":166},"\u00b7":{"d":"50,-81v-39,0,-32,-55,0,-54v14,0,27,12,27,26v0,14,-12,28,-27,28","w":100},"\u00b6":{"d":"89,58r0,-182v-47,0,-78,-27,-78,-65v0,-82,97,-68,177,-68r0,315r-29,0r0,-292r-42,0r0,292r-28,0","w":216},"\u00bb":{"d":"22,-162r55,44r0,40r-55,45r0,-38r34,-27r-34,-27r0,-37xm93,-162r56,44r0,40r-56,45r0,-38r34,-27r-34,-27r0,-37","w":166},"\u00bf":{"d":"18,1v-1,-68,65,-53,63,-121r39,0v0,42,-9,57,-28,74v-15,13,-29,22,-29,46v0,27,22,38,35,38v30,0,43,-21,43,-52r42,0v0,51,-34,86,-87,86v-44,0,-78,-26,-78,-71xm76,-191r48,0r0,45r-48,0r0,-45"},"`":{"d":"-10,-263r48,0r33,51r-30,0","w":86},"\u00b4":{"d":"16,-212r33,-51r48,0r-51,51r-30,0","w":86},"\u00af":{"d":"95,-223r-103,0r0,-23r103,0r0,23","w":86},"\u00a8":{"d":"54,-255r41,0r0,39r-41,0r0,-39xm33,-216r-41,0r0,-39r41,0r0,39","w":86},"\u00b8":{"d":"3,72r7,-14v15,6,45,11,45,-9v0,-15,-20,-17,-31,-10r-7,-7r23,-32r18,0v-5,8,-13,13,-17,22v20,-4,43,3,43,25v0,38,-53,38,-81,25","w":86},"\u00c6":{"d":"152,-218r-57,118r70,0r0,-118r-13,0xm-3,0r128,-257r208,0r0,39r-126,0r0,67r118,0r0,37r-118,0r0,75r128,0r0,39r-170,0r0,-66r-87,0r-30,66r-51,0","w":346},"\u00aa":{"d":"88,-193v-13,9,-51,2,-51,23v0,21,53,15,51,-7r0,-16xm119,-224r0,55v0,8,4,9,12,7r0,25v-17,5,-38,5,-39,-15v-19,26,-86,25,-86,-16v0,-28,25,-32,48,-36v19,-3,34,-4,34,-13v-1,-26,-46,-21,-47,-2r-31,0v3,-30,31,-38,58,-38v25,0,51,9,51,33","w":136},"\u00d8":{"d":"72,-71r118,-133v-12,-14,-29,-22,-53,-22v-76,0,-94,95,-65,155xm202,-186r-118,133v13,14,30,22,53,22v76,0,94,-95,65,-155xm244,-264r15,13r-28,32v63,79,20,225,-94,225v-33,0,-60,-11,-80,-29r-27,30r-16,-13r29,-32v-62,-80,-20,-225,94,-225v33,0,60,11,80,29","w":273},"\u00ba":{"d":"69,-158v45,-1,43,-75,0,-76v-42,1,-44,75,0,76xm134,-195v0,37,-23,61,-65,61v-42,0,-64,-24,-64,-61v0,-37,22,-62,64,-62v42,0,65,25,65,62","w":136},"\u00e6":{"d":"175,-109r94,0v0,-30,-17,-50,-47,-50v-29,0,-45,23,-47,50xm136,-93v-21,16,-88,0,-83,42v5,42,86,26,83,-14r0,-28xm268,-59r41,0v-12,68,-116,88,-153,30v-29,48,-143,50,-144,-20v0,-46,36,-53,71,-58v30,-4,54,-3,54,-27v0,-21,-20,-25,-37,-25v-23,0,-39,10,-41,30r-41,0v3,-48,44,-62,84,-62v23,0,49,3,63,25v14,-18,37,-25,59,-25v63,0,90,47,86,109r-135,0v0,28,15,55,49,55v22,0,37,-13,44,-32","w":320},"\u00f8":{"d":"152,-130r-81,88v9,9,21,15,36,15v50,-1,64,-62,45,-103xm23,10r-11,-10r23,-26v-47,-58,-17,-165,72,-165v25,0,46,7,61,20r23,-25r11,10r-23,25v46,59,17,166,-72,166v-25,0,-46,-7,-61,-20xm62,-56r81,-88v-9,-9,-21,-15,-36,-15v-50,1,-64,62,-45,103","w":213},"\u00df":{"d":"87,-155v29,0,50,-10,50,-39v0,-24,-12,-37,-36,-37v-17,0,-37,9,-37,47r0,184r-41,0r0,-188v0,-47,33,-75,79,-75v39,0,76,24,76,65v1,25,-14,45,-37,55v30,4,49,32,49,61v0,57,-40,95,-103,86r0,-32v45,9,62,-28,62,-56v0,-33,-31,-44,-62,-44r0,-27","w":206},"\u00b9":{"d":"13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0","w":129},"\u00ac":{"d":"162,-39r0,-70r-145,0r0,-37r182,0r0,107r-37,0","w":216},"\u00b5":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-17,29,-55,44,-81,18r0,77r-41,0r0,-255r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0","w":206},"\u00d0":{"d":"27,0r0,-114r-24,0r0,-37r24,0r0,-106r107,0v79,0,113,57,113,128v0,71,-34,129,-113,129r-107,0xm72,-220r0,69r71,0r0,37r-71,0r0,77r45,0v71,0,85,-41,85,-92v0,-51,-14,-91,-85,-91r-45,0","w":259},"\u00bd":{"d":"49,9r151,-270r28,0r-150,270r-29,0xm13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0xm287,-112v0,46,-67,57,-80,87r77,0r0,25r-114,0v-4,-67,86,-61,86,-111v0,-15,-11,-24,-26,-24v-20,0,-26,18,-27,35r-31,0v0,-37,21,-61,59,-61v31,0,56,16,56,49","w":300},"\u00b1":{"d":"90,-137r0,-45r36,0r0,45r73,0r0,37r-73,0r0,45r-36,0r0,-45r-73,0r0,-37r73,0xm17,0r0,-37r182,0r0,37r-182,0","w":216},"\u00de":{"d":"27,0r0,-257r45,0r0,39r69,0v73,0,87,47,87,79v0,32,-14,79,-87,79r-69,0r0,60r-45,0xm72,-181r0,85v52,-3,111,15,111,-43v0,-60,-61,-38,-111,-42","w":240},"\u00bc":{"d":"259,-35r0,35r-31,0r0,-35r-71,0r0,-29r67,-90r35,0r0,92r17,0r0,27r-17,0xm228,-62v-1,-18,2,-41,-1,-57r-42,57r43,0xm13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0xm51,9r151,-270r28,0r-151,270r-28,0","w":300},"\u00f7":{"d":"199,-73r-182,0r0,-36r182,0r0,36xm108,-139v-14,0,-26,-12,-26,-26v0,-14,12,-26,26,-26v14,0,26,12,26,26v0,13,-12,26,-26,26xm108,9v-14,0,-26,-12,-26,-26v0,-14,12,-26,26,-26v14,0,26,12,26,26v0,13,-12,26,-26,26","w":216},"\u00a6":{"d":"22,32r0,-90r36,0r0,90r-36,0xm22,-148r0,-90r36,0r0,90r-36,0","w":79},"\u00b0":{"d":"18,-203v0,-30,24,-54,54,-54v30,0,54,24,54,54v0,30,-24,54,-54,54v-30,0,-54,-24,-54,-54xm38,-203v0,19,15,34,34,34v19,0,34,-15,34,-34v0,-19,-15,-34,-34,-34v-19,0,-34,15,-34,34","w":144},"\u00fe":{"d":"23,69r0,-326r41,0r0,95v11,-18,35,-29,56,-29v59,0,87,45,87,99v0,50,-25,97,-80,97v-23,0,-50,-8,-63,-29r0,93r-41,0xm114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66","w":219},"\u00be":{"d":"272,-35r0,35r-31,0r0,-35r-70,0r0,-29r66,-90r35,0r0,92r17,0r0,27r-17,0xm241,-62v-1,-18,2,-41,-1,-57r-42,57r43,0xm71,9r150,-270r28,0r-150,270r-28,0xm53,-171r0,-21v18,1,36,-5,36,-22v-7,-30,-55,-19,-51,10r-29,0v1,-33,22,-53,55,-53v27,0,54,11,54,42v1,16,-10,26,-23,33v18,3,29,18,29,38v0,32,-26,49,-59,49v-39,0,-58,-21,-59,-56r29,0v-1,17,10,31,30,31v17,0,30,-10,30,-26v0,-23,-21,-26,-42,-25","w":300},"\u00b2":{"d":"125,-210v0,46,-68,57,-81,87r77,0r0,25r-113,0v-6,-61,85,-66,85,-112v0,-15,-12,-22,-26,-22v-19,0,-25,17,-26,34r-32,0v0,-36,23,-59,59,-59v30,0,57,14,57,47","w":129},"\u00ae":{"d":"118,-115r0,64r-25,0r0,-150v50,0,111,-8,111,43v0,27,-17,38,-39,41r42,66r-28,0r-38,-64r-23,0xm118,-136v28,-2,62,8,62,-23v0,-28,-35,-20,-62,-21r0,44xm276,-129v0,81,-61,135,-132,135v-77,0,-132,-58,-132,-135v0,-81,61,-134,132,-134v71,0,132,53,132,134xm247,-129v0,-66,-45,-111,-103,-111v-58,0,-103,45,-103,111v0,61,39,112,103,112v58,0,103,-46,103,-112","w":288},"\u00f0":{"d":"108,-150v-38,0,-52,29,-52,62v0,33,15,61,48,61v66,2,73,-122,4,-123xm70,-195r-18,-17r34,-17v-11,-5,-21,-9,-30,-12r27,-22v13,4,26,10,38,18r37,-18r18,17r-34,17v79,55,84,232,-41,234v-55,0,-86,-40,-86,-96v0,-69,74,-118,133,-75v-8,-19,-24,-34,-39,-47","w":213},"\u00d7":{"d":"82,-91r-62,-63r31,-20r57,57r57,-57r31,20r-63,63r63,63r-31,20r-57,-58r-57,58r-31,-20","w":216},"\u00b3":{"d":"53,-171r0,-21v18,1,36,-5,36,-22v-7,-30,-55,-19,-51,10r-29,0v1,-33,22,-53,55,-53v27,0,54,11,54,42v1,16,-10,26,-23,33v18,3,29,18,29,38v0,32,-26,49,-59,49v-39,0,-58,-21,-59,-56r29,0v-1,17,10,31,30,31v17,0,30,-10,30,-26v0,-23,-21,-26,-42,-25","w":129},"\u00a9":{"d":"276,-129v0,81,-61,135,-132,135v-77,0,-132,-58,-132,-135v0,-81,61,-134,132,-134v71,0,132,53,132,134xm247,-129v0,-66,-45,-111,-103,-111v-58,0,-103,45,-103,111v0,61,39,112,103,112v58,0,103,-46,103,-112xm188,-103r24,0v-6,34,-31,56,-63,56v-46,0,-77,-36,-77,-82v0,-83,130,-109,140,-23r-24,0v-16,-55,-92,-30,-87,23v-8,56,76,81,87,26","w":288},"\u00c1":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm93,-277r32,-52r49,0r-51,52r-30,0","w":240},"\u00c2":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm120,-315r-25,32r-33,0r38,-51r40,0r39,51r-34,0","w":240},"\u00c4":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm131,-325r41,0r0,38r-41,0r0,-38xm110,-287r-41,0r0,-38r41,0r0,38","w":240},"\u00c0":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm66,-334r48,0r33,51r-30,0","w":240},"\u00c5":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm120,-269v-20,0,-37,-17,-37,-37v0,-20,17,-37,37,-37v20,0,37,17,37,37v0,20,-17,37,-37,37xm98,-306v0,12,10,22,22,22v12,0,22,-10,22,-22v0,-12,-10,-22,-22,-22v-12,0,-22,10,-22,22","w":240},"\u00c3":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm94,-326v28,0,58,32,69,-2r21,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":240},"\u00c7":{"d":"202,-98r44,0v-4,61,-46,103,-107,104r-11,16v20,-4,42,3,42,25v0,38,-52,38,-80,25r6,-14v15,6,45,12,45,-9v0,-15,-20,-18,-30,-10r-8,-7r20,-27v-68,-7,-109,-65,-109,-134v0,-73,46,-134,123,-134v58,0,104,33,109,88r-45,0v-8,-30,-27,-51,-64,-51v-55,0,-78,48,-78,97v0,49,23,98,78,98v40,0,61,-30,65,-67","w":259},"\u00c9":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm86,-283r33,-51r48,0r-51,51r-30,0","w":226},"\u00ca":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm113,-315r-25,32r-33,0r39,-51r40,0r38,51r-33,0","w":226},"\u00cb":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm124,-325r41,0r0,38r-41,0r0,-38xm103,-287r-41,0r0,-38r41,0r0,38","w":226},"\u00c8":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm60,-334r48,0r33,51r-30,0","w":226},"\u00cd":{"d":"27,0r0,-257r45,0r0,257r-45,0xm23,-281r32,-51r49,0r-51,51r-30,0","w":100},"\u00ce":{"d":"27,0r0,-257r45,0r0,257r-45,0xm50,-315r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":100},"\u00cf":{"d":"27,0r0,-257r45,0r0,257r-45,0xm61,-325r41,0r0,38r-41,0r0,-38xm40,-287r-41,0r0,-38r41,0r0,38","w":100},"\u00cc":{"d":"27,0r0,-257r45,0r0,257r-45,0xm-4,-334r49,0r32,51r-29,0","w":100},"\u00d1":{"d":"26,0r0,-257r47,0r118,189r0,-189r43,0r0,257r-48,0r-118,-189r0,189r-42,0xm104,-326v28,-1,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":259},"\u00d3":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm110,-277r32,-52r49,0r-51,52r-30,0","w":273},"\u00d4":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm137,-315r-25,32r-34,0r39,-51r40,0r39,51r-34,0","w":273},"\u00d6":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm148,-325r41,0r0,38r-41,0r0,-38xm127,-287r-41,0r0,-38r41,0r0,38","w":273},"\u00d2":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm83,-334r48,0r33,51r-30,0","w":273},"\u00d5":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm111,-326v28,0,58,32,69,-2r21,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-21,0v3,-18,16,-41,38,-41","w":273},"\u00da":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm103,-277r32,-52r49,0r-51,52r-30,0","w":259},"\u00db":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm130,-315r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":259},"\u00dc":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm141,-325r41,0r0,38r-41,0r0,-38xm120,-287r-41,0r0,-38r41,0r0,38","w":259},"\u00d9":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm76,-334r49,0r32,51r-30,0","w":259},"\u00dd":{"d":"94,0r0,-101r-96,-156r52,0r68,115r67,-115r50,0r-96,156r0,101r-45,0xm90,-277r32,-52r49,0r-51,52r-30,0","w":233,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":37,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":31,"\u00fa":31,"\u00fb":31,"\u00fc":31,"\u00f9":31,":":33,";":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"p":31}},"\u00e1":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm73,-212r32,-51r49,0r-51,51r-30,0"},"\u00e2":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm100,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0"},"\u00e4":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm111,-255r41,0r0,39r-41,0r0,-39xm90,-216r-41,0r0,-39r41,0r0,39"},"\u00e0":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm46,-263r49,0r32,51r-29,0"},"\u00e5":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm100,-198v-20,0,-37,-17,-37,-37v0,-20,17,-37,37,-37v20,0,38,17,38,37v0,20,-18,37,-38,37xm78,-235v0,12,10,22,22,22v12,0,22,-10,22,-22v0,-12,-10,-22,-22,-22v-12,0,-22,10,-22,22"},"\u00e3":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm74,-255v28,-1,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41"},"\u00e7":{"d":"147,-70r41,0v-7,46,-34,72,-77,74v-4,6,-10,11,-13,18v20,-4,42,3,42,25v0,38,-52,38,-80,25r6,-14v15,6,46,12,46,-9v0,-14,-21,-18,-31,-10r-8,-7r21,-28v-53,-4,-81,-44,-81,-95v0,-56,30,-100,91,-100v43,0,80,21,84,67r-41,0v-3,-23,-19,-35,-42,-35v-21,0,-51,11,-51,68v0,31,13,64,49,64v24,0,40,-16,44,-43"},"\u00e9":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm73,-212r32,-51r49,0r-51,51r-30,0"},"\u00ea":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm100,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0"},"\u00eb":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm111,-255r41,0r0,39r-41,0r0,-39xm90,-216r-41,0r0,-39r41,0r0,39"},"\u00e8":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm46,-263r49,0r32,51r-29,0"},"\u00ed":{"d":"64,0r-41,0r0,-186r41,0r0,186xm16,-212r33,-51r48,0r-51,51r-30,0","w":86},"\u00ee":{"d":"64,0r-41,0r0,-186r41,0r0,186xm43,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":86},"\u00ef":{"d":"64,0r-41,0r0,-186r41,0r0,186xm54,-255r41,0r0,39r-41,0r0,-39xm33,-216r-41,0r0,-39r41,0r0,39","w":86},"\u00ec":{"d":"64,0r-41,0r0,-186r41,0r0,186xm-10,-263r48,0r33,51r-30,0","w":86},"\u00f1":{"d":"22,0r0,-186r38,0v1,9,-2,21,1,28v27,-52,124,-42,124,30r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0xm77,-255v28,0,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-23,1,-59,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":206},"\u00f3":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm80,-212r32,-51r49,0r-52,51r-29,0","w":213},"\u00f4":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm107,-244r-26,32r-33,0r39,-51r40,0r39,51r-34,0","w":213},"\u00f6":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm117,-255r41,0r0,39r-41,0r0,-39xm96,-216r-41,0r0,-39r41,0r0,39","w":213},"\u00f2":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm53,-263r48,0r33,51r-30,0","w":213},"\u00f5":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm81,-255v28,0,58,32,69,-2r20,0v-4,23,-14,40,-40,41v-22,1,-59,-30,-66,2r-21,0v3,-18,16,-41,38,-41","w":213},"\u00fa":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm76,-212r33,-51r48,0r-51,51r-30,0","w":206},"\u00fb":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm103,-244r-25,32r-33,0r39,-51r39,0r39,51r-33,0","w":206},"\u00fc":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm114,-255r41,0r0,39r-41,0r0,-39xm93,-216r-41,0r0,-39r41,0r0,39","w":206},"\u00f9":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm50,-263r48,0r33,51r-30,0","w":206},"\u00fd":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38xm66,-212r33,-51r48,0r-51,51r-30,0","w":186,"k":{",":33,".":33}},"\u00ff":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38xm104,-255r41,0r0,39r-41,0r0,-39xm83,-216r-41,0r0,-39r41,0r0,39","w":186,"k":{",":33,".":33}},"\u20ac":{"d":"21,-162v4,-83,114,-125,176,-68r-17,36v-10,-30,-68,-39,-94,-16v-12,10,-20,28,-24,48r104,0r-11,23r-96,1v-1,10,0,18,0,27r83,0r-11,23r-68,0v4,33,24,60,63,59v28,-1,45,-9,60,-26r0,41v-15,13,-37,19,-62,19v-60,1,-95,-41,-103,-93r-26,0r10,-23r13,0v-1,-9,-1,-17,0,-27r-23,0r10,-24r16,0"},"\u00a0":{"w":100},"\u00ad":{"d":"18,-78r0,-39r104,0r0,39r-104,0","w":140}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Bd
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeue","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 4 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-21 -351 340 78.3653","underline-thickness":"18","underline-position":"-18","stemh":"39","stemv":"51","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"77,-257v3,67,-7,123,-14,180r-26,0v-7,-58,-17,-112,-14,-180r54,0xm22,0r0,-55r56,0r0,55r-56,0","w":100},"\"":{"d":"98,-141r0,-116r38,0r0,116r-38,0xm31,-141r0,-116r38,0r0,116r-38,0","w":166},"#":{"d":"32,0r10,-71r-30,0r0,-33r34,0r7,-44r-30,0r0,-33r34,0r10,-71r35,0r-10,71r35,0r9,-71r35,0r-9,71r26,0r0,33r-31,0r-6,44r26,0r0,33r-31,0r-10,71r-34,0r9,-71r-34,0r-10,71r-35,0xm122,-148r-35,0r-6,44r35,0"},"$":{"d":"89,-162r0,-59v-16,0,-32,10,-32,30v0,16,9,24,32,29xm111,-105r0,69v18,-2,38,-12,38,-35v0,-19,-10,-26,-38,-34xm89,-111v-40,-11,-83,-22,-83,-75v0,-49,40,-74,83,-77r0,-28r22,0r0,28v43,5,78,27,81,77r-52,0v0,-19,-13,-35,-29,-35r0,64v6,1,12,2,18,4v70,19,72,60,72,84v0,21,-18,70,-90,75r0,31r-22,0r0,-31v-53,-4,-84,-33,-89,-90r51,0v0,27,16,44,38,48r0,-75"},"%":{"d":"27,-186v0,-39,19,-71,61,-71v45,0,59,33,59,73v0,39,-19,67,-61,67v-44,0,-59,-29,-59,-69xm64,-185v0,15,0,41,23,41v22,0,24,-26,24,-41v0,-14,-2,-45,-23,-45v-23,0,-24,28,-24,45xm213,-66v0,-39,19,-69,61,-69v45,0,59,31,59,71v0,39,-19,69,-61,69v-44,0,-59,-31,-59,-71xm249,-66v0,15,1,44,24,44v22,0,23,-28,23,-43v0,-14,-1,-43,-22,-43v-23,0,-25,25,-25,42xm91,8r149,-268r31,0r-148,268r-32,0","w":360},"&":{"d":"111,-165v28,-8,39,-56,3,-61v-34,3,-24,47,-3,61xm140,-60r-44,-53v-18,8,-36,21,-36,42v0,42,62,42,80,11xm188,0r-21,-26v-46,53,-157,37,-155,-46v0,-36,27,-61,57,-75v-14,-17,-24,-32,-24,-54v0,-36,33,-59,67,-59v39,0,70,21,70,62v0,30,-20,50,-46,64r34,40v5,-9,8,-20,9,-30r44,0v-3,23,-11,45,-25,63r53,61r-63,0","w":246},"(":{"d":"66,-263r43,0v-53,103,-52,226,0,329r-43,0v-62,-99,-63,-230,0,-329","w":106},")":{"d":"40,66r-43,0v54,-101,53,-226,1,-329r42,0v63,98,64,231,0,329","w":106},"*":{"d":"87,-257r0,45r42,-16r10,28r-43,14r27,35r-24,18r-27,-37r-25,37r-24,-18r27,-35r-42,-14r10,-28r40,16r0,-45r29,0","w":146},"+":{"d":"127,-182r0,72r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38r72,0r0,-72r38,0","w":216},",":{"d":"22,0r0,-55r56,0v5,61,-4,109,-56,115r0,-26v15,-3,27,-18,26,-34r-26,0","w":100},"-":{"d":"19,-76r0,-44r108,0r0,44r-108,0","w":146},".":{"d":"22,0r0,-55r56,0r0,55r-56,0","w":100},"\/":{"d":"-4,6r100,-269r42,0r-101,269r-41,0","w":133},"0":{"d":"8,-127v0,-98,42,-130,92,-130v50,0,93,32,93,130v0,100,-43,132,-93,132v-50,0,-92,-32,-92,-132xm59,-127v0,28,0,90,41,90v42,0,41,-62,41,-90v0,-26,1,-88,-41,-88v-41,0,-41,62,-41,88"},"1":{"d":"141,-252r0,252r-51,0r0,-163r-63,0r0,-39v36,1,68,-11,73,-50r41,0"},"2":{"d":"191,-178v-1,79,-85,84,-118,134r120,0r0,44r-185,0v0,-58,35,-83,79,-113v22,-15,53,-30,53,-61v0,-24,-16,-39,-38,-39v-30,0,-40,31,-40,58r-49,0v-2,-58,32,-102,92,-102v46,0,86,30,86,79"},"3":{"d":"82,-114r0,-36v22,2,54,-2,54,-31v0,-21,-17,-34,-36,-34v-26,0,-39,19,-39,45r-48,0v2,-51,35,-87,87,-87v40,0,84,25,84,70v1,25,-14,44,-35,52v28,6,45,29,45,57v0,53,-45,83,-94,83v-57,0,-95,-34,-94,-92r49,0v1,27,14,50,44,50v23,0,41,-16,41,-40v0,-38,-33,-37,-58,-37"},"4":{"d":"112,0r0,-58r-106,0r0,-47r109,-147r46,0r0,152r33,0r0,42r-33,0r0,58r-49,0xm112,-100r-1,-88r-65,88r66,0"},"5":{"d":"180,-252r0,42r-104,0v-2,19,-9,41,-9,58v49,-47,127,-2,127,66v0,52,-43,91,-94,91v-49,0,-93,-27,-94,-80r52,0v3,22,19,38,41,38v27,0,44,-24,44,-49v0,-46,-62,-64,-83,-27r-46,0r25,-139r141,0"},"6":{"d":"58,-142v39,-54,135,-18,135,55v0,51,-36,92,-89,92v-76,0,-96,-66,-96,-130v0,-62,27,-132,99,-132v44,0,75,26,81,70r-48,0v-3,-17,-16,-32,-34,-32v-37,0,-47,49,-48,77xm103,-131v-27,0,-41,22,-41,47v0,23,15,47,41,47v24,0,38,-23,38,-46v0,-24,-12,-48,-38,-48"},"7":{"d":"186,-252r0,44v-53,46,-81,141,-82,208r-55,0v6,-75,37,-146,85,-204r-120,0r0,-48r172,0"},"8":{"d":"56,-76v0,26,21,43,45,43v24,0,43,-18,43,-43v0,-24,-19,-40,-43,-40v-25,0,-45,14,-45,40xm15,-188v0,-45,44,-69,85,-69v63,0,85,44,85,68v0,25,-13,45,-37,53v30,7,47,30,47,62v0,53,-47,79,-94,79v-49,0,-96,-25,-96,-79v0,-32,18,-55,48,-62v-24,-7,-38,-27,-38,-52xm62,-184v0,22,17,34,38,34v21,0,38,-12,38,-34v0,-13,-6,-35,-38,-35v-21,0,-38,13,-38,35"},"9":{"d":"142,-111v-41,59,-134,17,-134,-54v0,-51,35,-92,88,-92v76,0,97,66,97,130v0,62,-27,132,-99,132v-44,0,-76,-26,-82,-70r48,0v3,17,16,32,34,32v36,0,51,-51,48,-78xm97,-121v27,0,41,-22,41,-47v0,-23,-15,-47,-41,-47v-24,0,-38,23,-38,46v0,24,12,48,38,48"},":":{"d":"22,0r0,-55r56,0r0,55r-56,0xm78,-183r0,56r-56,0r0,-56r56,0","w":100},";":{"d":"22,0r0,-55r56,0v5,61,-4,109,-56,115r0,-26v15,-3,27,-18,26,-34r-26,0xm78,-183r0,56r-56,0r0,-56r56,0","w":100},"<":{"d":"199,-185r0,41r-132,53r132,52r0,42r-182,-73r0,-42","w":216},"=":{"d":"199,-149r0,39r-182,0r0,-39r182,0xm199,-72r0,39r-182,0r0,-39r182,0","w":216},">":{"d":"17,3r0,-42r132,-52r-132,-53r0,-41r182,73r0,42","w":216},"?":{"d":"75,-77v-8,-68,57,-66,57,-112v0,-22,-11,-32,-30,-32v-26,0,-38,21,-38,47r-52,0v1,-51,34,-89,87,-89v68,0,90,41,90,69v0,71,-67,52,-66,117r-48,0xm69,0r0,-55r57,0r0,55r-57,0"},"@":{"d":"149,-168v-42,-3,-65,81,-16,85v42,3,64,-81,16,-85xm224,-196r-23,93v-3,10,-6,23,3,23v21,0,43,-27,43,-66v0,-57,-43,-88,-98,-88v-62,0,-101,45,-101,106v0,97,121,136,183,76r30,0v-24,37,-64,58,-109,58v-77,0,-139,-58,-139,-135v0,-76,62,-134,137,-134v66,0,125,44,125,110v0,74,-62,104,-85,104v-16,1,-24,-10,-27,-20v-29,43,-95,9,-95,-41v0,-62,79,-130,121,-67r5,-19r30,0","w":288},"A":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0","w":246},"B":{"d":"81,-114r0,70v44,-3,102,15,103,-34v1,-49,-59,-34,-103,-36xm25,0r0,-257v83,5,205,-26,203,64v0,25,-13,42,-35,53v31,9,47,33,47,65v0,97,-121,72,-215,75xm81,-213r0,60v39,-2,93,12,92,-31v-2,-42,-54,-26,-92,-29","w":253},"C":{"d":"251,-171r-55,0v-4,-26,-28,-45,-56,-45v-51,0,-70,44,-70,89v0,43,19,86,70,86v35,0,54,-24,58,-58r55,0v-6,64,-50,105,-113,105v-80,0,-126,-59,-126,-133v0,-76,46,-136,126,-136v57,0,104,33,111,92","w":266},"D":{"d":"25,0r0,-257r111,0v67,0,116,42,116,127v0,75,-38,130,-116,130r-111,0xm81,-210r0,162v68,2,111,3,115,-77v4,-69,-40,-93,-115,-85","w":266},"E":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0","w":233},"F":{"d":"25,0r0,-257r181,0r0,47r-125,0r0,60r108,0r0,44r-108,0r0,106r-56,0","w":213,"k":{"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46}},"G":{"d":"216,0r-5,-29v-71,84,-197,5,-197,-98v0,-76,46,-136,126,-136v53,0,102,33,108,91r-54,0v-6,-28,-27,-44,-54,-44v-51,0,-70,44,-70,89v0,43,19,86,70,86v37,0,58,-20,61,-56r-57,0r0,-42r108,0r0,139r-36,0","w":273},"H":{"d":"25,0r0,-257r56,0r0,99r104,0r0,-99r57,0r0,257r-57,0r0,-111r-104,0r0,111r-56,0","w":266},"I":{"d":"25,0r0,-257r56,0r0,257r-56,0","w":106},"J":{"d":"175,-257r0,176v0,33,-8,87,-85,87v-50,0,-94,-33,-85,-102r51,0v-1,30,1,55,33,55v30,0,30,-25,30,-43r0,-173r56,0"},"K":{"d":"25,0r0,-257r56,0r0,107r101,-107r70,0r-100,101r110,156r-71,0r-77,-116r-33,33r0,83r-56,0","w":259},"L":{"d":"25,0r0,-257r56,0r0,209r126,0r0,48r-182,0","w":213,"k":{"T":40,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"M":{"d":"25,0r0,-257r79,0r61,177r57,-177r80,0r0,257r-53,0r-1,-182r-63,182r-44,0r-63,-180r0,180r-53,0","w":326},"N":{"d":"25,0r0,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0","w":266},"O":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89","w":280},"P":{"d":"25,0r0,-257r116,0v64,0,89,40,89,82v0,42,-25,83,-89,83r-60,0r0,92r-56,0xm81,-213r0,77v44,-2,94,11,94,-39v0,-49,-50,-36,-94,-38","w":240,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":46,".":46}},"Q":{"d":"265,-4r-26,28r-37,-33v-17,10,-38,15,-62,15v-80,0,-126,-59,-126,-133v0,-76,46,-136,126,-136v119,0,162,152,93,230xm139,-67r26,-28r29,27v30,-46,20,-148,-54,-148v-51,0,-70,44,-70,89v0,51,35,101,93,82","w":280},"R":{"d":"190,0v-13,-35,4,-100,-52,-100r-57,0r0,100r-56,0r0,-257r138,0v81,-4,104,109,35,135v49,16,28,78,48,122r-56,0xm81,-213r0,72v44,-3,101,13,101,-36v0,-48,-57,-34,-101,-36","w":259,"k":{"T":6,"V":-2,"W":-2,"Y":13,"\u00dd":13}},"S":{"d":"72,-190v0,48,153,16,153,114v0,47,-37,82,-107,82v-57,0,-110,-28,-109,-91r54,0v0,34,27,47,57,47v20,0,50,-6,50,-32v0,-28,-38,-32,-76,-42v-38,-10,-77,-25,-77,-73v0,-106,202,-106,199,5r-54,0v-2,-31,-24,-39,-51,-39v-18,0,-39,7,-39,29","w":233},"T":{"d":"82,0r0,-210r-77,0r0,-47r210,0r0,47r-77,0r0,210r-56,0","w":219,"k":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":40,"\u00e5":40,"\u00e0":40,"\u00e4":40,"\u00e2":40,"w":40,"y":33,"\u00fd":33,"\u00ff":33,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":40,"\u00e6":40,"\u00e1":40,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":31,";":31}},"U":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0","w":266},"V":{"d":"230,-257r-86,257r-63,0r-84,-257r58,0r58,181r58,-181r59,0","w":226,"k":{"\u00f6":20,"\u00f4":20,"\u00ee":6,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":17,"\u00c6":17,"\u00c1":17,"\u00c2":17,"\u00c4":17,"\u00c0":17,"\u00c5":17,"\u00c3":17,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":18,";":18,"i":6,"\u00ed":6,"\u00ef":6,"\u00ec":6}},"W":{"d":"339,-257r-69,257r-57,0r-44,-175r-43,175r-57,0r-68,-257r57,0r41,175r45,-175r53,0r44,177r42,-177r56,0","w":339,"k":{"\u00fc":6,"\u00f6":13,"\u00ea":13,"\u00e4":13,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":27,".":27,"e":13,"\u00e9":13,"\u00eb":13,"\u00e8":13,"o":13,"\u00f8":13,"\u00f3":13,"\u00f4":13,"\u00f2":13,"\u00f5":13,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"X":{"d":"-2,0r90,-135r-83,-122r66,0r50,82r52,-82r62,0r-82,123r89,134r-67,0r-56,-89r-57,89r-64,0","w":240},"Y":{"d":"91,0r0,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0","w":240,"k":{"\u00fc":27,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":27,"\u00fa":27,"\u00fb":27,"\u00f9":27,":":29,";":24,"i":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"p":27}},"Z":{"d":"8,0r0,-45r138,-165r-127,0r0,-47r202,0r0,45r-137,164r141,0r0,48r-217,0","w":233},"[":{"d":"24,66r0,-329r96,0r0,40r-44,0r0,248r44,0r0,41r-96,0","w":119},"\\":{"d":"37,-263r101,269r-42,0r-100,-269r41,0","w":133},"]":{"d":"95,-263r0,329r-95,0r0,-41r44,0r0,-248r-44,0r0,-40r95,0","w":119},"^":{"d":"22,-113r62,-139r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,45r0,-18r180,0r0,18r-180,0","w":180},"a":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28","w":206},"b":{"d":"19,0r0,-257r52,0r0,94v48,-55,137,-29,136,70v0,68,-40,98,-77,98v-28,1,-49,-10,-62,-29r0,24r-49,0xm156,-93v0,-31,-14,-60,-44,-60v-30,0,-43,29,-43,60v0,31,13,60,43,60v30,0,44,-29,44,-60","w":219},"c":{"d":"196,-121r-50,0v-3,-21,-17,-32,-38,-32v-33,0,-43,34,-43,61v0,27,10,59,42,59v24,0,38,-15,41,-38r49,0v-6,49,-40,76,-89,76v-56,0,-94,-39,-94,-95v0,-58,35,-101,95,-101v44,0,84,22,87,70","w":206},"d":{"d":"152,0r0,-24v-12,20,-33,29,-57,29v-56,0,-83,-49,-83,-100v0,-50,27,-96,82,-96v23,-1,42,12,56,28r0,-94r51,0r0,257r-49,0xm152,-94v0,-30,-11,-59,-44,-59v-33,0,-45,29,-45,60v0,29,13,60,45,60v34,0,44,-30,44,-61","w":219},"e":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40","w":206},"f":{"d":"31,0r0,-152r-31,0r0,-34r31,0v-7,-54,29,-78,89,-70r0,39v-24,-6,-43,1,-38,31r35,0r0,34r-35,0r0,152r-51,0","w":119,"k":{"f":6,"\u00df":6}},"g":{"d":"198,-186r0,174v0,31,-10,83,-96,83v-37,0,-79,-18,-82,-60r51,0v13,44,87,27,79,-21v-1,-7,2,-18,-1,-24v-11,19,-34,29,-56,29v-56,0,-79,-43,-79,-94v0,-48,28,-92,80,-92v25,-1,42,10,56,30r0,-25r48,0xm106,-44v29,0,44,-24,44,-51v0,-30,-11,-58,-44,-58v-29,0,-41,25,-41,53v0,27,10,56,41,56","w":219},"h":{"d":"19,0r0,-257r52,0r1,97v13,-21,35,-31,54,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0","w":213},"i":{"d":"21,0r0,-186r51,0r0,186r-51,0xm72,-257r0,42r-51,0r0,-42r51,0","w":92},"j":{"d":"-7,64r0,-42v14,2,31,3,31,-15r0,-193r51,0r0,195v5,44,-31,63,-82,55xm75,-257r0,42r-51,0r0,-42r51,0","w":100},"k":{"d":"24,0r0,-257r51,0r0,138r65,-67r60,0r-70,68r78,118r-62,0r-51,-83r-20,19r0,64r-51,0","w":206},"l":{"d":"21,0r0,-257r51,0r0,257r-51,0","w":92},"m":{"d":"21,0r0,-186r48,0v1,8,-2,19,1,25v23,-38,91,-43,111,1v26,-47,124,-44,124,35r0,125r-51,0r0,-105v0,-25,-2,-46,-31,-46v-29,0,-34,24,-34,47r0,104r-51,0r0,-104v0,-22,1,-47,-31,-47v-10,0,-35,7,-35,43r0,108r-51,0","w":326},"n":{"d":"19,0r0,-186r49,0v1,8,-2,20,1,26v13,-21,35,-31,57,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0","w":213},"o":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60","w":219},"p":{"d":"19,66r0,-252r49,0v1,7,-2,18,1,24v12,-20,32,-29,55,-29v58,0,85,47,85,100v0,50,-28,96,-82,96v-22,0,-44,-10,-56,-28r0,89r-52,0xm113,-33v58,0,64,-120,0,-120v-61,0,-60,120,0,120","w":219},"q":{"d":"201,-186r0,252r-51,0r-1,-89v-12,20,-37,28,-59,28v-34,0,-78,-25,-78,-97v0,-51,26,-99,83,-99v23,0,45,8,57,29r0,-24r49,0xm108,-153v-61,0,-62,120,-1,120v33,0,45,-28,45,-59v0,-29,-12,-61,-44,-61","w":219},"r":{"d":"19,0r0,-186r49,0v1,11,-2,25,1,34v11,-25,40,-45,70,-37r0,47v-43,-10,-68,18,-68,58r0,84r-52,0","w":140,"k":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"s":{"d":"132,-53v0,-36,-117,-18,-117,-78v0,-48,41,-60,81,-60v41,0,78,13,82,59r-49,0v-1,-20,-17,-25,-35,-25v-12,0,-28,2,-28,17v0,18,29,21,58,28v30,7,59,17,59,52v0,49,-43,65,-85,65v-43,0,-86,-16,-88,-65r49,0v-2,38,73,44,73,7","w":193},"t":{"d":"84,-242r0,56r38,0r0,34r-38,0r0,92v-3,24,19,24,38,20r0,40v-41,4,-89,6,-89,-42r0,-110r-31,0r0,-34r31,0r0,-56r51,0","w":126},"u":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0","w":213},"v":{"d":"185,-186r-63,186r-56,0r-64,-186r53,0r40,127r40,-127r50,0","w":187,"k":{",":20,".":20}},"w":{"d":"291,-186r-59,186r-52,0r-34,-125r-32,125r-53,0r-59,-186r54,0r35,126r31,-126r50,0r32,126r34,-126r53,0","w":293,"k":{",":20,".":20}},"x":{"d":"0,0r67,-98r-61,-88r58,0r33,48r32,-48r57,0r-61,87r68,99r-58,0r-39,-59r-39,59r-57,0","w":193},"y":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0","w":186,"k":{",":20,".":20}},"z":{"d":"8,0r0,-39r97,-109r-90,0r0,-38r157,0r0,38r-97,109r104,0r0,39r-171,0","w":186},"{":{"d":"120,-263r0,40v-24,-3,-39,5,-39,26r0,55v0,37,-27,40,-36,44v11,1,36,9,36,39v0,38,-20,93,39,84r0,41v-49,1,-90,4,-90,-49r0,-70v0,-22,-21,-30,-33,-30r0,-31v12,0,33,-9,33,-33r0,-68v6,-53,41,-49,90,-48","w":119},"|":{"d":"21,77r0,-360r38,0r0,360r-38,0","w":80},"}":{"d":"0,66r0,-41v24,3,39,-5,39,-26r0,-58v0,-31,27,-36,36,-40v-11,-1,-36,-8,-36,-43v0,-37,18,-90,-39,-81r0,-40v49,-1,90,-5,90,48r0,68v0,24,21,33,33,33r0,31v-12,0,-33,8,-33,30r0,70v-6,53,-41,51,-90,49","w":119},"~":{"d":"69,-122v24,0,56,23,77,24v14,0,23,-13,31,-26r15,34v-11,15,-23,31,-45,31v-36,0,-90,-51,-108,1r-15,-33v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"78,-191r0,55r-56,0r0,-55r56,0xm23,66v-3,-67,7,-123,14,-180r26,0v7,58,17,112,14,180r-54,0","w":100},"\u00a2":{"d":"94,-33r0,-119v-49,15,-47,103,0,119xm94,41r0,-36v-51,-3,-86,-44,-86,-95v0,-55,30,-96,86,-101r0,-31r21,0r0,31v40,0,79,28,80,71r-50,0v-1,-17,-14,-32,-30,-33r0,120v18,-3,31,-22,31,-40r50,0v-4,46,-37,74,-81,78r0,36r-21,0"},"\u00a3":{"d":"204,-17v-50,57,-118,-18,-172,23r-23,-33v26,-16,54,-49,34,-84r-35,0r0,-31r23,0v-36,-49,-11,-121,76,-121v54,0,87,32,87,90r-49,0v-1,-14,-2,-48,-39,-48v-42,0,-45,38,-20,79r48,0r0,31r-38,0v12,33,-10,57,-26,73v38,-27,80,24,113,-15"},"\u00a5":{"d":"129,0r-54,0r0,-50r-57,0r0,-34r57,0v1,-12,-1,-21,-6,-27r-51,0r0,-34r34,0r-55,-112r58,0r48,112r46,-112r59,0r-56,112r34,0r0,34r-51,0v-5,6,-7,15,-6,27r57,0r0,34r-57,0r0,50"},"\u00a7":{"d":"152,-81v-9,-33,-52,-37,-76,-56v-13,-10,-28,8,-28,21v0,7,4,13,12,17v26,12,45,30,75,38v9,0,17,-12,17,-20xm128,3v0,-46,-124,-51,-124,-115v0,-26,14,-44,38,-53v-40,-41,7,-98,60,-98v42,0,76,24,76,69r-45,0v5,-36,-55,-42,-58,-8v8,44,122,49,122,112v0,24,-16,45,-38,53v14,10,20,25,20,42v0,41,-41,61,-77,61v-46,0,-81,-21,-81,-70r45,0v1,21,13,31,35,31v15,0,27,-8,27,-24"},"\u00a4":{"d":"7,-54r21,-21v-23,-24,-25,-78,0,-102r-21,-21r21,-21r20,20v24,-20,79,-22,102,0r21,-21r22,22r-20,20v21,25,22,79,-1,104r20,20r-20,20r-20,-21v-24,24,-79,24,-104,1r-21,21xm101,-177v-30,0,-46,24,-46,51v0,26,15,51,45,51v59,1,59,-101,1,-102"},"'":{"d":"31,-141r0,-116r38,0r0,116r-38,0","w":100},"\u00ab":{"d":"145,-29r-57,-45r0,-48r57,-45r0,44r-33,25r33,26r0,43xm72,-29r-57,-45r0,-48r57,-45r0,44r-33,25r33,26r0,43","w":159},"\u00b7":{"d":"20,-103v0,-17,13,-31,30,-31v16,0,31,14,31,31v0,15,-14,30,-30,30v-17,0,-31,-13,-31,-30","w":100},"\u00b6":{"d":"80,60r0,-189v-50,0,-79,-25,-79,-63v-1,-87,111,-61,192,-65r0,317r-37,0r0,-288r-40,0r0,288r-36,0","w":223},"\u00bb":{"d":"88,-167r57,45r0,48r-57,45r0,-43r33,-26r-33,-25r0,-44xm15,-167r57,45r0,48r-57,45r0,-43r33,-26r-33,-25r0,-44","w":159},"\u00bf":{"d":"126,-116v8,69,-58,65,-58,112v0,22,12,32,31,32v25,0,36,-20,36,-46r53,0v-1,51,-35,89,-87,89v-68,0,-89,-42,-89,-70v0,-71,66,-53,65,-117r49,0xm131,-191r0,55r-57,0r0,-55r57,0"},"`":{"d":"38,-209r-55,-51r56,0r35,51r-36,0","w":93},"\u00b4":{"d":"111,-260r-56,51r-36,0r35,-51r57,0","w":93},"\u00af":{"d":"-21,-222r0,-27r135,0r0,27r-135,0","w":93},"\u00a8":{"d":"59,-215r0,-42r49,0r0,42r-49,0xm-15,-215r0,-42r49,0r0,42r-49,0","w":93},"\u00b8":{"d":"4,71r8,-18v11,4,45,16,45,-5v0,-23,-33,-1,-37,-18r21,-31r18,0v-3,6,-12,15,-13,20v18,-6,45,1,45,23v0,46,-59,39,-87,29","w":93},"\u00c6":{"d":"150,-210r-49,111r62,0r0,-111r-13,0xm-4,0r123,-257r218,0r0,47r-120,0r0,56r113,0r0,43r-113,0r0,63r123,0r0,48r-177,0r0,-57r-81,0r-26,57r-60,0","w":353},"\u00aa":{"d":"83,-193v-12,10,-42,3,-43,21v16,29,51,7,43,-21xm7,-218v4,-29,26,-39,56,-39v25,0,54,5,54,32v0,28,-4,68,5,87r-37,0v-1,-4,-2,-7,-2,-11v-24,23,-79,21,-79,-22v0,-26,20,-32,41,-35v22,-3,38,-2,38,-14v-1,-20,-38,-20,-39,2r-37,0","w":123},"\u00d8":{"d":"12,-4r31,-34v-63,-80,-20,-225,97,-225v33,0,60,10,81,28r29,-32r18,15r-30,34v61,82,20,224,-98,224v-33,0,-60,-10,-80,-27r-30,33xm80,-79r107,-118v-11,-11,-26,-19,-47,-19v-68,0,-83,82,-60,137xm200,-176r-106,117v11,11,26,18,46,18v69,-1,83,-80,60,-135","w":280},"\u00ba":{"d":"4,-196v0,-38,25,-61,62,-61v37,0,62,23,62,61v0,38,-25,61,-62,61v-37,0,-62,-23,-62,-61xm66,-230v-31,0,-31,67,0,68v32,-1,31,-68,0,-68","w":132},"\u00e6":{"d":"139,-91v-20,16,-73,3,-74,38v0,19,16,24,31,24v27,1,50,-23,43,-62xm316,-81r-133,0v-1,24,17,52,45,52v22,0,34,-11,37,-29r49,0v-14,68,-114,86,-155,31v-34,45,-145,50,-145,-23v0,-42,31,-52,62,-57v44,-6,63,-7,63,-26v0,-34,-70,-34,-69,5r-51,0v2,-70,110,-83,149,-38v14,-17,32,-25,62,-25v62,0,86,52,86,110xm183,-113r82,0v0,-23,-14,-44,-40,-44v-26,0,-42,21,-42,44","w":326},"\u00f8":{"d":"70,-62r70,-79v-7,-7,-17,-12,-30,-12v-46,0,-51,53,-40,91xm149,-126r-70,80v7,8,17,13,31,13v47,0,52,-56,39,-93xm16,0r21,-25v-50,-58,-14,-166,73,-166v23,0,42,6,58,17r20,-22r13,12r-20,22v52,56,19,167,-71,167v-23,0,-44,-6,-60,-18r-21,24","w":219},"\u00df":{"d":"20,0r0,-177v0,-40,13,-86,85,-86v43,0,81,21,81,69v1,23,-15,43,-33,51v31,7,47,33,47,64v0,55,-45,96,-108,82r0,-42v31,9,57,-13,57,-42v0,-30,-22,-49,-57,-43r0,-34v23,4,46,-6,46,-31v0,-30,-24,-32,-35,-32v-21,0,-32,14,-32,35r0,186r-51,0","w":219},"\u00b9":{"d":"104,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0","w":141},"\u00ac":{"d":"199,-146r0,110r-39,0r0,-72r-143,0r0,-38r182,0","w":216},"\u00b5":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-19,30,-50,40,-73,22r0,70r-52,0r0,-252r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0","w":213},"\u00d0":{"d":"25,0r0,-112r-24,0r0,-42r24,0r0,-103r111,0v67,0,116,42,116,127v0,75,-38,130,-116,130r-111,0xm81,-210r0,56r58,0r0,42r-58,0r0,64v68,2,111,3,115,-77v4,-69,-40,-93,-115,-85","w":266},"\u00bd":{"d":"55,8r149,-268r30,0r-148,268r-31,0xm85,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0xm305,-110v0,48,-55,49,-77,81r75,0r0,29r-120,0v0,-38,22,-53,50,-71v14,-9,35,-18,35,-37v0,-13,-9,-22,-22,-22v-20,0,-27,20,-26,34r-37,0v0,-37,21,-63,65,-63v30,0,57,17,57,49","w":320},"\u00b1":{"d":"127,-182r0,47r72,0r0,39r-72,0r0,47r-38,0r0,-47r-72,0r0,-39r72,0r0,-47r38,0xm17,0r0,-39r182,0r0,39r-182,0","w":216},"\u00de":{"d":"25,0r0,-257r56,0r0,35r60,0v64,0,89,40,89,82v0,42,-25,83,-89,83r-60,0r0,57r-56,0xm81,-178r0,77v44,-2,94,11,94,-39v0,-49,-50,-36,-94,-38","w":240},"\u00bc":{"d":"248,0r0,-32r-69,0r0,-34r68,-85r36,0r0,90r20,0r0,29r-20,0r0,32r-35,0xm248,-61v-1,-17,2,-37,-1,-52r-41,52r42,0xm55,8r149,-268r30,0r-148,268r-31,0xm85,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0","w":321},"\u00f7":{"d":"17,-72r0,-38r182,0r0,38r-182,0xm78,-166v0,-17,13,-30,30,-30v16,0,31,13,31,30v0,15,-14,31,-30,31v-17,0,-31,-14,-31,-31xm78,-16v0,-17,13,-30,30,-30v16,0,31,13,31,30v0,15,-14,30,-30,30v-17,0,-31,-13,-31,-30","w":216},"\u00a6":{"d":"21,32r0,-90r38,0r0,90r-38,0xm59,-238r0,90r-38,0r0,-90r38,0","w":80},"\u00b0":{"d":"19,-204v0,-30,23,-53,53,-53v30,0,53,23,53,53v0,30,-23,54,-53,54v-30,0,-53,-24,-53,-54xm42,-204v0,40,60,41,60,0v0,-44,-60,-37,-60,0","w":144},"\u00fe":{"d":"19,66r0,-323r52,0r0,95v12,-20,32,-29,53,-29v58,0,85,47,85,100v0,50,-28,96,-82,96v-22,0,-44,-10,-56,-28r0,89r-52,0xm113,-33v58,0,64,-120,0,-120v-61,0,-60,120,0,120","w":219},"\u00be":{"d":"255,0r0,-32r-69,0r0,-34r68,-85r36,0r0,90r20,0r0,29r-20,0r0,32r-35,0xm255,-61r0,-52r-42,52r42,0xm86,8r149,-268r31,0r-149,268r-31,0xm65,-167r0,-25v14,0,34,0,34,-17v0,-12,-10,-19,-22,-19v-15,0,-24,12,-24,26r-35,0v1,-33,23,-55,59,-55v46,0,83,58,33,75v16,6,29,17,29,35v0,35,-29,52,-62,52v-39,0,-64,-21,-63,-58r35,0v1,15,9,29,27,29v14,0,27,-10,27,-23v0,-21,-23,-20,-38,-20","w":320},"\u00b2":{"d":"131,-208v-1,49,-55,49,-76,81r75,0r0,29r-120,0v0,-38,22,-53,50,-71v14,-9,35,-18,35,-37v0,-13,-9,-22,-22,-22v-20,0,-27,20,-26,34r-37,0v0,-37,21,-63,65,-63v30,0,56,17,56,49","w":141},"\u00ae":{"d":"6,-129v0,-82,65,-134,138,-134v73,0,138,52,138,134v0,82,-65,135,-138,135v-73,0,-138,-53,-138,-135xm42,-129v0,62,45,106,102,106v56,0,102,-44,102,-106v0,-61,-46,-105,-102,-105v-57,0,-102,44,-102,105xm90,-54r0,-150v52,1,116,-9,116,44v0,28,-17,38,-39,40r40,66r-31,0r-37,-64r-19,0r0,64r-30,0xm120,-181r0,40v25,-1,57,7,56,-21v-1,-24,-32,-18,-56,-19","w":288},"\u00f0":{"d":"110,-33v62,-1,61,-115,-1,-115v-62,1,-60,115,1,115xm48,-213r38,-20v-10,-7,-20,-13,-30,-18r33,-25v13,7,25,15,36,24r44,-22r19,21r-41,20v38,37,59,80,59,135v0,59,-37,103,-96,103v-58,0,-96,-39,-96,-94v0,-44,24,-93,82,-93v14,-1,32,3,50,14v-9,-20,-25,-35,-37,-45r-40,20","w":219},"\u00d7":{"d":"50,-6r-27,-27r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58","w":216},"\u00b3":{"d":"59,-167r0,-25v14,0,34,0,34,-17v0,-12,-10,-19,-22,-19v-15,0,-24,12,-24,26r-35,0v1,-33,23,-55,59,-55v46,0,83,58,33,75v16,6,29,17,29,35v0,35,-29,52,-62,52v-39,0,-64,-21,-63,-58r34,0v1,15,10,29,28,29v14,0,26,-10,26,-23v0,-21,-22,-20,-37,-20","w":141},"\u00a9":{"d":"6,-129v0,-82,65,-134,138,-134v73,0,138,52,138,134v0,82,-65,135,-138,135v-73,0,-138,-53,-138,-135xm42,-129v0,61,45,106,102,106v56,0,102,-45,102,-106v0,-62,-46,-105,-102,-105v-57,0,-102,43,-102,105xm185,-106r30,0v-6,36,-34,57,-66,57v-47,0,-77,-35,-77,-80v0,-46,28,-81,76,-81v33,0,60,20,65,56r-28,0v-14,-47,-85,-28,-79,24v-8,51,70,73,79,24","w":288},"\u00c1":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm187,-331r-55,51r-36,0r35,-51r56,0","w":246},"\u00c2":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm60,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":246},"\u00c4":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm136,-286r0,-42r49,0r0,42r-49,0xm62,-286r0,-42r49,0r0,42r-49,0","w":246},"\u00c0":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm115,-280r-56,-51r57,0r34,51r-35,0","w":246},"\u00c5":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm100,-307v0,14,9,25,23,25v14,0,23,-11,23,-25v0,-14,-9,-25,-23,-25v-14,0,-23,11,-23,25xm79,-307v0,-24,20,-44,44,-44v24,0,44,20,44,44v0,24,-20,44,-44,44v-24,0,-44,-20,-44,-44","w":246},"\u00c3":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm103,-328v19,0,56,28,62,0r24,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":246},"\u00c7":{"d":"251,-171r-55,0v-4,-26,-28,-45,-56,-45v-51,0,-70,44,-70,89v0,43,19,86,70,86v35,0,54,-24,58,-58r55,0v-6,64,-49,104,-112,105r-9,13v18,-6,46,1,46,23v0,46,-59,39,-87,29r8,-18v10,4,44,16,44,-5v0,-23,-33,0,-36,-18r17,-25v-70,-7,-110,-63,-110,-132v0,-76,46,-136,126,-136v57,0,104,33,111,92","w":266},"\u00c9":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm181,-331r-56,51r-35,0r34,-51r57,0","w":233},"\u00ca":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm54,-280r40,-51r46,0r40,51r-42,0r-22,-29r-23,29r-39,0","w":233},"\u00cb":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm130,-286r0,-42r48,0r0,42r-48,0xm55,-286r0,-42r49,0r0,42r-49,0","w":233},"\u00c8":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm108,-280r-55,-51r56,0r35,51r-36,0","w":233},"\u00cd":{"d":"25,0r0,-257r56,0r0,257r-56,0xm117,-331r-55,51r-36,0r34,-51r57,0","w":106},"\u00ce":{"d":"25,0r0,-257r56,0r0,257r-56,0xm-10,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":106},"\u00cf":{"d":"25,0r0,-257r56,0r0,257r-56,0xm66,-286r0,-42r48,0r0,42r-48,0xm-8,-286r0,-42r48,0r0,42r-48,0","w":106},"\u00cc":{"d":"25,0r0,-257r56,0r0,257r-56,0xm45,-280r-56,-51r57,0r34,51r-35,0","w":106},"\u00d1":{"d":"25,0r0,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0xm113,-328v19,0,56,28,62,0r24,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":266},"\u00d3":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm204,-331r-55,51r-36,0r35,-51r56,0","w":280},"\u00d4":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm77,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":280},"\u00d6":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm153,-286r0,-42r49,0r0,42r-49,0xm79,-286r0,-42r48,0r0,42r-48,0","w":280},"\u00d2":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm132,-280r-56,-51r57,0r34,51r-35,0","w":280},"\u00d5":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm120,-328v16,0,31,12,46,13v11,0,15,-6,15,-13r25,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":280},"\u00da":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm197,-331r-55,51r-36,0r35,-51r56,0","w":266},"\u00db":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm70,-280r40,-51r47,0r40,51r-43,0r-22,-29r-23,29r-39,0","w":266},"\u00dc":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm146,-286r0,-42r49,0r0,42r-49,0xm72,-286r0,-42r49,0r0,42r-49,0","w":266},"\u00d9":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm125,-280r-56,-51r57,0r35,51r-36,0","w":266},"\u00dd":{"d":"91,0r0,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0xm184,-331r-55,51r-36,0r34,-51r57,0","w":240,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":27,"\u00fa":27,"\u00fb":27,"\u00fc":27,"\u00f9":27,":":29,";":24,"i":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"p":27}},"\u00e1":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm167,-260r-55,51r-36,0r35,-51r56,0","w":206},"\u00e2":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm40,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":206},"\u00e4":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm116,-215r0,-42r49,0r0,42r-49,0xm42,-215r0,-42r49,0r0,42r-49,0","w":206},"\u00e0":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm95,-209r-55,-51r56,0r35,51r-36,0","w":206},"\u00e5":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm81,-236v0,14,8,25,22,25v14,0,23,-11,23,-25v0,-14,-9,-25,-23,-25v-14,0,-22,11,-22,25xm59,-236v0,-24,20,-44,44,-44v24,0,45,20,45,44v0,24,-21,44,-45,44v-24,0,-44,-20,-44,-44","w":206},"\u00e3":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm83,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-7,18,-13,41,-41,41v-25,0,-61,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":206},"\u00e7":{"d":"196,-121r-50,0v-3,-21,-17,-32,-38,-32v-33,0,-43,34,-43,61v0,27,10,59,42,59v24,0,38,-15,41,-38r49,0v-6,48,-38,75,-85,76v-2,4,-10,11,-9,14v18,-6,45,1,45,23v0,46,-59,39,-87,29r8,-18v10,4,44,16,44,-5v0,-23,-32,-1,-36,-18r18,-26v-49,-5,-81,-43,-81,-94v0,-58,35,-101,95,-101v44,0,84,22,87,70","w":206},"\u00e9":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm167,-260r-55,51r-36,0r35,-51r56,0","w":206},"\u00ea":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm40,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":206},"\u00eb":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm116,-215r0,-42r49,0r0,42r-49,0xm42,-215r0,-42r49,0r0,42r-49,0","w":206},"\u00e8":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm95,-209r-55,-51r56,0r35,51r-36,0","w":206},"\u00ed":{"d":"21,0r0,-186r51,0r0,186r-51,0xm111,-260r-56,51r-36,0r35,-51r57,0","w":92},"\u00ee":{"d":"21,0r0,-186r51,0r0,186r-51,0xm-17,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":92},"\u00ef":{"d":"21,0r0,-186r51,0r0,186r-51,0xm59,-215r0,-42r49,0r0,42r-49,0xm-15,-215r0,-42r49,0r0,42r-49,0","w":92},"\u00ec":{"d":"21,0r0,-186r51,0r0,186r-51,0xm38,-209r-55,-51r56,0r35,51r-36,0","w":92},"\u00f1":{"d":"19,0r0,-186r49,0v1,8,-2,20,1,26v13,-21,35,-31,57,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0xm86,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-6,19,-13,41,-41,41v-25,0,-61,-29,-69,3r-22,0v5,-21,13,-44,45,-44","w":213},"\u00f3":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm174,-260r-56,51r-35,0r34,-51r57,0","w":219},"\u00f4":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm47,-209r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":219},"\u00f6":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm123,-215r0,-42r48,0r0,42r-48,0xm49,-215r0,-42r48,0r0,42r-48,0","w":219},"\u00f2":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm102,-209r-56,-51r57,0r34,51r-35,0","w":219},"\u00f5":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm89,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,13,-44,45,-44","w":219},"\u00fa":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm171,-260r-56,51r-35,0r34,-51r57,0","w":213},"\u00fb":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm44,-209r40,-51r46,0r40,51r-42,0r-23,-29r-23,29r-38,0","w":213},"\u00fc":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm120,-215r0,-42r48,0r0,42r-48,0xm45,-215r0,-42r49,0r0,42r-49,0","w":213},"\u00f9":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm98,-209r-55,-51r56,0r35,51r-36,0","w":213},"\u00fd":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0xm157,-260r-55,51r-36,0r35,-51r56,0","w":186,"k":{",":20,".":20}},"\u00ff":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0xm106,-215r0,-42r49,0r0,42r-49,0xm32,-215r0,-42r49,0r0,42r-49,0","w":186,"k":{",":20,".":20}},"\u20ac":{"d":"35,-164v10,-78,96,-123,172,-78r-22,45v-41,-28,-86,-22,-97,33r88,0r-11,26r-81,0r0,15r76,0r-11,26r-63,0v12,66,65,71,109,34r0,55v-75,40,-158,-10,-162,-89r-27,0r11,-26r14,0v0,-8,1,-12,1,-15r-27,0r12,-26r18,0"},"\u00a0":{"w":100},"\u00ad":{"d":"19,-76r0,-44r108,0r0,44r-108,0","w":146}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Lt
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeueLT","font-weight":300,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 4 3 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-26 -348 325 77","underline-thickness":"18","underline-position":"-18","stemh":"19","stemv":"23","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"37,-64r-6,-116r0,-77r25,0r0,77r-6,116r-13,0xm59,0r-31,0r0,-38r31,0r0,38","w":86},"\"":{"d":"31,-170r0,-87r23,0r0,87r-23,0xm79,-170r0,-87r23,0r0,87r-23,0","w":133},"#":{"d":"179,-96r0,16r-40,0r-11,80r-18,0r11,-80r-51,0r-11,80r-18,0r11,-80r-39,0r0,-16r41,0r8,-57r-39,0r0,-16r41,0r12,-80r18,0r-12,80r51,0r11,-80r18,0r-11,80r38,0r0,16r-40,0r-8,57r38,0xm131,-153r-51,0r-8,57r51,0"},"$":{"d":"107,-117r0,103v31,0,60,-15,60,-52v0,-34,-32,-44,-60,-51xm93,-143r0,-100v-29,0,-53,15,-53,53v0,33,26,41,53,47xm10,-82r23,0v0,41,22,64,60,68r0,-106v-41,-9,-76,-22,-76,-72v0,-43,34,-70,76,-70r0,-29r14,0r0,29v42,0,77,31,76,78r-23,0v0,-36,-22,-59,-53,-59r0,103v41,9,83,23,83,73v0,47,-41,72,-83,72r0,31r-14,0r0,-31v-56,-5,-81,-32,-83,-87"},"%":{"d":"82,-238v-30,0,-38,29,-38,52v0,23,8,52,38,52v30,0,38,-29,38,-52v0,-23,-8,-52,-38,-52xm82,-254v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-131v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-114v-30,0,-38,29,-38,52v0,23,8,51,38,51v30,0,38,-28,38,-51v0,-23,-8,-52,-38,-52xm68,12r163,-273r17,0r-162,273r-18,0","w":320},"&":{"d":"153,-50r-64,-78v-24,13,-52,33,-52,64v0,30,27,50,56,50v26,0,46,-15,60,-36xm195,0r-28,-33v-37,58,-154,50,-153,-34v0,-37,34,-61,63,-76v-14,-18,-32,-37,-32,-62v0,-31,26,-52,57,-52v31,0,57,21,57,52v0,32,-24,51,-50,67r56,67v6,-13,7,-24,7,-43r23,0v0,14,-3,40,-15,62r43,52r-28,0xm102,-238v-19,0,-34,12,-34,33v0,18,18,38,29,52v18,-11,39,-27,39,-52v0,-21,-15,-33,-34,-33","w":219},"(":{"d":"87,69r-18,0v-68,-98,-66,-234,0,-331r18,0v-61,98,-61,234,0,331","w":86},")":{"d":"0,-262r18,0v67,97,65,234,0,331r-18,0v61,-98,61,-234,0,-331","w":86},"*":{"d":"51,-200r-41,-14r5,-14r41,15r0,-44r14,0r0,44r42,-15r5,14r-42,14r25,35r-11,8r-26,-36r-27,36r-11,-8","w":126},"+":{"d":"99,-100r0,-81r19,0r0,81r81,0r0,19r-81,0r0,81r-19,0r0,-81r-81,0r0,-19r81,0","w":216},",":{"d":"35,-38r30,0v1,41,2,77,-32,87r0,-15v12,-4,18,-22,17,-34r-15,0r0,-38","w":100},"-":{"d":"112,-89r-90,0r0,-20r90,0r0,20","w":133},".":{"d":"65,0r-30,0r0,-38r30,0r0,38","w":100},"\/":{"d":"15,5r-20,0r111,-267r19,0","w":119},"0":{"d":"100,-235v-58,0,-65,66,-65,110v0,44,7,111,65,111v58,0,65,-67,65,-111v0,-44,-7,-110,-65,-110xm100,-254v73,0,88,70,88,129v0,59,-15,130,-88,130v-73,0,-88,-70,-88,-129v0,-59,15,-130,88,-130"},"1":{"d":"35,-187r0,-16v40,-1,64,-3,71,-49r18,0r0,252r-22,0r0,-187r-67,0"},"2":{"d":"178,-183v-1,86,-117,91,-139,162r140,0r0,21r-166,0v2,-75,76,-95,121,-136v37,-33,21,-99,-35,-99v-41,0,-58,33,-57,70r-23,0v-1,-52,26,-89,81,-89v44,0,78,24,78,71"},"3":{"d":"12,-80r23,0v-1,40,22,66,63,66v33,0,64,-19,64,-55v-1,-43,-35,-58,-80,-54r0,-19v38,3,71,-6,71,-46v0,-33,-25,-47,-55,-47v-38,0,-59,27,-58,64r-22,0v0,-48,30,-83,79,-83v40,0,78,19,78,64v0,27,-15,50,-42,56v33,5,52,30,52,63v0,49,-41,76,-87,76v-52,0,-90,-31,-86,-85"},"4":{"d":"11,-63r0,-22r116,-167r21,0r0,170r38,0r0,19r-38,0r0,63r-21,0r0,-63r-116,0xm31,-82r96,0r-1,-137"},"5":{"d":"13,-72r23,0v1,35,27,58,62,58v39,0,63,-31,63,-68v0,-65,-90,-89,-121,-36r-19,0r24,-131r126,0r0,21r-110,0r-16,84v49,-51,138,-11,138,64v0,49,-39,85,-87,85v-47,0,-82,-29,-83,-77"},"6":{"d":"104,-145v-40,0,-62,30,-62,67v0,36,19,64,63,64v36,0,60,-29,60,-64v0,-37,-22,-67,-61,-67xm182,-188r-23,0v-4,-28,-23,-47,-52,-47v-58,-1,-72,69,-69,113v12,-25,39,-42,67,-42v50,0,83,35,83,84v0,49,-35,85,-85,85v-61,0,-89,-36,-89,-134v0,-30,8,-125,90,-125v44,0,73,22,78,66"},"7":{"d":"18,-228r0,-21r162,0r0,21v-31,33,-96,111,-102,228r-24,0v6,-85,34,-148,104,-228r-140,0"},"8":{"d":"100,-14v35,0,64,-18,64,-57v0,-36,-30,-54,-64,-54v-35,0,-64,17,-64,54v0,38,29,57,64,57xm176,-191v1,28,-17,46,-41,56v32,6,52,30,52,64v0,51,-40,76,-87,76v-47,0,-87,-25,-87,-76v0,-34,22,-57,51,-65v-26,-8,-41,-27,-41,-55v1,-84,152,-85,153,0xm100,-144v28,0,54,-15,54,-47v0,-29,-24,-44,-54,-44v-28,0,-54,15,-54,44v0,34,27,47,54,47"},"9":{"d":"96,-104v40,0,62,-29,62,-66v0,-36,-19,-65,-63,-65v-36,0,-60,30,-60,65v0,37,22,66,61,66xm18,-60r23,0v4,28,24,46,53,46v58,1,71,-68,68,-112v-12,25,-39,41,-67,41v-50,0,-83,-35,-83,-84v0,-49,36,-85,86,-85v61,0,88,36,88,134v0,30,-8,125,-90,125v-44,0,-73,-21,-78,-65"},":":{"d":"65,-142r-30,0r0,-38r30,0r0,38xm65,0r-30,0r0,-38r30,0r0,38","w":100},";":{"d":"35,-38r30,0v1,41,2,77,-32,87r0,-15v12,-4,18,-22,17,-34r-15,0r0,-38xm65,-142r-30,0r0,-38r30,0r0,38","w":100},"<":{"d":"199,-17r0,20r-182,-84r0,-20r182,-84r0,20r-160,74","w":216},"=":{"d":"199,-136r0,19r-181,0r0,-19r181,0xm199,-65r0,19r-181,0r0,-19r181,0","w":216},">":{"d":"17,-17r160,-74r-160,-74r0,-20r182,84r0,20r-182,84r0,-20","w":216},"?":{"d":"87,-64v-11,-64,65,-75,65,-131v0,-29,-24,-48,-52,-48v-39,0,-59,28,-58,65r-23,0v0,-51,30,-84,82,-84v40,0,73,24,73,66v0,61,-78,70,-65,132r-22,0xm83,0r0,-38r30,0r0,38r-30,0","w":193},"@":{"d":"153,-184v-37,0,-61,50,-61,84v0,22,13,34,30,34v33,0,60,-52,60,-84v0,-17,-15,-34,-29,-34xm221,-196r-35,104v-5,15,-7,30,5,30v32,0,61,-50,61,-90v0,-59,-47,-94,-102,-94v-67,0,-114,53,-114,119v0,66,48,116,114,116v35,0,72,-18,93,-48r19,0v-22,40,-67,64,-112,64v-77,0,-133,-59,-133,-135v0,-75,59,-132,132,-132v69,0,122,46,122,112v0,58,-43,104,-83,104v-12,0,-24,-8,-25,-24v-26,39,-94,26,-94,-29v0,-50,35,-104,86,-104v16,0,30,9,38,31r9,-24r19,0","w":288},"A":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0","w":226},"B":{"d":"50,-123r0,102v66,-3,149,18,152,-53v2,-62,-90,-48,-152,-49xm26,0r0,-257v81,4,188,-23,191,63v0,27,-18,52,-45,58v33,4,55,30,55,63v0,24,-8,73,-92,73r-109,0xm50,-236r0,92v57,0,143,9,143,-44v0,-62,-83,-46,-143,-48","w":240},"C":{"d":"238,-179r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83r25,0v-7,63,-47,103,-107,103v-81,0,-121,-64,-121,-134v0,-70,40,-133,121,-133v49,0,97,29,103,83","w":253},"D":{"d":"50,-236r0,215v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107xm26,0r0,-257r89,0v77,2,118,44,118,128v0,84,-41,129,-118,129r-89,0","w":246},"E":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0","w":213},"F":{"d":"26,0r0,-257r163,0r0,21r-139,0r0,93r124,0r0,21r-124,0r0,122r-24,0","w":193,"k":{"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46}},"G":{"d":"246,-131r0,131r-18,0v-2,-15,0,-34,-4,-47v-17,37,-52,52,-89,52v-81,0,-121,-64,-121,-134v0,-70,40,-133,121,-133v54,0,98,29,107,85r-24,0v-3,-30,-34,-65,-83,-65v-132,1,-130,226,0,227v57,0,90,-41,89,-95r-88,0r0,-21r110,0","w":266},"H":{"d":"26,0r0,-257r24,0r0,112r153,0r0,-112r25,0r0,257r-25,0r0,-125r-153,0r0,125r-24,0","w":253},"I":{"d":"28,0r0,-257r24,0r0,257r-24,0","w":79},"J":{"d":"130,-82r0,-175r24,0r0,185v0,52,-20,77,-75,77v-59,0,-71,-42,-71,-87r24,0v1,22,-2,67,49,67v38,0,49,-20,49,-67","w":180},"K":{"d":"26,0r0,-257r24,0r0,138r150,-138r33,0r-115,106r120,151r-31,0r-107,-134r-50,46r0,88r-24,0","w":233},"L":{"d":"26,0r0,-257r24,0r0,236r144,0r0,21r-168,0","w":193,"k":{"T":33,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"M":{"d":"25,0r0,-257r36,0r89,225r89,-225r36,0r0,257r-25,0r-1,-222r-87,222r-23,0r-89,-222r0,222r-25,0","w":299},"N":{"d":"26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0","w":253},"O":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227","w":266},"P":{"d":"26,0r0,-257r114,0v46,0,76,27,76,73v0,46,-30,74,-76,74r-90,0r0,110r-24,0xm50,-236r0,105v63,-2,142,15,142,-53v0,-67,-79,-50,-142,-52","w":226,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":55,".":55}},"Q":{"d":"160,-69r37,28v59,-60,42,-201,-63,-201v-132,1,-130,226,0,227v19,0,34,-5,47,-13r-34,-26xm252,1r-12,16r-40,-31v-18,12,-39,19,-66,19v-81,0,-122,-64,-122,-134v0,-70,41,-133,122,-133v125,0,155,163,82,235","w":266},"R":{"d":"202,0v-16,-45,6,-114,-59,-114r-93,0r0,114r-24,0r0,-257v85,3,195,-22,196,67v1,33,-19,58,-50,66v62,4,34,81,57,124r-27,0xm50,-236r0,101v63,-2,144,15,147,-50v3,-65,-85,-50,-147,-51","w":240,"k":{"T":-2,"V":-2,"W":-2,"y":-9,"\u00fd":-9,"\u00ff":-9,"Y":5,"\u00dd":5}},"S":{"d":"13,-85r24,0v-1,53,37,70,84,70v27,0,68,-16,68,-53v0,-83,-167,-24,-168,-122v0,-25,17,-72,89,-72v51,0,95,26,95,79r-25,0v2,-72,-134,-84,-134,-7v0,47,64,42,101,54v35,12,67,26,67,68v0,18,-7,73,-98,73v-61,0,-106,-27,-103,-90","w":226},"T":{"d":"-2,-236r0,-21r204,0r0,21r-90,0r0,236r-24,0r0,-236r-90,0","k":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":40,"\u00e5":40,"\u00e0":40,"\u00e4":40,"\u00e2":40,"w":40,"y":40,"\u00fd":40,"\u00ff":40,"A":24,"\u00c6":24,"\u00c1":24,"\u00c2":24,"\u00c4":24,"\u00c0":24,"\u00c5":24,"\u00c3":24,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":40,"\u00e6":40,"\u00e1":40,"i":-9,"\u00ed":-9,"\u00ee":-9,"\u00ef":-9,"\u00ec":-9,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":40,";":40}},"U":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262","w":246},"V":{"d":"93,0r-96,-257r27,0r84,230r83,-230r26,0r-96,257r-28,0","w":213,"k":{"\u00f6":20,"\u00f4":20,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"i":-2,"\u00ed":-2,"\u00ee":-2,"\u00ef":-2,"\u00ec":-2,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":27,";":27}},"W":{"d":"71,0r-71,-257r26,0r59,225r63,-225r31,0r63,225r59,-225r24,0r-70,257r-26,0r-66,-230r-65,230r-27,0","w":326,"k":{"\u00fc":6,"\u00f6":6,"\u00ea":6,"\u00e4":13,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":27,".":27,"e":6,"\u00e9":6,"\u00eb":6,"\u00e8":6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f2":6,"\u00f5":6,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"i":-9,"\u00ed":-9,"\u00ee":-9,"\u00ef":-9,"\u00ec":-9,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"X":{"d":"88,-132r-87,-125r29,0r73,108r75,-108r27,0r-88,125r93,132r-29,0r-78,-113r-80,113r-27,0","w":206},"Y":{"d":"98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0","w":219,"k":{"\u00fc":27,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":44,".":36,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"u":27,"\u00fa":27,"\u00fb":27,"\u00f9":27,":":33,";":33,"p":27}},"Z":{"d":"13,-236r0,-21r185,0r0,22r-169,214r173,0r0,21r-200,0r0,-22r169,-214r-158,0","w":206},"[":{"d":"85,69r-58,0r0,-331r58,0r0,19r-35,0r0,293r35,0r0,19","w":86},"\\":{"d":"125,5r-20,0r-110,-267r19,0","w":119},"]":{"d":"1,-262r58,0r0,331r-58,0r0,-19r36,0r0,-293r-36,0r0,-19","w":86},"^":{"d":"37,-86r-21,0r83,-163r18,0r83,163r-20,0r-72,-140","w":216},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43","w":186},"b":{"d":"109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158xm22,0r0,-257r22,0r1,107v10,-27,36,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-31,1,-55,-17,-67,-40r0,35r-20,0","w":206},"c":{"d":"175,-127r-22,0v-6,-28,-23,-45,-53,-45v-44,0,-65,39,-65,79v0,40,21,79,65,79v28,0,51,-22,54,-53r23,0v-6,45,-36,72,-77,72v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98v40,0,70,22,75,64","w":186},"d":{"d":"97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158xm185,-257r0,257r-21,0v-1,-11,2,-26,-1,-35v-10,24,-39,40,-66,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v28,0,55,14,65,41r0,-107r23,0","w":206},"e":{"d":"178,-87r-143,0v0,33,17,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66","w":186},"f":{"d":"93,-186r0,19r-36,0r0,167r-23,0r0,-167r-32,0r0,-19r32,0v-5,-48,12,-79,64,-70r0,20v-36,-9,-46,13,-41,50r36,0","w":93,"k":{"f":6,"\u00df":6}},"g":{"d":"96,-21v39,0,60,-36,60,-74v0,-36,-17,-77,-60,-77v-43,0,-61,38,-61,77v0,37,19,74,61,74xm179,-186r0,171v0,55,-22,89,-83,89v-37,0,-74,-16,-77,-56r23,0v5,27,29,37,54,37v50,0,66,-42,59,-95v-10,23,-32,38,-59,38v-59,0,-84,-43,-84,-96v0,-51,30,-93,84,-93v28,-1,49,18,60,37r0,-32r23,0"},"h":{"d":"21,0r0,-257r23,0r1,103v8,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0","w":193},"i":{"d":"22,0r0,-186r23,0r0,186r-23,0xm22,-221r0,-36r23,0r0,36r-23,0","w":66},"j":{"d":"22,23r0,-209r23,0r0,203v2,34,-16,59,-56,51r0,-19v21,5,33,-6,33,-26xm22,-221r0,-36r23,0r0,36r-23,0","w":66},"k":{"d":"22,0r0,-257r22,0r0,161r103,-90r30,0r-79,69r85,117r-29,0r-73,-101r-37,30r0,71r-22,0","w":180},"l":{"d":"22,0r0,-257r23,0r0,257r-23,0","w":66},"m":{"d":"22,0r0,-186r20,0v2,10,-3,26,2,32v16,-44,99,-53,114,-1v11,-24,35,-36,59,-36v87,0,55,114,61,191r-22,0r0,-125v0,-31,-12,-47,-44,-47v-74,0,-45,103,-51,172r-22,0r0,-126v0,-25,-10,-46,-39,-46v-76,0,-53,100,-56,172r-22,0","w":299},"n":{"d":"21,0r0,-186r23,0v1,10,-2,24,1,32v8,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0","w":193},"o":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79"},"p":{"d":"109,-14v83,-1,82,-157,0,-158v-50,0,-65,37,-65,79v0,39,17,79,65,79xm22,69r0,-255r20,0v1,11,-2,27,1,36v10,-25,36,-41,66,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-29,1,-53,-15,-65,-40r0,104r-22,0","w":206},"q":{"d":"97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158xm185,-186r0,255r-23,0r0,-104v-10,27,-37,40,-65,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v28,-1,55,19,67,41r0,-36r21,0","w":206},"r":{"d":"22,0r0,-186r20,0v1,14,-2,32,1,44v12,-30,37,-47,70,-46r0,22v-41,-2,-69,28,-69,67r0,99r-22,0","w":113,"k":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"s":{"d":"156,-131r-23,0v-1,-28,-23,-41,-49,-41v-20,0,-44,8,-44,32v15,55,123,17,122,90v0,40,-40,55,-75,55v-43,0,-72,-20,-76,-65r23,0v2,31,25,46,55,46v21,0,50,-9,50,-35v0,-58,-121,-20,-121,-90v0,-38,36,-52,69,-52v37,0,68,20,69,60","w":173},"t":{"d":"58,-242r0,56r37,0r0,19r-37,0r0,126v-4,23,16,27,37,23r0,19v-36,3,-60,0,-60,-41r0,-127r-32,0r0,-19r32,0r0,-56r23,0","w":106},"u":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0","w":193},"v":{"d":"72,0r-71,-186r25,0r59,163r58,-163r23,0r-70,186r-24,0","w":166,"k":{",":27,".":27}},"w":{"d":"63,0r-60,-186r24,0r48,159r46,-159r25,0r46,159r48,-159r24,0r-60,186r-25,0r-46,-156r-46,156r-24,0","w":266,"k":{",":20,".":20}},"x":{"d":"0,0r72,-96r-66,-90r28,0r53,71r52,-71r28,0r-67,89r73,97r-29,0r-58,-78r-58,78r-28,0","w":173},"y":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49","w":166,"k":{",":33,".":33}},"z":{"d":"156,-170r-123,151r128,0r0,19r-156,0r0,-18r122,-149r-113,0r0,-19r142,0r0,16","w":166},"{":{"d":"105,69v-56,11,-50,-48,-49,-99v0,-29,-5,-57,-26,-57r0,-19v62,-6,-21,-170,75,-156r0,19v-38,-4,-27,51,-27,87v0,40,-21,54,-25,60v5,3,25,19,25,58v0,34,-13,91,27,88r0,19","w":119},"|":{"d":"31,77r0,-360r19,0r0,360r-19,0","w":79},"}":{"d":"14,-262v55,-11,51,46,50,98v0,29,5,57,26,57r0,20v-62,6,21,170,-76,156r0,-19v39,5,27,-52,27,-88v0,-40,22,-53,26,-59v-5,-3,-26,-20,-26,-59v0,-34,13,-91,-27,-87r0,-19","w":119},"~":{"d":"70,-112v24,-1,56,23,77,23v14,0,23,-11,31,-24r13,13v-11,15,-23,31,-45,31v-37,0,-90,-50,-108,1r-13,-13v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"50,-122r6,117r0,74r-25,0r0,-74r6,-117r13,0xm28,-186r31,0r0,38r-31,0r0,-38","w":86},"\u00a2":{"d":"97,-14r0,-157v-74,11,-73,145,0,157xm183,-127r-23,0v-6,-27,-22,-44,-49,-45r0,158v26,-1,47,-23,50,-53r23,0v-6,43,-34,71,-73,72r0,37r-14,0r0,-37v-50,-5,-78,-48,-78,-98v0,-50,28,-92,78,-97r0,-32r14,0r0,31v37,1,67,23,72,64"},"\u00a3":{"d":"195,-17v-43,53,-120,-17,-167,22r-13,-19v33,-23,54,-63,31,-105r-29,0r0,-11r22,0v-11,-18,-20,-37,-20,-58v0,-51,42,-74,83,-74v53,0,84,32,83,85r-23,0v0,-39,-20,-66,-60,-66v-31,0,-60,17,-60,56v0,24,12,36,21,57r58,0r0,11r-51,0v22,40,-5,81,-30,101v46,-31,109,31,144,-16"},"\u00a5":{"d":"40,-109r0,-17r38,0r-76,-131r26,0r72,131r72,-131r25,0r-76,131r39,0r0,17v-16,2,-39,-4,-49,3r0,26r49,0r0,17r-49,0r0,63r-23,0r0,-63r-48,0r0,-17r48,0v-1,-9,2,-23,-2,-29r-46,0"},"\u00a7":{"d":"161,-83v0,-38,-62,-57,-93,-78v-17,7,-29,19,-29,39v0,36,61,57,92,78v17,-7,30,-19,30,-39xm184,-83v0,24,-18,42,-39,50v40,32,6,91,-43,91v-40,0,-67,-23,-67,-64r23,0v-1,24,17,45,42,45v20,0,40,-9,40,-32v0,-54,-124,-57,-124,-128v0,-24,18,-43,39,-51v-40,-32,-7,-90,43,-90v40,0,67,22,67,63r-23,0v1,-24,-17,-44,-42,-44v-20,0,-40,9,-40,32v0,54,124,57,124,128"},"\u00a4":{"d":"10,-49r21,-20v-27,-29,-26,-82,0,-111r-21,-20r14,-14r20,20v29,-25,83,-27,112,0r19,-20r14,14r-19,19v27,30,26,83,0,113r19,19r-14,14r-19,-20v-29,26,-83,27,-112,0r-20,20xm34,-125v0,39,29,69,66,69v37,0,67,-30,67,-69v0,-39,-30,-68,-67,-68v-37,0,-66,29,-66,68"},"'":{"d":"39,-170r0,-87r23,0r0,87r-23,0","w":100},"\u00ab":{"d":"127,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24xm69,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24","w":153},"\u00b7":{"d":"50,-135v12,0,21,10,21,22v0,11,-10,20,-21,20v-12,0,-21,-9,-21,-21v0,-11,10,-21,21,-21","w":100},"\u00b6":{"d":"98,64r0,-182v-42,0,-74,-31,-74,-68v0,-45,30,-71,80,-71r83,0r0,321r-23,0r0,-302r-43,0r0,302r-23,0","w":216},"\u00bb":{"d":"84,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22xm26,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22","w":153},"\u00bf":{"d":"107,-124v11,64,-65,75,-65,130v0,29,24,49,52,49v39,0,59,-28,58,-65r22,0v0,51,-29,84,-81,84v-40,0,-74,-24,-74,-66v0,-61,78,-70,65,-132r23,0xm111,-186r0,38r-31,0r0,-38r31,0","w":193},"`":{"d":"36,-212r-47,-50r28,0r38,50r-19,0","w":66},"\u00b4":{"d":"78,-262r-48,50r-18,0r38,-50r28,0","w":66},"\u00af":{"d":"93,-228r-119,0r0,-16r119,0r0,16","w":66},"\u00a8":{"d":"77,-218r-24,0r0,-36r24,0r0,36xm14,-218r-25,0r0,-36r25,0r0,36","w":66},"\u00b8":{"d":"11,28v12,-9,12,-30,34,-28r-15,21v17,-3,41,0,41,22v0,35,-47,36,-73,24r5,-12v13,5,47,12,47,-10v0,-24,-33,-5,-39,-17","w":66},"\u00c6":{"d":"185,-122r0,101r133,0r0,21r-158,0r0,-81r-93,0r-42,81r-28,0r135,-257r185,0r0,21r-132,0r0,93r124,0r0,21r-124,0xm78,-102r82,0r0,-134r-14,0","w":326},"\u00aa":{"d":"82,-198v-21,12,-71,5,-67,30v6,37,69,20,67,-13r0,-17xm19,-215r-16,0v1,-28,21,-39,50,-39v23,0,46,6,46,36r0,62v0,7,8,10,14,7r0,12v-17,4,-28,-4,-28,-19v-15,33,-87,34,-87,-11v0,-33,33,-35,65,-38v12,-1,19,-3,19,-11v0,-19,-15,-24,-32,-24v-17,0,-31,8,-31,25","w":111},"\u00d8":{"d":"209,-203r-143,159v16,18,38,29,68,29v97,-1,118,-120,75,-188xm58,-54r143,-159v-15,-17,-37,-29,-67,-29v-98,0,-119,119,-76,188xm242,-259r9,8r-26,30v61,78,28,226,-91,226v-36,0,-64,-12,-84,-32r-27,31r-10,-9r29,-31v-61,-80,-28,-229,92,-226v35,0,62,12,82,31","w":266},"\u00ba":{"d":"58,-132v-37,0,-57,-27,-57,-61v0,-34,20,-61,57,-61v41,0,61,27,61,61v0,34,-20,61,-61,61xm60,-147v56,0,56,-93,0,-93v-56,0,-56,93,0,93","w":120},"\u00e6":{"d":"163,-106r117,0v0,-34,-23,-66,-59,-66v-38,0,-59,31,-58,66xm140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm303,-87r-140,0v-3,40,17,73,61,73v31,0,49,-17,55,-46r22,0v-8,74,-127,91,-149,19v-12,58,-140,68,-140,-8v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43r-23,0v2,-44,34,-62,76,-62v25,0,58,6,62,38v10,-26,38,-38,65,-38v61,0,81,50,81,104","w":313},"\u00f8":{"d":"48,-44r98,-106v-10,-13,-26,-22,-46,-22v-62,0,-80,80,-52,128xm153,-141r-99,106v10,13,26,21,46,21v62,0,80,-78,53,-127xm161,-167v9,-7,17,-28,27,-13r-20,22v43,59,15,166,-68,163v-26,0,-46,-9,-60,-24r-22,23r-8,-7r22,-24v-42,-58,-16,-164,68,-164v26,0,47,9,61,24"},"\u00df":{"d":"22,0r0,-193v0,-48,29,-69,72,-69v39,0,70,22,70,63v1,27,-17,48,-41,55v35,3,54,33,54,66v-1,59,-41,86,-98,80r0,-20v40,8,75,-9,75,-56v0,-50,-31,-58,-75,-58r0,-20v32,0,62,-9,62,-46v0,-27,-21,-45,-47,-45v-36,0,-49,18,-49,52r0,191r-23,0","w":193},"\u00b9":{"d":"13,-210r0,-14v26,-1,41,-2,46,-27r14,0r0,152r-17,0r0,-111r-43,0","w":119},"\u00ac":{"d":"180,-40r0,-77r-162,0r0,-19r181,0r0,96r-19,0","w":216},"\u00b5":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-17,38,-69,50,-106,26r0,76r-23,0r0,-255r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0","w":193},"\u00d0":{"d":"50,-236r0,95r85,0r0,16r-85,0r0,104v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107xm26,-141r0,-116r89,0v77,2,118,44,118,128v0,84,-41,129,-118,129r-89,0r0,-125r-26,0r0,-16r26,0","w":246},"\u00bd":{"d":"48,12r163,-273r17,0r-163,273r-17,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0xm173,0v0,-60,93,-56,93,-112v0,-18,-17,-29,-37,-29v-26,0,-36,20,-36,41r-17,0v-1,-33,17,-56,54,-56v30,0,53,14,53,45v0,52,-74,54,-91,97r90,0r0,14r-109,0","w":300},"\u00b1":{"d":"99,-116r0,-65r19,0r0,65r81,0r0,19r-81,0r0,65r-19,0r0,-65r-81,0r0,-19r81,0xm18,0r0,-19r181,0r0,19r-181,0","w":216},"\u00de":{"d":"26,0r0,-257r24,0r0,42r90,0v46,0,76,28,76,74v0,46,-30,73,-76,73r-90,0r0,68r-24,0xm50,-194r0,105v63,-2,142,15,142,-52v0,-67,-79,-52,-142,-53","w":226},"\u00bc":{"d":"231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm48,12r163,-273r17,0r-163,273r-17,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0","w":300},"\u00f7":{"d":"199,-81r-181,0r0,-19r181,0r0,19xm88,-163v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20xm88,-18v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20","w":216},"\u00a6":{"d":"31,32r0,-90r19,0r0,90r-19,0xm31,-148r0,-90r19,0r0,90r-19,0","w":79},"\u00b0":{"d":"20,-202v0,-29,23,-52,52,-52v29,0,52,23,52,52v0,29,-23,52,-52,52v-29,0,-52,-23,-52,-52xm34,-202v0,21,17,37,38,37v21,0,38,-16,38,-37v0,-21,-17,-38,-38,-38v-21,0,-38,17,-38,38","w":144},"\u00fe":{"d":"109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158xm22,69r0,-326r22,0r1,107v10,-27,36,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-29,1,-53,-15,-65,-40r0,104r-22,0","w":206},"\u00be":{"d":"231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,16,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v21,3,34,17,34,37v0,31,-26,48,-58,48v-35,0,-60,-19,-57,-53r17,0v-1,23,14,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30xm62,12r163,-273r17,0r-162,273r-18,0","w":300},"\u00b2":{"d":"5,-99v0,-60,93,-56,93,-112v0,-18,-17,-29,-37,-29v-26,0,-35,20,-35,41r-17,0v-1,-33,17,-55,54,-55v30,0,52,14,52,45v-1,52,-74,53,-90,96r89,0r0,14r-109,0","w":119},"\u00ae":{"d":"144,-262v76,0,134,58,134,133v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133xm144,-243v-65,0,-113,50,-113,114v0,64,48,115,113,115v65,0,113,-51,113,-115v0,-64,-48,-114,-113,-114xm114,-120r0,69r-19,0r0,-155v49,0,110,-8,110,43v0,27,-18,39,-39,43r46,69r-22,0r-43,-69r-33,0xm114,-136v32,-1,72,8,72,-27v0,-34,-40,-26,-72,-27r0,54","w":288},"\u00f0":{"d":"99,-163v-46,0,-64,34,-64,74v0,39,19,75,64,75v42,0,64,-31,64,-76v0,-36,-18,-73,-64,-73xm49,-215r36,-20v-11,-7,-22,-14,-34,-20r13,-12v13,6,26,14,38,23r41,-23r11,11r-39,22v40,33,71,79,71,141v0,54,-28,98,-88,98v-58,0,-86,-41,-86,-95v0,-69,75,-117,134,-78v-12,-22,-29,-40,-48,-56r-38,21"},"\u00d7":{"d":"94,-90r-67,-68r13,-14r68,68r68,-68r13,14r-68,68r68,68r-13,13r-68,-68r-68,68r-13,-13","w":216},"\u00b3":{"d":"49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,16,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v21,3,34,17,34,37v0,31,-26,48,-58,48v-35,0,-60,-19,-57,-53r17,0v-1,23,14,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30","w":119},"\u00a9":{"d":"278,-129v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133v76,0,134,58,134,133xm257,-129v0,-64,-48,-114,-113,-114v-65,0,-113,50,-113,114v0,64,48,115,113,115v65,0,113,-51,113,-115xm214,-157r-19,0v-18,-68,-107,-36,-107,28v0,37,21,67,60,67v26,0,43,-16,47,-38r19,0v-5,35,-33,54,-67,54v-49,0,-78,-35,-78,-83v0,-89,132,-114,145,-28","w":288},"\u00c1":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm158,-328r-47,50r-19,0r38,-50r28,0","w":226},"\u00c2":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm126,-328r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":226},"\u00c4":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm158,-284r-25,0r0,-36r25,0r0,36xm94,-284r-25,0r0,-36r25,0r0,36","w":226},"\u00c0":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm117,-278r-48,-50r28,0r38,50r-18,0","w":226},"\u00c5":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm75,-310v0,-21,18,-38,39,-38v21,0,38,17,38,38v0,21,-17,39,-38,39v-21,0,-39,-18,-39,-39xm89,-310v0,14,11,25,25,25v14,0,24,-11,24,-25v0,-14,-10,-24,-24,-24v-14,0,-25,10,-25,24","w":226},"\u00c3":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm89,-319v25,1,58,34,67,-2r14,0v-3,17,-12,34,-31,34v-19,0,-35,-16,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":226},"\u00c7":{"d":"217,-98r25,0v-7,63,-47,103,-107,103r-12,16v17,-3,42,0,42,22v0,35,-47,37,-74,24r5,-12v13,5,48,12,48,-10v0,-24,-34,-5,-40,-17r18,-23v-73,-6,-108,-67,-108,-134v0,-70,40,-133,121,-133v49,0,97,29,103,83r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83","w":253},"\u00c9":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm151,-328r-47,50r-19,0r38,-50r28,0","w":213},"\u00ca":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm119,-328r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":213},"\u00cb":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm151,-284r-25,0r0,-36r25,0r0,36xm87,-284r-24,0r0,-36r24,0r0,36","w":213},"\u00c8":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm110,-278r-48,-50r28,0r38,50r-18,0","w":213},"\u00cd":{"d":"28,0r0,-257r24,0r0,257r-24,0xm85,-328r-48,50r-18,0r38,-50r28,0","w":79},"\u00ce":{"d":"28,0r0,-257r24,0r0,257r-24,0xm53,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":79},"\u00cf":{"d":"28,0r0,-257r24,0r0,257r-24,0xm84,-284r-24,0r0,-36r24,0r0,36xm21,-284r-25,0r0,-36r25,0r0,36","w":79},"\u00cc":{"d":"28,0r0,-257r24,0r0,257r-24,0xm43,-278r-47,-50r28,0r38,50r-19,0","w":79},"\u00d1":{"d":"26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0xm102,-319v25,1,58,34,68,-2r13,0v-3,17,-12,34,-31,34v-19,0,-35,-16,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":253},"\u00d3":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm178,-328r-48,50r-18,0r38,-50r28,0","w":266},"\u00d4":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm146,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":266},"\u00d6":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm177,-284r-24,0r0,-36r24,0r0,36xm114,-284r-25,0r0,-36r25,0r0,36","w":266},"\u00d2":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm136,-278r-47,-50r28,0r38,50r-19,0","w":266},"\u00d5":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm109,-319v25,1,57,34,67,-2r14,0v-3,17,-13,34,-32,34v-18,0,-34,-16,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":266},"\u00da":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm168,-328r-48,50r-18,0r38,-50r28,0","w":246},"\u00db":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm136,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":246},"\u00dc":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm167,-284r-24,0r0,-36r24,0r0,36xm104,-284r-25,0r0,-36r25,0r0,36","w":246},"\u00d9":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm126,-278r-47,-50r28,0r38,50r-19,0","w":246},"\u00dd":{"d":"98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0xm154,-328r-47,50r-18,0r37,-50r28,0","w":219,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":44,".":36,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"u":27,"\u00fa":27,"\u00fb":27,"\u00fc":27,"\u00f9":27,":":33,";":33,"p":27}},"\u00e1":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm138,-262r-48,50r-18,0r38,-50r28,0","w":186},"\u00e2":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm106,-262r41,50r-24,0r-30,-36r-32,36r-21,0r41,-50r25,0","w":186},"\u00e4":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm138,-218r-25,0r0,-36r25,0r0,36xm74,-218r-25,0r0,-36r25,0r0,36","w":186},"\u00e0":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm96,-212r-47,-50r28,0r38,50r-19,0","w":186},"\u00e5":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm55,-244v0,-21,18,-38,39,-38v21,0,38,17,38,38v0,21,-17,39,-38,39v-21,0,-39,-18,-39,-39xm69,-244v0,14,11,25,25,25v14,0,24,-11,24,-25v0,-14,-10,-24,-24,-24v-14,0,-25,10,-25,24","w":186},"\u00e3":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm69,-253v0,0,57,33,67,-2r14,0v-3,17,-13,34,-32,34v-18,1,-34,-15,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":186},"\u00e7":{"d":"154,-67r23,0v-6,44,-34,71,-75,72r-12,16v17,-3,41,0,41,22v0,35,-47,36,-73,24r5,-12v13,5,48,11,48,-10v0,-24,-34,-5,-40,-17r18,-23v-50,-5,-77,-48,-77,-98v0,-53,31,-98,88,-98v40,0,70,22,75,64r-22,0v-6,-28,-23,-45,-53,-45v-44,0,-65,39,-65,79v0,40,21,79,65,79v28,0,51,-22,54,-53","w":186},"\u00e9":{"d":"178,-87r-143,0v0,33,17,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm138,-262r-48,50r-18,0r38,-50r28,0","w":186},"\u00ea":{"d":"178,-87r-143,0v0,33,17,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm106,-262r41,50r-24,0r-30,-36r-32,36r-21,0r41,-50r25,0","w":186},"\u00eb":{"d":"178,-87r-143,0v0,33,17,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm138,-218r-25,0r0,-36r25,0r0,36xm74,-218r-25,0r0,-36r25,0r0,36","w":186},"\u00e8":{"d":"178,-87r-143,0v0,33,17,73,61,73v33,0,51,-19,58,-47r23,0v-10,42,-34,66,-81,66v-59,0,-84,-45,-84,-98v0,-49,25,-98,84,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm96,-212r-47,-50r28,0r38,50r-19,0","w":186},"\u00ed":{"d":"45,0r-23,0r0,-186r23,0r0,186xm78,-262r-48,50r-18,0r38,-50r28,0","w":66},"\u00ee":{"d":"45,0r-23,0r0,-186r23,0r0,186xm46,-262r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":66},"\u00ef":{"d":"45,0r-23,0r0,-186r23,0r0,186xm77,-218r-24,0r0,-36r24,0r0,36xm14,-218r-25,0r0,-36r25,0r0,36","w":66},"\u00ec":{"d":"45,0r-23,0r0,-186r23,0r0,186xm36,-212r-47,-50r28,0r38,50r-19,0","w":66},"\u00f1":{"d":"21,0r0,-186r23,0v1,10,-2,24,1,32v8,-22,33,-37,59,-37v98,0,61,108,68,191r-23,0v-8,-67,28,-171,-47,-172v-75,-1,-56,99,-58,172r-23,0xm72,-253v26,0,58,33,67,-2r14,0v-3,17,-12,34,-31,34v-18,1,-34,-15,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":193},"\u00f3":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm145,-262r-48,50r-18,0r38,-50r28,0"},"\u00f4":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm113,-262r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0"},"\u00f6":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm144,-218r-24,0r0,-36r24,0r0,36xm81,-218r-25,0r0,-36r25,0r0,36"},"\u00f2":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm103,-212r-47,-50r28,0r38,50r-19,0"},"\u00f5":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm76,-253v0,0,57,33,67,-2r14,0v-3,17,-13,34,-32,34v-18,1,-34,-15,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34"},"\u00fa":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm141,-262r-47,50r-19,0r38,-50r28,0","w":193},"\u00fb":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm109,-262r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":193},"\u00fc":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm141,-218r-25,0r0,-36r25,0r0,36xm77,-218r-24,0r0,-36r24,0r0,36","w":193},"\u00f9":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm100,-212r-48,-50r28,0r38,50r-18,0","w":193},"\u00fd":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm128,-262r-48,50r-18,0r38,-50r28,0","w":166,"k":{",":33,".":33}},"\u00ff":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm127,-218r-24,0r0,-36r24,0r0,36xm64,-218r-25,0r0,-36r25,0r0,36","w":166,"k":{",":33,".":33}},"\u20ac":{"d":"30,-156v8,-55,44,-101,104,-100v30,0,52,9,67,27r-10,22v-27,-36,-83,-39,-112,-5v-12,14,-21,33,-25,56r120,0r-6,16r-116,0r-1,21r110,0r-7,16r-101,0v4,49,31,88,79,88v31,-1,44,-13,63,-31r0,28v-68,56,-166,1,-166,-85r-24,0r7,-16v7,-1,19,4,16,-7r0,-14r-23,0r7,-16r18,0"},"\u00a0":{"w":100},"\u00ad":{"d":"112,-89r-90,0r0,-20r90,0r0,20","w":133}}});
// Delay Plugin for jQuery
// - http://www.evanbot.com
// - © 2008 Evan Byrne

jQuery.fn.delay = function(time,func){
	this.each(function(){
		setTimeout(func,time);
	});
	
	return this;
};/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "pngFix"
 * Version: 1.2, 09.03.2009
 * by Andreas Eberhard, andreas.eberhard@gmail.com
 *                      http://jquery.andreaseberhard.de/
 *
 * Copyright (c) 2007 Andreas Eberhard
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * Changelog:
 *    09.03.2009 Version 1.2
 *    - Update for jQuery 1.3.x, removed @ from selectors
 *    11.09.2007 Version 1.1
 *    - removed noConflict
 *    - added png-support for input type=image
 *    - 01.08.2007 CSS background-image support extension added by Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com
 *    31.05.2007 initial Version 1.0
 * --------------------------------------------------------------------
 * @example $(function(){$(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready
 *
 * jQuery(function(){jQuery(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready when using noConflict
 *
 * @example $(function(){$('div.examples').pngFix();});
 * @desc Fixes all PNG's within div with class examples
 *
 * @example $(function(){$('div.examples').pngFix( { blankgif:'ext.gif' } );});
 * @desc Fixes all PNG's within div with class examples, provides blank gif for input with png
 * --------------------------------------------------------------------
 */

(function($) {

    jQuery.fn.pngFix = function(settings) {

        // Settings
        settings = jQuery.extend({
            blankgif: 'blank.gif'
        }, settings);

        var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
        var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

        if (jQuery.browser.msie && (ie55 || ie6)) {

            //fix images with png-source
            jQuery(this).find("img[src$=.png]:not(.noPngFix)").each(function() {

                jQuery(this).attr('width', jQuery(this).width());
                jQuery(this).attr('height', jQuery(this).height());

                var prevStyle = '';
                var strNewHTML = '';
                var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
                var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
                var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
                var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
                var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
                var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
                if (this.style.border) {
                    prevStyle += 'border:' + this.style.border + ';';
                    this.style.border = '';
                }
                if (this.style.padding) {
                    prevStyle += 'padding:' + this.style.padding + ';';
                    this.style.padding = '';
                }
                if (this.style.margin) {
                    prevStyle += 'margin:' + this.style.margin + ';';
                    this.style.margin = '';
                }
                var imgStyle = (this.style.cssText);

                strNewHTML += '<span ' + imgId + imgClass + imgTitle + imgAlt;
                strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;' + imgAlign + imgHand;
                strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
                strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
                strNewHTML += imgStyle + '"></span>';
                if (prevStyle != '') {
                    strNewHTML = '<span style="position:relative;display:inline-block;' + prevStyle + imgHand + 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;' + '">' + strNewHTML + '</span>';
                }

                jQuery(this).hide();
                jQuery(this).after(strNewHTML);

            });

            // fix css background pngs
            jQuery(this).find("*:not(.noPngFix)").each(function() {
                var bgIMG = jQuery(this).css('background-image');
                if (bgIMG.indexOf(".png") != -1) {
                    var iebg = bgIMG.split('url("')[1].split('")')[0];
                    jQuery(this).css('background-image', 'none');
                    jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
                }
            });

            //fix input with png-source
            jQuery(this).find("input[src$=.png]:not(.noPngFix)").each(function() {
                var bgIMG = jQuery(this).attr('src');
                jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
                jQuery(this).attr('src', settings.blankgif)
            });

        }

        return jQuery;

    };

})(jQuery);
/*****************************************************
******************************************************
********** DO NOT CHANGE THIS SCRIPT *****************
******************************************************
******************************************************
*
* I've changed so much in it that you'll break all the fixes if you update it.
* 
* - Jordan
*
*
******************************************** */


function jqTransformSelectOptionClicked(ev) {

    $wrapper = $(this).parents(".jqTransformSelectWrapper");
    $select = $wrapper.find("select");
    $ul = $wrapper.find("ul");

    $('a.selected', $wrapper).removeClass('selected');
    $(this).addClass('selected');

    var index = $(this).attr("index");

    $select.get(0).selectedIndex = index;
    jqTransfromSetCurrent($wrapper);

    jqTransformHideSelect($(ev.target));
    /* Fire the onchange event */
    $select.change();
    return false;
};

function jqTransfromSetCurrent($wrapper) {
    $select = $wrapper.find("select");

    var selectedIndex = 0;
    var selectedText = "";
    try {
        selectedIndex = $select.get(0).selectedIndex;
        selectedText = $select.find("option:eq(" + selectedIndex + ")").html();
    }
    catch (err) { }

    $('span:eq(0)', $wrapper).html(selectedText);
}

function jqTransformFillSelect($wrapper) {
    $select = $wrapper.find("select");
    $ul = $wrapper.find("ul");

    // first remove all the options, that's for the case when we come back
    $ul.find("li").remove();

    /* Now we add the options */
    $('option', $select).each(function(i) {
        // alert($(this).html());
        var oLi = $('<li><a href="#" index="' + i + '">' + $(this).html() + '</a></li>');
        $ul.append(oLi);
    });
    /* Hide the ul and add click handler to the a */
    $ul.hide().find('a').click(jqTransformSelectOptionClicked);

    jqTransfromSetCurrent($wrapper);
};

function jqRefreshSelect(selectElement) {
    try {
        $select = $(selectElement);
        $wrapper = $select.parents(".jqTransformSelectWrapper");

        jqTransformFillSelect($wrapper);
    }
    catch (err) {
        return false;
    }
    return true;
};

function jqTranformReorderZAxis() {
    var ulVisible = $('div.jqTransformSelectWrapper');
    var startCount = 10 + ulVisible.length;

    ulVisible.each(function(index) {
        $(this).css({zIndex: startCount-index});
    });
}

/* Hide all open selects */
var jqTransformHideSelect = function(oTarget) {
    var ulVisible = $('.jqTransformSelectWrapper ul:visible');
    ulVisible.each(function() {
        var $wrapper = $(this).parents(".jqTransformSelectWrapper:first");
        var $select = $wrapper.find("select").get(0);
        //do not hide if clicke on the label object associated to the select
        if (!(oTarget && $select.oLabel && $select.oLabel.get(0) == oTarget.get(0))) {
            $(this).hide();
        }
    });
};

function jqRandomId(length) {
    var lib = "abcdefghijklmnopqrstuvwxyzANCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789";
    var res = "jqRandomId-";

    for (i = 0; i < length; i++) {
        var index = Math.floor(Math.random() * lib.length);
        res += lib.substring(index, index+1);
    }

    return res;    
}

(function($) {
    var defaultOptions = { preloadImg: true };
    var jqTransformImgPreloaded = false;

    var jqTransformPreloadHoverFocusImg = function(strImgUrl) {
        //guillemets to remove for ie
        strImgUrl = strImgUrl.replace(/^url\((.*)\)/, '$1').replace(/^\"(.*)\"$/, '$1');
        var imgHover = new Image();
        imgHover.src = strImgUrl.replace(/\.([a-zA-Z]*)$/, '-hover.$1');
        var imgFocus = new Image();
        imgFocus.src = strImgUrl.replace(/\.([a-zA-Z]*)$/, '-focus.$1');
    };


    /***************************
    Labels
    ***************************/
    var jqTransformGetLabel = function(objfield) {
        var selfForm = $(objfield.get(0).form);
        var inputname = objfield.attr('id');
        var oLabel = false;
        if (inputname) {
            oLabel = selfForm.find('label[for="' + inputname + '"]');
        }
        if (oLabel && oLabel.is('label')) { return oLabel.css('cursor', 'pointer'); }
        return false;
    };


    //    var jqTransformGetLabel = function(objfield) {
    //        var selfForm = $(objfield.get(0).form);
    //        var oLabel = objfield.next();
    //        if (!oLabel.is('label')) {
    //            oLabel = objfield.prev();
    //            if (oLabel.is('label')) {
    //                var inputname = objfield.attr('id');
    //                if (inputname) {
    //                    oLabel = selfForm.find('label[for="' + inputname + '"]');
    //                }
    //            }
    //        }
    //        if (oLabel.is('label')) { return oLabel.css('cursor', 'pointer'); }
    //        return false;
    //    };

    /* Check for an external click */
    var jqTransformCheckExternalClick = function(event) {
        if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) { jqTransformHideSelect($(event.target)); }
    };

    /* Apply document listener */
    var jqTransformAddDocumentListener = function() {
        $(document).mousedown(jqTransformCheckExternalClick);
    };

    /* Add a new handler for the reset action */
    var jqTransformReset = function(f) {
        var sel;
        $('.jqTransformSelectWrapper select', f).each(function() { sel = (this.selectedIndex < 0) ? 0 : this.selectedIndex; $('ul', $(this).parent()).each(function() { $('a:eq(' + sel + ')', this).click(); }); });
        $('a.jqTransformCheckbox, a.jqTransformRadio', f).removeClass('jqTransformChecked');
        $('input:checkbox, input:radio', f).each(function() { if (this.checked) { $('a', $(this).parent()).addClass('jqTransformChecked'); } });
    };


    /***************************
    Buttons
    ***************************/

    $.fn.jqTransInputButton = function() {
        return this.each(function() {
            var parentTag = $(this).parent();
            if (!parentTag.hasClass("big-button") && !$(this).hasClass("link") && !$(this).hasClass("simple-button"))
                $(this).replaceWith('<button id="' + this.id + '" name="' + this.name + '" type="' + this.type + '" class="' + this.className + ' jqTransformButton"><span><span>' + $(this).attr('value') + '</span></span>');
        });
    };

    /***************************
    Text Fields 
    ***************************/
    $.fn.jqTransInputText = function() {
        return this.each(function() {
            var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
            var $input = $(this);

            if ($input.hasClass('jqtranformdone') || !$input.is('input')) { return; }
            $input.addClass('jqtranformdone');

            var oLabel = jqTransformGetLabel($(this));
            oLabel && oLabel.bind('click', function() { $input.focus(); });

            var inputSize = $input.width();
            if ($input.attr('size')) {
                inputSize = $input.attr('size') * 10;
                $input.css('width', inputSize);
            }

            $input.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');
            var $wrapper = $input.parent().parent().parent();
            $wrapper.css("width", inputSize + 10);
            $input
				.focus(function() { $wrapper.addClass("jqTransformInputWrapper_focus"); })
				.blur(function() { $wrapper.removeClass("jqTransformInputWrapper_focus"); })
				.hover(function() { $wrapper.addClass("jqTransformInputWrapper_hover"); }, function() { $wrapper.removeClass("jqTransformInputWrapper_hover"); })
				.bind("inputValidationFailed", function() { $wrapper.addClass("jqTransformInputWrapper_ValidationFailed") })
			    .bind("inputValidationPassed", function() { $wrapper.removeClass("jqTransformInputWrapper_ValidationFailed") })
            ;
            /* If this is safari we need to add an extra class */
            safari && $wrapper.addClass('jqTransformSafari');
            safari && $input.css('width', $wrapper.width() + 16);
            this.wrapper = $wrapper;

        });
    };

    /***************************
    Check Boxes 
    ***************************/
    $.fn.jqTransCheckBox = function() {
        return this.each(function() {
            var $input = $(this);
            var inputSelf = this;

            if ($input.hasClass('jqTransformHidden')) { return; }

            var oLabel = jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformCheckbox"></a>');
            $wrapper.prepend(aLink);
            // Click Handler
            aLink.click(function() {
                var $a = $(this);
                if (inputSelf.checked === true) {
                    inputSelf.checked = false;
                    $a.removeClass('jqTransformChecked');
                    oLabel && oLabel.removeClass('jqCheckboxLabelChecked');
                }
                else {
                    inputSelf.checked = true;
                    $a.addClass('jqTransformChecked');
                    oLabel && oLabel.addClass('jqCheckboxLabelChecked');
                }


                $input.change();
                return false;
            });
            oLabel && oLabel.click(function() { aLink.trigger('click'); return false; });
            $input
				.bind("inputValidationFailed", function() { $wrapper.addClass("jqTransformInputWrapper_ValidationFailed") })
			    .bind("inputValidationPassed", function() { $wrapper.removeClass("jqTransformInputWrapper_ValidationFailed") });
            // set the default state
            if (this.checked) {
                aLink.addClass('jqTransformChecked');
                oLabel && oLabel.addClass('jqCheckboxLabelChecked');
            }
        });
    };
    /***************************
    Radio Buttons 
    ***************************/
    $.fn.jqTransRadio = function() {
        return this.each(function() {
            var $input = $(this);
            var inputSelf = this;

            if ($input.hasClass('jqTransformHidden')) { return; }

            oLabel = jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformRadioWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformRadio" rel="' + this.name + '"></a>');
            $wrapper.prepend(aLink);
            $input.bind("inputValidationFailed", function() {
                var name = $(this).attr("name");
                $(this).parents("form").find("input:radio[name=" + name + "]").each(
                    function() {
                        $(this).parent().addClass("jqTransformInputWrapper_ValidationFailed");
                    }
                );
            })
			    .bind("inputValidationPassed", function() {

			        var name = $(this).attr("name");
			        $(this).parents("form").find("input:radio[name=" + name + "]").each(
                        function() {
                            $(this).parent().removeClass("jqTransformInputWrapper_ValidationFailed");
                        }
                    );
			    });

            // Click Handler
            aLink
				.each(function() {
				    this.radioElem = inputSelf;
				    $(this).click(function() {
				        var $a = $(this).addClass('jqTransformChecked');
				        inputSelf.checked = true;

				        // uncheck all others of same name
				        $('a.jqTransformRadio[rel="' + $a.attr('rel') + '"]', inputSelf.form).not($a).each(function() {
				            $(this).removeClass('jqTransformChecked');
				            this.radioElem.checked = false;
				        });

				        $input.change();
				        return false;
				    });


				});
            oLabel && oLabel.click(function() { aLink.trigger('click'); });
            // set the default state
            inputSelf.checked && aLink.addClass('jqTransformChecked');
        });
    };

    /***************************
    TextArea 
    ***************************/
    $.fn.jqTransTextarea = function() {
        return this.each(function() {
            var textarea = $(this);

            if (textarea.hasClass('jqtransformdone')) { return; }
            textarea.addClass('jqtransformdone');

            oLabel = jqTransformGetLabel(textarea);
            oLabel && oLabel.click(function() { textarea.focus(); });

            var strTable = '<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">';
            strTable += '<tr><td id="jqTransformTextarea-tl">&nbsp;</td><td id="jqTransformTextarea-tm">&nbsp;</td><td id="jqTransformTextarea-tr">&nbsp;</td></tr>';
            strTable += '<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>';
            strTable += '<tr><td id="jqTransformTextarea-bl">&nbsp;</td><td id="jqTransformTextarea-bm">&nbsp;</td><td id="jqTransformTextarea-br">&nbsp;</td></tr>';
            strTable += '</table>';
            var oTable = $(strTable)
					.insertAfter(textarea)
					.hover(function() {
					    !oTable.hasClass('jqTransformTextarea-focus') && oTable.addClass('jqTransformTextarea-hover');
					}, function() {
					    oTable.removeClass('jqTransformTextarea-hover');
					})
				;

            textarea
				.focus(function() { oTable.removeClass('jqTransformTextarea-hover').addClass('jqTransformTextarea-focus'); })
				.blur(function() { oTable.removeClass('jqTransformTextarea-focus'); })
				.appendTo($('#jqTransformTextarea-mm div', oTable))
			;
            this.oTable = oTable;
            if ($.browser.safari) {
                $('#jqTransformTextarea-mm', oTable)
					.addClass('jqTransformSafariTextarea')
					.find('div')
						.css('height', textarea.height())
						.css('width', textarea.width())
				;
            }
        });
    };

    /***************************
    Select 
    ***************************/
    $.fn.jqTransSelect = function() {
        selectCnt = this.length;
        return this.each(function(index) {
            var $select = $(this);
            /*
            START HACK BY JORDAN
        
            */
            var maxWidth = $select.parent().width();
            /*
                
            END HACK
                            
            */
            if ($select.hasClass('jqTransformHidden')) { return; }

            var oLabel = jqTransformGetLabel($select);
            /* First thing we do is Wrap it */
            $select
				.addClass('jqTransformHidden')
				.wrap('<div class="jqTransformSelectWrapper"></div>')
			;
            var $wrapper = $select.parent().css({ zIndex: ((selectCnt + 10) - index) }); // WTF ???????????????????????????????????????????????

            /* Now add the html for the select */
            $wrapper.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>');
            var $ul = $('ul', $wrapper).css('width', $select.width());

            // $wrapper.addClass("this-is-the-stupid-wrapper");

            jqTransformFillSelect($wrapper);

            /* Set the default */
            $('span:first', $wrapper).click(function() { $("a.jqTransformSelectOpen", $wrapper).trigger('click'); });
            oLabel && oLabel.click(function() { $("a.jqTransformSelectOpen", $wrapper).trigger('click'); });
            this.oLabel = oLabel;

            /* Apply the click handler to the Open */
            var oLinkOpen = $('a.jqTransformSelectOpen', $wrapper)
				.click(function() {
				    //Check if box is already open to still allow toggle, but close all other selects
				    if ($ul.css('display') == 'none') { jqTransformHideSelect(); }
				    $ul.slideToggle('normal', function() {
				        var offSet = ($('a.selected', $ul).offset().top - $ul.offset().top);
				        $ul.animate({ scrollTop: offSet });
				    });
				    return false;
				})
			;

            //set the new width
            var iSelectWidth = $select.width();
            var oSpan = $('span:first', $wrapper);
            var newWidth = (iSelectWidth > oSpan.innerWidth()) ? iSelectWidth + oLinkOpen.outerWidth() : $wrapper.width();

            /*
            START HACK BY JORDAN
            */
            var newWidthThatDoesntBreakEverything = Math.min(maxWidth, newWidth);

            $wrapper.css('width', newWidthThatDoesntBreakEverything);
            $ul.css('width', newWidthThatDoesntBreakEverything - 2);
            oSpan.css('width', newWidthThatDoesntBreakEverything - 30);

            /*
            END HACK
            */
        });
    };
    $.fn

    $.fn.jqTransform = function(options) {
        var self = this;
        var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
        var opt = $.extend({}, defaultOptions, options);

        /* each form */
        return this.each(function() {
            var selfForm = $(this);
            if (selfForm.hasClass('jqtransformdone')) {
                jqTranformReorderZAxis(); 
                return;
            }
            selfForm.addClass('jqtransformdone');

            $('input:submit, input:reset, input[type="button"]', this).jqTransInputButton();
            $('input:text, input:password', this).jqTransInputText();
            $('input:checkbox', this).jqTransCheckBox();
            $('input:radio', this).jqTransRadio();
            $('textarea', this).jqTransTextarea();

            if ($('select', this).jqTransSelect().length > 0) { jqTransformAddDocumentListener(); }
            selfForm.bind('reset', function() { var action = function() { jqTransformReset(this); }; window.setTimeout(action, 10); });

            //preloading
            if (opt.preloadImg && !jqTransformImgPreloaded) {
                jqTransformImgPreloaded = true;
                var oInputText = $('input:text:first', selfForm);
                if (oInputText.length > 0) {
                    //pour ie on eleve les ""
                    var strWrapperImgUrl = oInputText.get(0).wrapper.css('background-image');
                    jqTransformPreloadHoverFocusImg(strWrapperImgUrl);
                    var strInnerImgUrl = $('div.jqTransformInputInner', $(oInputText.get(0).wrapper)).css('background-image');
                    jqTransformPreloadHoverFocusImg(strInnerImgUrl);
                }

                var oTextarea = $('textarea', selfForm);
                if (oTextarea.length > 0) {
                    var oTable = oTextarea.get(0).oTable;
                    $('td', oTable).each(function() {
                        var strImgBack = $(this).css('background-image');
                        jqTransformPreloadHoverFocusImg(strImgBack);
                    });
                }
            }

            jqTranformReorderZAxis()

        }); /* End Form each */

    }; /* End the Plugin */

})(jQuery);
				   /*
* jQuery UI 1.7.2
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI
*/
jQuery.ui || (function(c) { var i = c.fn.remove, d = c.browser.mozilla && (parseFloat(c.browser.version) < 1.9); c.ui = { version: "1.7.2", plugin: { add: function(k, l, n) { var m = c.ui[k].prototype; for (var j in n) { m.plugins[j] = m.plugins[j] || []; m.plugins[j].push([l, n[j]]) } }, call: function(j, l, k) { var n = j.plugins[l]; if (!n || !j.element[0].parentNode) { return } for (var m = 0; m < n.length; m++) { if (j.options[n[m][0]]) { n[m][1].apply(j.element, k) } } } }, contains: function(k, j) { return document.compareDocumentPosition ? k.compareDocumentPosition(j) & 16 : k !== j && k.contains(j) }, hasScroll: function(m, k) { if (c(m).css("overflow") == "hidden") { return false } var j = (k && k == "left") ? "scrollLeft" : "scrollTop", l = false; if (m[j] > 0) { return true } m[j] = 1; l = (m[j] > 0); m[j] = 0; return l }, isOverAxis: function(k, j, l) { return (k > j) && (k < (j + l)) }, isOver: function(o, k, n, m, j, l) { return c.ui.isOverAxis(o, n, j) && c.ui.isOverAxis(k, m, l) }, keyCode: { BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38} }; if (d) { var f = c.attr, e = c.fn.removeAttr, h = "http://www.w3.org/2005/07/aaa", a = /^aria-/, b = /^wairole:/; c.attr = function(k, j, l) { var m = l !== undefined; return (j == "role" ? (m ? f.call(this, k, j, "wairole:" + l) : (f.apply(this, arguments) || "").replace(b, "")) : (a.test(j) ? (m ? k.setAttributeNS(h, j.replace(a, "aaa:"), l) : f.call(this, k, j.replace(a, "aaa:"))) : f.apply(this, arguments))) }; c.fn.removeAttr = function(j) { return (a.test(j) ? this.each(function() { this.removeAttributeNS(h, j.replace(a, "")) }) : e.call(this, j)) } } c.fn.extend({ remove: function() { c("*", this).add(this).each(function() { c(this).triggerHandler("remove") }); return i.apply(this, arguments) }, enableSelection: function() { return this.attr("unselectable", "off").css("MozUserSelect", "").unbind("selectstart.ui") }, disableSelection: function() { return this.attr("unselectable", "on").css("MozUserSelect", "none").bind("selectstart.ui", function() { return false }) }, scrollParent: function() { var j; if ((c.browser.msie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) { j = this.parents().filter(function() { return (/(relative|absolute|fixed)/).test(c.curCSS(this, "position", 1)) && (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } else { j = this.parents().filter(function() { return (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } return (/fixed/).test(this.css("position")) || !j.length ? c(document) : j } }); c.extend(c.expr[":"], { data: function(l, k, j) { return !!c.data(l, j[3]) }, focusable: function(k) { var l = k.nodeName.toLowerCase(), j = c.attr(k, "tabindex"); return (/input|select|textarea|button|object/.test(l) ? !k.disabled : "a" == l || "area" == l ? k.href || !isNaN(j) : !isNaN(j)) && !c(k)["area" == l ? "parents" : "closest"](":hidden").length }, tabbable: function(k) { var j = c.attr(k, "tabindex"); return (isNaN(j) || j >= 0) && c(k).is(":focusable") } }); function g(m, n, o, l) { function k(q) { var p = c[m][n][q] || []; return (typeof p == "string" ? p.split(/,?\s+/) : p) } var j = k("getter"); if (l.length == 1 && typeof l[0] == "string") { j = j.concat(k("getterSetter")) } return (c.inArray(o, j) != -1) } c.widget = function(k, j) { var l = k.split(".")[0]; k = k.split(".")[1]; c.fn[k] = function(p) { var n = (typeof p == "string"), o = Array.prototype.slice.call(arguments, 1); if (n && p.substring(0, 1) == "_") { return this } if (n && g(l, k, p, o)) { var m = c.data(this[0], k); return (m ? m[p].apply(m, o) : undefined) } return this.each(function() { var q = c.data(this, k); (!q && !n && c.data(this, k, new c[l][k](this, p))._init()); (q && n && c.isFunction(q[p]) && q[p].apply(q, o)) }) }; c[l] = c[l] || {}; c[l][k] = function(o, n) { var m = this; this.namespace = l; this.widgetName = k; this.widgetEventPrefix = c[l][k].eventPrefix || k; this.widgetBaseClass = l + "-" + k; this.options = c.extend({}, c.widget.defaults, c[l][k].defaults, c.metadata && c.metadata.get(o)[k], n); this.element = c(o).bind("setData." + k, function(q, p, r) { if (q.target == o) { return m._setData(p, r) } }).bind("getData." + k, function(q, p) { if (q.target == o) { return m._getData(p) } }).bind("remove", function() { return m.destroy() }) }; c[l][k].prototype = c.extend({}, c.widget.prototype, j); c[l][k].getterSetter = "option" }; c.widget.prototype = { _init: function() { }, destroy: function() { this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").removeAttr("aria-disabled") }, option: function(l, m) { var k = l, j = this; if (typeof l == "string") { if (m === undefined) { return this._getData(l) } k = {}; k[l] = m } c.each(k, function(n, o) { j._setData(n, o) }) }, _getData: function(j) { return this.options[j] }, _setData: function(j, k) { this.options[j] = k; if (j == "disabled") { this.element[k ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").attr("aria-disabled", k) } }, enable: function() { this._setData("disabled", false) }, disable: function() { this._setData("disabled", true) }, _trigger: function(l, m, n) { var p = this.options[l], j = (l == this.widgetEventPrefix ? l : this.widgetEventPrefix + l); m = c.Event(m); m.type = j; if (m.originalEvent) { for (var k = c.event.props.length, o; k; ) { o = c.event.props[--k]; m[o] = m.originalEvent[o] } } this.element.trigger(m, n); return !(c.isFunction(p) && p.call(this.element[0], m, n) === false || m.isDefaultPrevented()) } }; c.widget.defaults = { disabled: false }; c.ui.mouse = { _mouseInit: function() { var j = this; this.element.bind("mousedown." + this.widgetName, function(k) { return j._mouseDown(k) }).bind("click." + this.widgetName, function(k) { if (j._preventClickEvent) { j._preventClickEvent = false; k.stopImmediatePropagation(); return false } }); if (c.browser.msie) { this._mouseUnselectable = this.element.attr("unselectable"); this.element.attr("unselectable", "on") } this.started = false }, _mouseDestroy: function() { this.element.unbind("." + this.widgetName); (c.browser.msie && this.element.attr("unselectable", this._mouseUnselectable)) }, _mouseDown: function(l) { l.originalEvent = l.originalEvent || {}; if (l.originalEvent.mouseHandled) { return } (this._mouseStarted && this._mouseUp(l)); this._mouseDownEvent = l; var k = this, m = (l.which == 1), j = (typeof this.options.cancel == "string" ? c(l.target).parents().add(l.target).filter(this.options.cancel).length : false); if (!m || j || !this._mouseCapture(l)) { return true } this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { k.mouseDelayMet = true }, this.options.delay) } if (this._mouseDistanceMet(l) && this._mouseDelayMet(l)) { this._mouseStarted = (this._mouseStart(l) !== false); if (!this._mouseStarted) { l.preventDefault(); return true } } this._mouseMoveDelegate = function(n) { return k._mouseMove(n) }; this._mouseUpDelegate = function(n) { return k._mouseUp(n) }; c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); (c.browser.safari || l.preventDefault()); l.originalEvent.mouseHandled = true; return true }, _mouseMove: function(j) { if (c.browser.msie && !j.button) { return this._mouseUp(j) } if (this._mouseStarted) { this._mouseDrag(j); return j.preventDefault() } if (this._mouseDistanceMet(j) && this._mouseDelayMet(j)) { this._mouseStarted = (this._mouseStart(this._mouseDownEvent, j) !== false); (this._mouseStarted ? this._mouseDrag(j) : this._mouseUp(j)) } return !this._mouseStarted }, _mouseUp: function(j) { c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = (j.target == this._mouseDownEvent.target); this._mouseStop(j) } return false }, _mouseDistanceMet: function(j) { return (Math.max(Math.abs(this._mouseDownEvent.pageX - j.pageX), Math.abs(this._mouseDownEvent.pageY - j.pageY)) >= this.options.distance) }, _mouseDelayMet: function(j) { return this.mouseDelayMet }, _mouseStart: function(j) { }, _mouseDrag: function(j) { }, _mouseStop: function(j) { }, _mouseCapture: function(j) { return true } }; c.ui.mouse.defaults = { cancel: null, distance: 1, delay: 0} })(jQuery); ; /*
 * jQuery UI Effects 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects || (function(d) { d.effects = { version: "1.7.2", save: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.data("ec.storage." + h[f], g[0].style[h[f]]) } } }, restore: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.css(h[f], g.data("ec.storage." + h[f])) } } }, setMode: function(f, g) { if (g == "toggle") { g = f.is(":hidden") ? "show" : "hide" } return g }, getBaseline: function(g, h) { var i, f; switch (g[0]) { case "top": i = 0; break; case "middle": i = 0.5; break; case "bottom": i = 1; break; default: i = g[0] / h.height } switch (g[1]) { case "left": f = 0; break; case "center": f = 0.5; break; case "right": f = 1; break; default: f = g[1] / h.width } return { x: f, y: i} }, createWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent() } var g = { width: f.outerWidth(true), height: f.outerHeight(true), "float": f.css("float") }; f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>'); var j = f.parent(); if (f.css("position") == "static") { j.css({ position: "relative" }); f.css({ position: "relative" }) } else { var i = f.css("top"); if (isNaN(parseInt(i, 10))) { i = "auto" } var h = f.css("left"); if (isNaN(parseInt(h, 10))) { h = "auto" } j.css({ position: f.css("position"), top: i, left: h, zIndex: f.css("z-index") }).show(); f.css({ position: "relative", top: 0, left: 0 }) } j.css(g); return j }, removeWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent().replaceWith(f) } return f }, setTransition: function(g, i, f, h) { h = h || {}; d.each(i, function(k, j) { unit = g.cssUnit(j); if (unit[0] > 0) { h[j] = unit[0] * f + unit[1] } }); return h }, animateClass: function(h, i, k, j) { var f = (typeof k == "function" ? k : (j ? j : null)); var g = (typeof k == "string" ? k : null); return this.each(function() { var q = {}; var o = d(this); var p = o.attr("style") || ""; if (typeof p == "object") { p = p.cssText } if (h.toggle) { o.hasClass(h.toggle) ? h.remove = h.toggle : h.add = h.toggle } var l = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.addClass(h.add) } if (h.remove) { o.removeClass(h.remove) } var m = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.removeClass(h.add) } if (h.remove) { o.addClass(h.remove) } for (var r in m) { if (typeof m[r] != "function" && m[r] && r.indexOf("Moz") == -1 && r.indexOf("length") == -1 && m[r] != l[r] && (r.match(/color/i) || (!r.match(/color/i) && !isNaN(parseInt(m[r], 10)))) && (l.position != "static" || (l.position == "static" && !r.match(/left|top|bottom|right/)))) { q[r] = m[r] } } o.animate(q, i, g, function() { if (typeof d(this).attr("style") == "object") { d(this).attr("style")["cssText"] = ""; d(this).attr("style")["cssText"] = p } else { d(this).attr("style", p) } if (h.add) { d(this).addClass(h.add) } if (h.remove) { d(this).removeClass(h.remove) } if (f) { f.apply(this, arguments) } }) }) } }; function c(g, f) { var i = g[1] && g[1].constructor == Object ? g[1] : {}; if (f) { i.mode = f } var h = g[1] && g[1].constructor != Object ? g[1] : (i.duration ? i.duration : g[2]); h = d.fx.off ? 0 : typeof h === "number" ? h : d.fx.speeds[h] || d.fx.speeds._default; var j = i.callback || (d.isFunction(g[1]) && g[1]) || (d.isFunction(g[2]) && g[2]) || (d.isFunction(g[3]) && g[3]); return [g[0], i, h, j] } d.fn.extend({ _show: d.fn.show, _hide: d.fn.hide, __toggle: d.fn.toggle, _addClass: d.fn.addClass, _removeClass: d.fn.removeClass, _toggleClass: d.fn.toggleClass, effect: function(g, f, h, i) { return d.effects[g] ? d.effects[g].call(this, { method: g, options: f || {}, duration: h, callback: i }) : null }, show: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._show.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "show")) } }, hide: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._hide.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "hide")) } }, toggle: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (d.isFunction(arguments[0]) || typeof arguments[0] == "boolean")) { return this.__toggle.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "toggle")) } }, addClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ add: g }, f, i, h]) : this._addClass(g) }, removeClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ remove: g }, f, i, h]) : this._removeClass(g) }, toggleClass: function(g, f, i, h) { return ((typeof f !== "boolean") && f) ? d.effects.animateClass.apply(this, [{ toggle: g }, f, i, h]) : this._toggleClass(g, f) }, morph: function(f, h, g, j, i) { return d.effects.animateClass.apply(this, [{ add: h, remove: f }, g, j, i]) }, switchClass: function() { return this.morph.apply(this, arguments) }, cssUnit: function(f) { var g = this.css(f), h = []; d.each(["em", "px", "%", "pt"], function(j, k) { if (g.indexOf(k) > 0) { h = [parseFloat(g), k] } }); return h } }); d.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(g, f) { d.fx.step[f] = function(h) { if (h.state == 0) { h.start = e(h.elem, f); h.end = b(h.end) } h.elem.style[f] = "rgb(" + [Math.max(Math.min(parseInt((h.pos * (h.end[0] - h.start[0])) + h.start[0], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[1] - h.start[1])) + h.start[1], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[2] - h.start[2])) + h.start[2], 10), 255), 0)].join(",") + ")" } }); function b(g) { var f; if (g && g.constructor == Array && g.length == 3) { return g } if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)) { return [parseInt(f[1], 10), parseInt(f[2], 10), parseInt(f[3], 10)] } if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)) { return [parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55, parseFloat(f[3]) * 2.55] } if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)) { return [parseInt(f[1], 16), parseInt(f[2], 16), parseInt(f[3], 16)] } if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)) { return [parseInt(f[1] + f[1], 16), parseInt(f[2] + f[2], 16), parseInt(f[3] + f[3], 16)] } if (f = /rgba\(0, 0, 0, 0\)/.exec(g)) { return a.transparent } return a[d.trim(g).toLowerCase()] } function e(h, f) { var g; do { g = d.curCSS(h, f); if (g != "" && g != "transparent" || d.nodeName(h, "body")) { break } f = "backgroundColor" } while (h = h.parentNode); return b(g) } var a = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255] }; d.easing.jswing = d.easing.swing; d.extend(d.easing, { def: "easeOutQuad", swing: function(g, h, f, j, i) { return d.easing[d.easing.def](g, h, f, j, i) }, easeInQuad: function(g, h, f, j, i) { return j * (h /= i) * h + f }, easeOutQuad: function(g, h, f, j, i) { return -j * (h /= i) * (h - 2) + f }, easeInOutQuad: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h + f } return -j / 2 * ((--h) * (h - 2) - 1) + f }, easeInCubic: function(g, h, f, j, i) { return j * (h /= i) * h * h + f }, easeOutCubic: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h + 1) + f }, easeInOutCubic: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h + f } return j / 2 * ((h -= 2) * h * h + 2) + f }, easeInQuart: function(g, h, f, j, i) { return j * (h /= i) * h * h * h + f }, easeOutQuart: function(g, h, f, j, i) { return -j * ((h = h / i - 1) * h * h * h - 1) + f }, easeInOutQuart: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h + f } return -j / 2 * ((h -= 2) * h * h * h - 2) + f }, easeInQuint: function(g, h, f, j, i) { return j * (h /= i) * h * h * h * h + f }, easeOutQuint: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h * h * h + 1) + f }, easeInOutQuint: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h * h + f } return j / 2 * ((h -= 2) * h * h * h * h + 2) + f }, easeInSine: function(g, h, f, j, i) { return -j * Math.cos(h / i * (Math.PI / 2)) + j + f }, easeOutSine: function(g, h, f, j, i) { return j * Math.sin(h / i * (Math.PI / 2)) + f }, easeInOutSine: function(g, h, f, j, i) { return -j / 2 * (Math.cos(Math.PI * h / i) - 1) + f }, easeInExpo: function(g, h, f, j, i) { return (h == 0) ? f : j * Math.pow(2, 10 * (h / i - 1)) + f }, easeOutExpo: function(g, h, f, j, i) { return (h == i) ? f + j : j * (-Math.pow(2, -10 * h / i) + 1) + f }, easeInOutExpo: function(g, h, f, j, i) { if (h == 0) { return f } if (h == i) { return f + j } if ((h /= i / 2) < 1) { return j / 2 * Math.pow(2, 10 * (h - 1)) + f } return j / 2 * (-Math.pow(2, -10 * --h) + 2) + f }, easeInCirc: function(g, h, f, j, i) { return -j * (Math.sqrt(1 - (h /= i) * h) - 1) + f }, easeOutCirc: function(g, h, f, j, i) { return j * Math.sqrt(1 - (h = h / i - 1) * h) + f }, easeInOutCirc: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return -j / 2 * (Math.sqrt(1 - h * h) - 1) + f } return j / 2 * (Math.sqrt(1 - (h -= 2) * h) + 1) + f }, easeInElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return -(h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f }, easeOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return h * Math.pow(2, -10 * i) * Math.sin((i * l - j) * (2 * Math.PI) / k) + m + f }, easeInOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l / 2) == 2) { return f + m } if (!k) { k = l * (0.3 * 1.5) } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } if (i < 1) { return -0.5 * (h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f } return h * Math.pow(2, -10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k) * 0.5 + m + f }, easeInBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * (h /= j) * h * ((i + 1) * h - i) + f }, easeOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * ((h = h / j - 1) * h * ((i + 1) * h + i) + 1) + f }, easeInOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } if ((h /= j / 2) < 1) { return k / 2 * (h * h * (((i *= (1.525)) + 1) * h - i)) + f } return k / 2 * ((h -= 2) * h * (((i *= (1.525)) + 1) * h + i) + 2) + f }, easeInBounce: function(g, h, f, j, i) { return j - d.easing.easeOutBounce(g, i - h, 0, j, i) + f }, easeOutBounce: function(g, h, f, j, i) { if ((h /= i) < (1 / 2.75)) { return j * (7.5625 * h * h) + f } else { if (h < (2 / 2.75)) { return j * (7.5625 * (h -= (1.5 / 2.75)) * h + 0.75) + f } else { if (h < (2.5 / 2.75)) { return j * (7.5625 * (h -= (2.25 / 2.75)) * h + 0.9375) + f } else { return j * (7.5625 * (h -= (2.625 / 2.75)) * h + 0.984375) + f } } } }, easeInOutBounce: function(g, h, f, j, i) { if (h < i / 2) { return d.easing.easeInBounce(g, h * 2, 0, j, i) * 0.5 + f } return d.easing.easeOutBounce(g, h * 2 - i, 0, j, i) * 0.5 + j * 0.5 + f } }) })(jQuery); ; /*
 * jQuery UI Effects Explode 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.explode = function(b) { return this.queue(function() { var k = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; var e = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; b.options.mode = b.options.mode == "toggle" ? (a(this).is(":visible") ? "hide" : "show") : b.options.mode; var h = a(this).show().css("visibility", "hidden"); var l = h.offset(); l.top -= parseInt(h.css("marginTop"), 10) || 0; l.left -= parseInt(h.css("marginLeft"), 10) || 0; var g = h.outerWidth(true); var c = h.outerHeight(true); for (var f = 0; f < k; f++) { for (var d = 0; d < e; d++) { h.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -d * (g / e), top: -f * (c / k) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: g / e, height: c / k, left: l.left + d * (g / e) + (b.options.mode == "show" ? (d - Math.floor(e / 2)) * (g / e) : 0), top: l.top + f * (c / k) + (b.options.mode == "show" ? (f - Math.floor(k / 2)) * (c / k) : 0), opacity: b.options.mode == "show" ? 0 : 1 }).animate({ left: l.left + d * (g / e) + (b.options.mode == "show" ? 0 : (d - Math.floor(e / 2)) * (g / e)), top: l.top + f * (c / k) + (b.options.mode == "show" ? 0 : (f - Math.floor(k / 2)) * (c / k)), opacity: b.options.mode == "show" ? 1 : 0 }, b.duration || 500) } } setTimeout(function() { b.options.mode == "show" ? h.css({ visibility: "visible" }) : h.css({ visibility: "visible" }).hide(); if (b.callback) { b.callback.apply(h[0]) } h.dequeue(); a("div.ui-effects-explode").remove() }, b.duration || 500) }) } })(jQuery); ; /*
 * jQuery UI Effects Transfer 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.transfer = function(b) { return this.queue(function() { var f = a(this), h = a(b.options.to), e = h.offset(), g = { top: e.top, left: e.left, height: h.innerHeight(), width: h.innerWidth() }, d = f.offset(), c = a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({ top: d.top, left: d.left, height: f.innerHeight(), width: f.innerWidth(), position: "absolute" }).animate(g, b.duration, b.options.easing, function() { c.remove(); (b.callback && b.callback.apply(f[0], arguments)); f.dequeue() }) }) } })(jQuery); ;ï»¿/*!
* jQuery blockUI plugin
* Version 2.26 (09-SEP-2009)
* @requires jQuery v1.2.3 or later
*
* Examples at: http://malsup.com/jquery/block/
* Copyright (c) 2007-2008 M. Alsup
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
*/

; (function($) {

    if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
        alert('blockUI requires jQuery v1.2.3 or later!  You are using v' + $.fn.jquery);
        return;
    }

    $.fn._fadeIn = $.fn.fadeIn;

    // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
    // retarded userAgent strings on Vista)
    var mode = document.documentMode || 0;
    var setExpr = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);
    var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent) && !mode;

    // global $ methods for blocking/unblocking the entire page
    $.blockUI = function(opts) { install(window, opts); };
    $.unblockUI = function(opts) { remove(window, opts); };

    // convenience method for quick growl-like notifications  (http://www.google.com/search?q=growl)
    $.growlUI = function(title, message, timeout, onClose) {
        var $m = $('<div class="growlUI"></div>');
        if (title) $m.append('<h1>' + title + '</h1>');
        if (message) $m.append('<h2>' + message + '</h2>');
        if (timeout == undefined) timeout = 3000;
        $.blockUI({
            message: $m, fadeIn: 700, fadeOut: 1000, centerY: false,
            timeout: timeout, showOverlay: false,
            onUnblock: onClose,
            css: $.blockUI.defaults.growlCSS
        });
    };

    // plugin method for blocking element content
    $.fn.block = function(opts) {
        return this.unblock({ fadeOut: 0 }).each(function() {
            if ($.css(this, 'position') == 'static')
                this.style.position = 'relative';
            if ($.browser.msie)
                this.style.zoom = 1; // force 'hasLayout'
            install(this, opts);
        });
    };

    // plugin method for unblocking element content
    $.fn.unblock = function(opts) {
        return this.each(function() {
            remove(this, opts);
        });
    };

    $.blockUI.version = 2.26; // 2nd generation blocking at no extra cost!

    // override these in your code to change the default behavior and style
    $.blockUI.defaults = {
        // message displayed when blocking (use null for no message)
        message: '<h1>Please wait...</h1>',

        title: null,   // title string; only used when theme == true
        draggable: true,  // only used when theme == true (requires jquery-ui.js to be loaded)

        theme: false, // set to true to use with jQuery UI themes

        // styles for the message when blocking; if you wish to disable
        // these and use an external stylesheet then do this in your code:
        // $.blockUI.defaults.css = {};
        css: {
            padding: 0,
            margin: 0,
            width: '30%',
            top: '40%',
            left: '35%',
            textAlign: 'center',
            color: '#000',
            border: '3px solid #aaa',
            backgroundColor: '#fff',
            cursor: 'wait'
        },

        // minimal style set used when themes are used
        themedCSS: {
            width: '30%',
            top: '40%',
            left: '35%'
        },

        // styles for the overlay
        overlayCSS: {
            backgroundColor: '#fff',
            opacity: 0.85,
            cursor: 'wait'
        },

        // styles applied when using $.growlUI
        growlCSS: {
            width: '350px',
            top: '10px',
            left: '',
            right: '10px',
            border: 'none',
            padding: '5px',
            opacity: 0.6,
            cursor: 'default',
            color: '#fff',
            backgroundColor: '#000',
            '-webkit-border-radius': '10px',
            '-moz-border-radius': '10px'
        },

        // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
        // (hat tip to Jorge H. N. de Vasconcelos)
        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',

        // force usage of iframe in non-IE browsers (handy for blocking applets)
        forceIframe: false,

        // z-index for the blocking overlay
        baseZ: 1000,

        // set these to true to have the message automatically centered
        centerX: true, // <-- only effects element blocking (page block controlled via css above)
        centerY: true,

        // allow body element to be stetched in ie6; this makes blocking look better
        // on "short" pages.  disable if you wish to prevent changes to the body height
        allowBodyStretch: true,

        // enable if you want key and mouse events to be disabled for content that is blocked
        bindEvents: true,

        // be default blockUI will supress tab navigation from leaving blocking content
        // (if bindEvents is true)
        constrainTabKey: true,

        // fadeIn time in millis; set to 0 to disable fadeIn on block
        fadeIn: 200,

        // fadeOut time in millis; set to 0 to disable fadeOut on unblock
        fadeOut: 400,

        // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
        timeout: 0,

        // disable if you don't want to show the overlay
        showOverlay: true,

        // if true, focus will be placed in the first available input field when
        // page blocking
        focusInput: true,

        // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
        applyPlatformOpacityRules: true,

        // callback method invoked when unblocking has completed; the callback is
        // passed the element that has been unblocked (which is the window object for page
        // blocks) and the options that were passed to the unblock call:
        //	 onUnblock(element, options)
        onUnblock: null,

        // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
        quirksmodeOffsetHack: 4
    };

    // private data and functions follow...

    var pageBlock = null;
    var pageBlockEls = [];

    function install(el, opts) {
        var full = (el == window);
        var msg = opts && opts.message !== undefined ? opts.message : undefined;
        opts = $.extend({}, $.blockUI.defaults, opts || {});
        opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
        var css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
        var themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
        msg = msg === undefined ? opts.message : msg;

        // remove the current block (if there is one)
        if (full && pageBlock)
            remove(window, { fadeOut: 0 });

        // if an existing element is being used as the blocking content then we capture
        // its current place in the DOM (and current display style) so we can restore
        // it when we unblock
        if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
            var node = msg.jquery ? msg[0] : msg;
            var data = {};
            $(el).data('blockUI.history', data);
            data.el = node;
            data.parent = node.parentNode;
            data.display = node.style.display;
            data.position = node.style.position;
            if (data.parent)
                data.parent.removeChild(node);
        }

        var z = opts.baseZ;

        // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
        // layer1 is the iframe layer which is used to supress bleed through of underlying content
        // layer2 is the overlay layer which has opacity and a wait cursor (by default)
        // layer3 is the message content that is displayed while blocking

        var lyr1 = ($.browser.msie || opts.forceIframe)
		? $('<iframe class="blockUI" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' + opts.iframeSrc + '"></iframe>')
		: $('<div class="blockUI" style="display:none"></div>');
        var lyr2 = $('<div class="blockUI blockOverlay" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');

        var lyr3;
        if (opts.theme && full) {
            var s = '<div class="blockUI blockMsg blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' + z + ';display:none;position:fixed">' +
					'<div class="ui-widget-header ui-dialog-titlebar blockTitle">' + (opts.title || '&nbsp;') + '</div>' +
					'<div class="ui-widget-content ui-dialog-content"></div>' +
				'</div>';
            lyr3 = $(s);
        }
        else {
            lyr3 = full ? $('<div class="blockUI blockMsg blockPage" style="z-index:' + z + ';display:none;position:fixed"></div>')
					: $('<div class="blockUI blockMsg blockElement" style="z-index:' + z + ';display:none;position:absolute"></div>');
        }

        // if we have a message, style it
        if (msg) {
            if (opts.theme) {
                lyr3.css(themedCSS);
                lyr3.addClass('ui-widget-content');
            }
            else
                lyr3.css(css);
        }

        // style the overlay
        if (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform)))
            lyr2.css(opts.overlayCSS);
        lyr2.css('position', full ? 'fixed' : 'absolute');

        // make iframe layer transparent in IE
        if ($.browser.msie || opts.forceIframe)
            lyr1.css('opacity', 0.0);

        $([lyr1[0], lyr2[0], lyr3[0]]).appendTo(full ? 'body' : el);

        if (opts.theme && opts.draggable && $.fn.draggable) {
            lyr3.draggable({
                handle: '.ui-dialog-titlebar',
                cancel: 'li'
            });
        }

        // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
        var expr = setExpr && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
        if (ie6 || expr) {
            // give body 100% height
            if (full && opts.allowBodyStretch && $.boxModel)
                $('html,body').css('height', '100%');

            // fix ie6 issue when blocked element has a border width
            if ((ie6 || !$.boxModel) && !full) {
                var t = sz(el, 'borderTopWidth'), l = sz(el, 'borderLeftWidth');
                var fixT = t ? '(0 - ' + t + ')' : 0;
                var fixL = l ? '(0 - ' + l + ')' : 0;
            }

            // simulate fixed position
            $.each([lyr1, lyr2, lyr3], function(i, o) {
                var s = o[0].style;
                s.position = 'absolute';
                if (i < 2) {
                    full ? s.setExpression('height', 'Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:' + opts.quirksmodeOffsetHack + ') + "px"')
					 : s.setExpression('height', 'this.parentNode.offsetHeight + "px"');
                    full ? s.setExpression('width', 'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
					 : s.setExpression('width', 'this.parentNode.offsetWidth + "px"');
                    if (fixL) s.setExpression('left', fixL);
                    if (fixT) s.setExpression('top', fixT);
                }
                else if (opts.centerY) {
                    if (full) s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
                    s.marginTop = 0;
                }
                else if (!opts.centerY && full) {
                    var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;
                    var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ' + top + ') + "px"';
                    s.setExpression('top', expression);
                }
            });
        }

        // show the message
        if (msg) {
            if (opts.theme)
                lyr3.find('.ui-widget-content').append(msg);
            else
                lyr3.append(msg);
            if (msg.jquery || msg.nodeType)
                $(msg).show();
        }

        if (($.browser.msie || opts.forceIframe) && opts.showOverlay)
            lyr1.show(); // opacity is zero
        if (opts.fadeIn) {
            if (opts.showOverlay)
                lyr2._fadeIn(opts.fadeIn);
            if (msg)
                lyr3.fadeIn(opts.fadeIn);
        }
        else {
            if (opts.showOverlay)
                lyr2.show();
            if (msg)
                lyr3.show();
        }

        // bind key and mouse events
        bind(1, el, opts);

        if (full) {
            pageBlock = lyr3[0];
            pageBlockEls = $(':input:enabled:visible', pageBlock);
            if (opts.focusInput)
                setTimeout(focus, 20);
        }
        else
            center(lyr3[0], opts.centerX, opts.centerY);

        if (opts.timeout) {
            // auto-unblock
            var to = setTimeout(function() {
                full ? $.unblockUI(opts) : $(el).unblock(opts);
            }, opts.timeout);
            $(el).data('blockUI.timeout', to);
        }
    };

    // remove the block
    function remove(el, opts) {
        var full = (el == window);
        var $el = $(el);
        var data = $el.data('blockUI.history');
        var to = $el.data('blockUI.timeout');
        if (to) {
            clearTimeout(to);
            $el.removeData('blockUI.timeout');
        }
        opts = $.extend({}, $.blockUI.defaults, opts || {});
        bind(0, el, opts); // unbind events

        var els;
        if (full) // crazy selector to handle odd field errors in ie6/7
            els = $('body').children().filter('.blockUI').add('body > .blockUI');
        else
            els = $('.blockUI', el);

        if (full)
            pageBlock = pageBlockEls = null;

        if (opts.fadeOut) {
            els.fadeOut(opts.fadeOut);
            setTimeout(function() { reset(els, data, opts, el); }, opts.fadeOut);
        }
        else
            reset(els, data, opts, el);
    };

    // move blocking element back into the DOM where it started
    function reset(els, data, opts, el) {
        els.each(function(i, o) {
            // remove via DOM calls so we don't lose event handlers
            if (this.parentNode)
                this.parentNode.removeChild(this);
        });

        if (data && data.el) {
            data.el.style.display = data.display;
            data.el.style.position = data.position;
            if (data.parent)
                data.parent.appendChild(data.el);
            $(data.el).removeData('blockUI.history');
        }

        if (typeof opts.onUnblock == 'function')
            opts.onUnblock(el, opts);
    };

    // bind/unbind the handler
    function bind(b, el, opts) {
        var full = el == window, $el = $(el);

        // don't bother unbinding if there is nothing to unbind
        if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
            return;
        if (!full)
            $el.data('blockUI.isBlocked', b);

        // don't bind events when overlay is not in use or if bindEvents is false
        if (!opts.bindEvents || (b && !opts.showOverlay))
            return;

        // bind anchors and inputs for mouse and key events
        var events = 'mousedown mouseup keydown keypress';
        b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);

        // former impl...
        //	   var $e = $('a,:input');
        //	   b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
    };

    // event handler to suppress keyboard/mouse events when blocking
    function handler(e) {
        // allow tab navigation (conditionally)
        if (e.keyCode && e.keyCode == 9) {
            if (pageBlock && e.data.constrainTabKey) {
                var els = pageBlockEls;
                var fwd = !e.shiftKey && e.target == els[els.length - 1];
                var back = e.shiftKey && e.target == els[0];
                if (fwd || back) {
                    setTimeout(function() { focus(back) }, 10);
                    return false;
                }
            }
        }
        // allow events within the message content
        if ($(e.target).parents('div.blockMsg').length > 0)
            return true;

        // allow events for content that is not being blocked
        return $(e.target).parents().children().filter('div.blockUI').length == 0;
    };

    function focus(back) {
        if (!pageBlockEls)
            return;
        var e = pageBlockEls[back === true ? pageBlockEls.length - 1 : 0];
        if (e)
            e.focus();
    };

    function center(el, x, y) {
        var p = el.parentNode, s = el.style;
        var l = ((p.offsetWidth - el.offsetWidth) / 2) - sz(p, 'borderLeftWidth');
        var t = ((p.offsetHeight - el.offsetHeight) / 2) - sz(p, 'borderTopWidth');
        if (x) s.left = l > 0 ? (l + 'px') : '0';
        if (y) s.top = t > 0 ? (t + 'px') : '0';
    };

    function sz(el, p) {
        return parseInt($.css(el, p)) || 0;
    };

})(jQuery);
/*
* jQuery Impromptu
* By: Trent Richardson [http://trentrichardson.com]
* Version 2.7
* Last Modified: 6/7/2009
* 
* Copyright 2009 Trent Richardson
* Dual licensed under the MIT and GPL licenses.
* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
* 
*/

(function($) {
    $.prompt = function(message, options) {
        options = $.extend({}, $.prompt.defaults, options);
        $.prompt.currentPrefix = options.prefix;

        var ie6 = ($.browser.msie && $.browser.version < 7);
        var $body = $(document.body);
        var $window = $(window);

        //build the box and fade
        var msgbox = '<div class="' + options.prefix + 'box" id="' + options.prefix + 'box">';
        if (options.useiframe && (($('object, applet').length > 0) || ie6)) {
            msgbox += '<iframe src="javascript:' + "''" + '" style="display:block;position:absolute;z-index:-1;" class="' + options.prefix + 'fade" id="' + options.prefix + 'fade"></iframe>';
        } else {
            if (ie6) {
                $('select').css('visibility', 'hidden');
            }
            msgbox += '<div class="' + options.prefix + 'fade" id="' + options.prefix + 'fade"></div>';
        }
        msgbox += '<div class="' + options.prefix + '" id="' + options.prefix + '"><div class="' + options.prefix + 'container"><div class="';
        msgbox += options.prefix + 'close">X</div><div id="' + options.prefix + 'states"></div>';
        msgbox += '</div></div></div>';

        var $jqib = $(msgbox).appendTo($body);
        var $jqi = $jqib.children('#' + options.prefix);
        var $jqif = $jqib.children('#' + options.prefix + 'fade');

        //if a string was passed, convert to a single state
        if (message.constructor == String) {
            message = {
                state0: {
                    html: message,
                    buttons: options.buttons,
                    focus: options.focus,
                    submit: options.submit
                }
            };
        }

        //build the states
        var states = "";

        $.each(message, function(statename, stateobj) {
            stateobj = $.extend({}, $.prompt.defaults.state, stateobj);
            message[statename] = stateobj;

            states += '<div id="' + options.prefix + '_state_' + statename + '" class="' + options.prefix + '_state" style="display:none;"><div class="' + options.prefix + 'message">' + stateobj.html + '</div><div class="' + options.prefix + 'buttons">';
            $.each(stateobj.buttons, function(k, v) {
                var buttonText = k;
                var buttonId = k;
                var buttonValue = v;
                if (typeof (v) == "object") {
                    buttonText = v.text;
                    buttonValue = v.value;
                }
                states += '<span class="big-button"><button name="' + options.prefix + '_' + statename + '_button' + buttonId + '" id="' + options.prefix + '_' + statename + '_button' + buttonId + '" value="' + buttonValue + '">' + buttonText + '</button></span>';
            });
            states += '</div></div>';
        });

        //insert the states...
        $jqi.find('#' + options.prefix + 'states').html(states).children('.' + options.prefix + '_state:first').css('display', 'block');
        $jqi.find('.' + options.prefix + 'buttons:empty').css('display', 'none');

        //Events
        $.each(message, function(statename, stateobj) {
            var $state = $jqi.find('#' + options.prefix + '_state_' + statename);

            $state.children('.' + options.prefix + 'buttons').find('button').click(function() {
                var msg = $state.children('.' + options.prefix + 'message');
                var namePrefix = options.prefix + "_" + statename + "_button";
                var buttonName = $(this).attr("name").substr(namePrefix.length);
                var clicked = stateobj.buttons[buttonName];
                if (typeof (clicked) == "object") {
                    clicked = clicked.value;
                }

                var forminputs = {};

                //collect all form element values from all states
                $.each($jqi.find('#' + options.prefix + 'states :input').serializeArray(), function(i, obj) {
                    if (forminputs[obj.name] === undefined) {
                        forminputs[obj.name] = obj.value;
                    } else if (typeof forminputs[obj.name] == Array) {
                        forminputs[obj.name].push(obj.value);
                    } else {
                        forminputs[obj.name] = [forminputs[obj.name], obj.value];
                    }
                });

                var close = stateobj.submit(clicked, msg, forminputs);
                if (close === undefined || close) {
                    removePrompt(true, clicked, msg, forminputs);
                }
            });
            $state.find('.' + options.prefix + 'buttons button:eq(' + stateobj.focus + ')').parent().addClass(options.prefix + 'defaultbutton');
            $state.find('.' + options.prefix + 'buttons button:not(:eq(' + stateobj.focus + '))').parent().addClass(options.prefix + 'otherbutton');

        });

        var ie6scroll = function() {
            $jqib.css({ top: $window.scrollTop() });
        };

        var fadeClicked = function() {
            if (options.persistent) {
                var i = 0;
                $jqib.addClass(options.prefix + 'warning');
                var intervalid = setInterval(function() {
                    $jqib.toggleClass(options.prefix + 'warning');
                    if (i++ > 1) {
                        clearInterval(intervalid);
                        $jqib.removeClass(options.prefix + 'warning');
                    }
                }, 100);
            }
            else {
                removePrompt();
            }
        };

        var keyPressEventHandler = function(e) {
            var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?

            //escape key closes
            if (key == 27) {
                removePrompt();
            }

            //constrain tabs
            if (key == 9) {
                var $inputels = $(':input:enabled:visible', $jqib);
                var fwd = !e.shiftKey && e.target == $inputels[$inputels.length - 1];
                var back = e.shiftKey && e.target == $inputels[0];
                if (fwd || back) {
                    setTimeout(function() {
                        if (!$inputels)
                            return;
                        var el = $inputels[back === true ? $inputels.length - 1 : 0];

                        if (el)
                            el.focus();
                    }, 10);
                    return false;
                }
            }
        };

        var positionPrompt = function() {
            $jqib.css({
                position: (ie6) ? "absolute" : "fixed",
                height: $window.height(),
                width: "100%",
                top: (ie6) ? $window.scrollTop() : 0,
                left: 0,
                right: 0,
                bottom: 0
            });
            $jqif.css({
                position: "absolute",
                height: $window.height(),
                width: "100%",
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            });
            $jqi.css({
                position: "absolute",
                top: options.top,
                left: "50%",
                marginLeft: (($jqi.outerWidth() / 2) * -1)
            });
        };

        var stylePrompt = function() {
            $jqif.css({
                zIndex: options.zIndex,
                display: "none",
                opacity: options.opacity
            });
            $jqi.css({
                zIndex: options.zIndex + 1,
                display: "none"
            });
            $jqib.css({
                zIndex: options.zIndex
            });
        };

        var removePrompt = function(callCallback, clicked, msg, formvals) {
            $jqi.remove();
            //ie6, remove the scroll event
            if (ie6) {
                $body.unbind('scroll', ie6scroll);
            }
            $window.unbind('resize', positionPrompt);
            $jqif.fadeOut(options.overlayspeed, function() {
                $jqif.unbind('click', fadeClicked);
                $jqif.remove();
                if (callCallback) {
                    options.callback(clicked, msg, formvals);
                }
                $jqib.unbind('keypress', keyPressEventHandler);
                $jqib.remove();
                if (ie6 && !options.useiframe) {
                    $('select').css('visibility', 'visible');
                }
            });
        };

        positionPrompt();
        stylePrompt();

        //ie6, add a scroll event to fix position:fixed
        if (ie6) {
            $window.scroll(ie6scroll);
        }
        $jqif.click(fadeClicked);
        $window.resize(positionPrompt);
        $jqib.bind("keydown keypress", keyPressEventHandler);
        $jqi.find('.' + options.prefix + 'close').click(removePrompt);

        //Show it
        $jqif.fadeIn(options.overlayspeed);
        $jqi[options.show](options.promptspeed, options.loaded);
        $jqi.find('#' + options.prefix + 'states .' + options.prefix + '_state:first .' + options.prefix + 'defaultbutton').focus();

        if (options.timeout > 0)
            setTimeout($.prompt.close, options.timeout);

        return $jqib;
    };

    $.prompt.defaults = {
        prefix: 'jqi',
        buttons: {
            Ok: true
        },
        loaded: function() {

        },
        submit: function() {
            return true;
        },
        callback: function() {

        },
        opacity: 0.6,
        zIndex: 999,
        overlayspeed: 'slow',
        promptspeed: 'fast',
        show: 'fadeIn',
        focus: 0,
        useiframe: false,
        top: "15%",
        persistent: true,
        timeout: 0,
        state: {
            html: '',
            buttons: {
                Ok: true
            },
            focus: 0,
            submit: function() {
                return true;
            }
        }
    };

    $.prompt.currentPrefix = $.prompt.defaults.prefix;

    $.prompt.setDefaults = function(o) {
        $.prompt.defaults = $.extend({}, $.prompt.defaults, o);
    };

    $.prompt.setStateDefaults = function(o) {
        $.prompt.defaults.state = $.extend({}, $.prompt.defaults.state, o);
    };

    $.prompt.getStateContent = function(state) {
        return $('#' + $.prompt.currentPrefix + '_state_' + state);
    };

    $.prompt.getCurrentState = function() {
        return $('.' + $.prompt.currentPrefix + '_state:visible');
    };

    $.prompt.getCurrentStateName = function() {
        var stateid = $.prompt.getCurrentState().attr('id');

        return stateid.replace($.prompt.currentPrefix + '_state_', '');
    };

    $.prompt.goToState = function(state) {
        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');
        $('#' + $.prompt.currentPrefix + '_state_' + state).slideDown('slow', function() {
            $(this).find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.nextState = function() {
        var $next = $('.' + $.prompt.currentPrefix + '_state:visible').next();

        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');

        $next.slideDown('slow', function() {
            $next.find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.prevState = function() {
        var $next = $('.' + $.prompt.currentPrefix + '_state:visible').prev();

        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');

        $next.slideDown('slow', function() {
            $next.find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.close = function() {
        $('#' + $.prompt.currentPrefix + 'box').fadeOut('fast', function() {
            $(this).remove();
        });
    };

})(jQuery);
/*
	VERSION: Drop Shadow jQuery Plugin 1.6  12-13-2007

	REQUIRES: jquery.js (1.2.6 or later)

	SYNTAX: $(selector).dropShadow(options);  // Creates new drop shadows
					$(selector).redrawShadow();       // Redraws shadows on elements
					$(selector).removeShadow();       // Removes shadows from elements
					$(selector).shadowId();           // Returns an existing shadow's ID

	OPTIONS:

		left    : integer (default = 4)
		top     : integer (default = 4)
		blur    : integer (default = 2)
		opacity : decimal (default = 0.5)
		color   : string (default = "black")
		swap    : boolean (default = false)

	The left and top parameters specify the distance and direction, in	pixels, to
	offset the shadow. Zero values position the shadow directly behind the element.
	Positive values shift the shadow to the right and down, while negative values 
	shift the shadow to the left and up.
	
	The blur parameter specifies the spread, or dispersion, of the shadow. Zero 
	produces a sharp shadow, one or two produces a normal shadow, and	three or four
	produces a softer shadow. Higher values increase the processing load.
	
	The opacity parameter	should be a decimal value, usually less than one. You can
	use a value	higher than one in special situations, e.g. with extreme blurring. 
	
	Color is specified in the usual manner, with a color name or hex value. The
	color parameter	does not apply with transparent images.
	
	The swap parameter reverses the stacking order of the original and the shadow.
	This can be used for special effects, like an embossed or engraved look.

	EXPLANATION:
	
	This jQuery plug-in adds soft drop shadows behind page elements. It is only
	intended for adding a few drop shadows to mostly stationary objects, like a
	page heading, a photo, or content containers.

	The shadows it creates are not bound to the original elements, so they won't
	move or change size automatically if the original elements change. A window
	resize event listener is assigned, which should re-align the shadows in many
	cases, but if the elements otherwise move or resize you will have to handle
	those events manually. Shadows can be redrawn with the redrawShadow() method
	or removed with the removeShadow() method. The redrawShadow() method uses the
	same options used to create the original shadow. If you want to change the
	options, you should remove the shadow first and then create a new shadow.
	
	The dropShadow method returns a jQuery collection of the new shadow(s). If
	further manipulation is required, you can store it in a variable like this:

		var myShadow = $("#myElement").dropShadow();

	You can also read the ID of the shadow from the original element at a later
	time. To get a shadow's ID, either read the shadowId attribute of the
	original element or call the shadowId() method. For example:

		var myShadowId = $("#myElement").attr("shadowId");  or
		var myShadowId = $("#myElement").shadowId();

	If the original element does not already have an ID assigned, a random ID will
	be generated for the shadow. However, if the original does have an ID, the 
	shadow's ID will be the original ID and "_dropShadow". For example, if the
	element's ID is "myElement", the shadow's ID would be "myElement_dropShadow".

	If you have a long piece of text and the user resizes the	window so that the
	text wraps or unwraps, the shape of the text changes and the words are no
	longer in the same positions. In that case, you can either preset the height
	and width, so that it becomes a fixed box, or you can shadow each word
	separately, like this:

		<h1><span>Your</span> <span>Page</span> <span>Title</span></h1>

		$("h1 span").dropShadow();

	The dropShadow method attempts to determine whether the selected elements have
	transparent backgrounds. If you want to shadow the content inside an element,
	like text or a transparent image, it must not have a background-color or
	background-image style. If the element has a solid background it will create a
	rectangular	shadow around the outside box.

	The shadow elements are positioned absolutely one layer below the original 
	element, which is positioned relatively (unless it's already absolute).

	*** All shadows have the "dropShadow" class, for selecting with CSS or jQuery.

	ISSUES:
	
		1)	Limited styling of shadowed elements by ID. Because IDs must be unique,
				and the shadows have their own ID, styles applied by ID won't transfer
				to the shadows. Instead, style elements by class or use inline styles.
		2)	Sometimes shadows don't align properly. Elements may need to be wrapped
				in container elements, margins or floats changed, etc. or you may just 
				have to tweak the left and top offsets to get them to align. For example,
				with draggable objects, you have to wrap them inside two divs. Make the 
				outer div draggable and set the inner div's position to relative. Then 
				you can create a shadow on the element inside the inner div.
		3)	If the user changes font sizes it will throw the shadows off. Browsers 
				do not expose an event for font size changes. The only known way to 
				detect a user font size change is to embed an invisible text element and
				then continuously poll for changes in size.
		4)	Safari support is shaky, and may require even more tweaks/wrappers, etc.
		
		The bottom line is that this is a gimick effect, not PFM, and if you push it
		too hard or expect it to work in every possible situation on every browser,
		you will be disappointed. Use it sparingly, and don't use it for anything 
		critical. Otherwise, have fun with it!
				
	AUTHOR: Larry Stevens (McLars@eyebulb.com) This work is in the public domain,
					and it is not supported in any way. Use it at your own risk.
*/


(function($){

	var dropShadowZindex = 2000;  //z-index counter

	$.fn.dropShadow = function(options)
	{
		// Default options
		var opt = $.extend({
			left: 4,
			top: 4,
			blur: 2,
			opacity: .5,
			color: "black",
			swap: false
			}, options);
		var jShadows = $([]);  //empty jQuery collection
		
		// Loop through original elements
		this.not(".dropShadow").each(function()
		{
			var jthis = $(this);
			var shadows = [];
			var blur = (opt.blur <= 0) ? 0 : opt.blur;
			var opacity = (blur == 0) ? opt.opacity : opt.opacity / (blur * 8);
			var zOriginal = (opt.swap) ? dropShadowZindex : dropShadowZindex + 1;
			var zShadow = (opt.swap) ? dropShadowZindex + 1 : dropShadowZindex;
			
			// Create ID for shadow
			var shadowId;
			if (this.id) {
				shadowId = this.id + "_dropShadow";
			}
			else {
				shadowId = "ds" + (1 + Math.floor(9999 * Math.random()));
			}

			// Modify original element
			$.data(this, "shadowId", shadowId); //store id in expando
			$.data(this, "shadowOptions", options); //store options in expando
			jthis
				.attr("shadowId", shadowId)
				.css("zIndex", zOriginal);
			if (jthis.css("position") != "absolute") {
				jthis.css({
					position: "relative",
					zoom: 1 //for IE layout
				});
			}

			// Create first shadow layer
			bgColor = jthis.css("backgroundColor");
			if (bgColor == "rgba(0, 0, 0, 0)") bgColor = "transparent";  //Safari
			if (bgColor != "transparent" || jthis.css("backgroundImage") != "none" 
					|| this.nodeName == "SELECT" 
					|| this.nodeName == "INPUT"
					|| this.nodeName == "TEXTAREA") {		
				shadows[0] = $("<div></div>")
					.css("background", opt.color);								
			}
			else {
				shadows[0] = jthis
					.clone()
					.removeAttr("id")
					.removeAttr("name")
					.removeAttr("shadowId")
					.css("color", opt.color);
			}
			shadows[0]
				.addClass("dropShadow")
				.css({
					height: jthis.outerHeight(),
					left: blur,
					opacity: opacity,
					position: "absolute",
					top: blur,
					width: jthis.outerWidth(),
					zIndex: zShadow
				});
				
			// Create other shadow layers
			var layers = (8 * blur) + 1;
			for (i = 1; i < layers; i++) {
				shadows[i] = shadows[0].clone();
			}

			// Position layers
			var i = 1;			
			var j = blur;
			while (j > 0) {
				shadows[i].css({left: j * 2, top: 0});           //top
				shadows[i + 1].css({left: j * 4, top: j * 2});   //right
				shadows[i + 2].css({left: j * 2, top: j * 4});   //bottom
				shadows[i + 3].css({left: 0, top: j * 2});       //left
				shadows[i + 4].css({left: j * 3, top: j});       //top-right
				shadows[i + 5].css({left: j * 3, top: j * 3});   //bottom-right
				shadows[i + 6].css({left: j, top: j * 3});       //bottom-left
				shadows[i + 7].css({left: j, top: j});           //top-left
				i += 8;
				j--;
			}

			// Create container
			var divShadow = $("<div></div>")
				.attr("id", shadowId) 
				.addClass("dropShadow")
				.css({
					left: jthis.position().left + opt.left - blur,
					marginTop: jthis.css("marginTop"),
					marginRight: jthis.css("marginRight"),
					marginBottom: jthis.css("marginBottom"),
					marginLeft: jthis.css("marginLeft"),
					position: "absolute",
					top: jthis.position().top + opt.top - blur,
					zIndex: zShadow
				});

			// Add layers to container	
			for (i = 0; i < layers; i++) {
				divShadow.append(shadows[i]);
			}
			
			// Add container to DOM
			jthis.after(divShadow);

			// Add shadow to return set
			jShadows = jShadows.add(divShadow);

			// Re-align shadow on window resize
			$(window).resize(function()
			{
				try {
					divShadow.css({
						left: jthis.position().left + opt.left - blur,
						top: jthis.position().top + opt.top - blur
					});
				}
				catch(e){}
			});
			
			// Increment z-index counter
			dropShadowZindex += 2;

		});  //end each
		
		return this.pushStack(jShadows);
	};


	$.fn.redrawShadow = function()
	{
		// Remove existing shadows
		this.removeShadow();
		
		// Draw new shadows
		return this.each(function()
		{
			var shadowOptions = $.data(this, "shadowOptions");
			$(this).dropShadow(shadowOptions);
		});
	};


	$.fn.removeShadow = function()
	{
		return this.each(function()
		{
			var shadowId = $(this).shadowId();
			$("div#" + shadowId).remove();
		});
	};


	$.fn.shadowId = function()
	{
		return $.data(this[0], "shadowId");
	};


	$(function()  
	{
		// Suppress printing of shadows
		var noPrint = "<style type='text/css' media='print'>";
		noPrint += ".dropShadow{visibility:hidden;}</style>";
		$("head").append(noPrint);
	});

})(jQuery);/*
 * jQuery validation plug-in 1.5.1
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 JÃ¶rn Zaefferer
 *
 * $Id: jquery.validate.js 6096 2009-01-12 14:12:04Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

(function($) {

    $.extend($.fn, {
        // http://docs.jquery.com/Plugins/Validation/validate
        validate: function(options) {

            // if nothing is selected, return nothing; can't chain anyway
            if (!this.length) {
                options && options.debug && window.console && console.warn("nothing selected, can't validate, returning nothing");
                return;
            }

            // check if a validator for this form was already created
            var validator = $.data(this[0], 'validator');
            if (validator) {
                return validator;
            }

            validator = new $.validator(options, this[0]);
            $.data(this[0], 'validator', validator);

            if (validator.settings.onsubmit) {

                // allow suppresing validation by adding a cancel class to the submit button
                this.find("input, button").filter(".cancel").click(function() {
                    validator.cancelSubmit = true;
                });

                // validate the form on submit
                this.submit(function(event) {
                    if (validator.settings.debug)
                    // prevent form submit to be able to see console output
                        event.preventDefault();

                    function handle() {
                        if (validator.settings.submitHandler) {
                            validator.settings.submitHandler.call(validator, validator.currentForm);
                            return false;
                        }
                        return true;
                    }

                    // prevent submit for invalid forms or custom submit handlers
                    if (validator.cancelSubmit) {
                        validator.cancelSubmit = false;
                        return handle();
                    }
                    if (validator.form()) {
                        if (validator.pendingRequest) {
                            validator.formSubmitted = true;
                            return false;
                        }
                        return handle();
                    } else {
                        validator.focusInvalid();
                        return false;
                    }
                });
            }

            return validator;
        },
        // http://docs.jquery.com/Plugins/Validation/valid
        valid: function() {
            if ($(this[0]).is('form')) {
                return this.validate().form();
            } else {
                var valid = false;
                var validator = $(this[0].form).validate();
                this.each(function() {
                    valid |= validator.element(this);
                });
                return valid;
            }
        },
        // attributes: space seperated list of attributes to retrieve and remove
        removeAttrs: function(attributes) {
            var result = {},
			$element = this;
            $.each(attributes.split(/\s/), function(index, value) {
                result[value] = $element.attr(value);
                $element.removeAttr(value);
            });
            return result;
        },
        // http://docs.jquery.com/Plugins/Validation/rules
        rules: function(command, argument) {
            var element = this[0];

            if (command) {
                var settings = $.data(element.form, 'validator').settings;
                var staticRules = settings.rules;
                var existingRules = $.validator.staticRules(element);
                switch (command) {
                    case "add":
                        $.extend(existingRules, $.validator.normalizeRule(argument));
                        staticRules[element.name] = existingRules;
                        if (argument.messages)
                            settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages);
                        break;
                    case "remove":
                        if (!argument) {
                            delete staticRules[element.name];
                            return existingRules;
                        }
                        var filtered = {};
                        $.each(argument.split(/\s/), function(index, method) {
                            filtered[method] = existingRules[method];
                            delete existingRules[method];
                        });
                        return filtered;
                }
            }

            var data = $.validator.normalizeRules(
		$.extend(
			{},
			$.validator.metadataRules(element),
			$.validator.classRules(element),
			$.validator.attributeRules(element),
			$.validator.staticRules(element)
		), element);

            // make sure required is at front
            if (data.required) {
                var param = data.required;
                delete data.required;
                data = $.extend({ required: param }, data);
            }

            return data;
        }
    });

    // Custom selectors
    $.extend($.expr[":"], {
        // http://docs.jquery.com/Plugins/Validation/blank
        blank: function(a) { return !$.trim(a.value); },
        // http://docs.jquery.com/Plugins/Validation/filled
        filled: function(a) { return !!$.trim(a.value); },
        // http://docs.jquery.com/Plugins/Validation/unchecked
        unchecked: function(a) { return !a.checked; }
    });


    $.format = function(source, params) {
        if (arguments.length == 1)
            return function() {
                var args = $.makeArray(arguments);
                args.unshift(source);
                return $.format.apply(this, args);
            };
        if (arguments.length > 2 && params.constructor != Array) {
            params = $.makeArray(arguments).slice(1);
        }
        if (params.constructor != Array) {
            params = [params];
        }
        $.each(params, function(i, n) {
            source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
        });
        return source;
    };

    // constructor for validator
    $.validator = function(options, form) {
        this.settings = $.extend({}, $.validator.defaults, options);
        this.currentForm = form;
        this.init();
    };

    $.extend($.validator, {

        defaults: {
            messages: {},
            groups: {},
            rules: {},
            errorClass: "error",
            errorElement: "label",
            focusInvalid: true,
            errorContainer: $([]),
            errorLabelContainer: $([]),
            onsubmit: true,
            ignore: [],
            ignoreTitle: false,
            onfocusin: function(element) {
                this.lastActive = element;

                // hide error label and remove error class on focus if enabled
                if (this.settings.focusCleanup && !this.blockFocusCleanup) {
                    this.settings.unhighlight && this.settings.unhighlight.call(this, element, this.settings.errorClass);
                    this.errorsFor(element).hide();
                }
            },
            onfocusout: function(element) {
                if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
                    this.element(element);
                }
            },
            onkeyup: function(element) {
                if (element.name in this.submitted || element == this.lastElement) {
                    this.element(element);
                }
            },
            onclick: function(element) {
                if (element.name in this.submitted)
                    this.element(element);
            },
            highlight: function(element, errorClass) {
                $(element).addClass(errorClass);
            },
            unhighlight: function(element, errorClass) {
                $(element).removeClass(errorClass);
            }
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults
        setDefaults: function(settings) {
            $.extend($.validator.defaults, settings);
        },

        messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            email: "Please enter a valid email address.",
            url: "Please enter a valid URL.",
            date: "Please enter a valid date.",
            dateISO: "Please enter a valid date (ISO).",
            dateDE: "Bitte geben Sie ein gÃ¼ltiges Datum ein.",
            number: "Please enter a valid number.",
            numberDE: "Bitte geben Sie eine Nummer ein.",
            digits: "Please enter only digits",
            creditcard: "Please enter a valid credit card number.",
            equalTo: "Please enter the same value again.",
            accept: "Please enter a value with a valid extension.",
            maxlength: $.format("Please enter no more than {0} characters."),
            minlength: $.format("Please enter at least {0} characters."),
            rangelength: $.format("Please enter a value between {0} and {1} characters long."),
            range: $.format("Please enter a value between {0} and {1}."),
            max: $.format("Please enter a value less than or equal to {0}."),
            min: $.format("Please enter a value greater than or equal to {0}.")
        },

        autoCreateRanges: false,

        prototype: {

            init: function() {
                this.labelContainer = $(this.settings.errorLabelContainer);
                this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
                this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
                this.submitted = {};
                this.valueCache = {};
                this.pendingRequest = 0;
                this.pending = {};
                this.invalid = {};
                this.reset();

                var groups = (this.groups = {});
                $.each(this.settings.groups, function(key, value) {
                    $.each(value.split(/\s/), function(index, name) {
                        groups[name] = key;
                    });
                });
                var rules = this.settings.rules;
                $.each(rules, function(key, value) {
                    rules[key] = $.validator.normalizeRule(value);
                });

                function delegate(event) {
                    var validator = $.data(this[0].form, "validator");
                    validator.settings["on" + event.type] && validator.settings["on" + event.type].call(validator, this[0]);
                }
                $(this.currentForm)
				.delegate("focusin focusout keyup", ":text, :password, :file, select, textarea", delegate)
				.delegate("click", ":radio, :checkbox", delegate);

                if (this.settings.invalidHandler)
                    $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/form
            form: function() {
                this.checkForm();
                $.extend(this.submitted, this.errorMap);
                this.invalid = $.extend({}, this.errorMap);
                if (!this.valid())
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                this.showErrors();
                return this.valid();
            },

            checkForm: function() {
                this.prepareForm();
                for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) {
                    this.check(elements[i]);
                }
                return this.valid();
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/element
            element: function(element) {
                element = this.clean(element);
                this.lastElement = element;
                this.prepareElement(element);
                this.currentElements = $(element);
                var result = this.check(element);
                if (result) {
                    delete this.invalid[element.name];
                } else {
                    this.invalid[element.name] = true;
                }
                if (!this.numberOfInvalids()) {
                    // Hide error containers on last error
                    this.toHide = this.toHide.add(this.containers);
                }
                this.showErrors();
                return result;
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/showErrors
            showErrors: function(errors) {
                if (errors) {
                    // add items to error list and map
                    $.extend(this.errorMap, errors);
                    this.errorList = [];
                    for (var name in errors) {
                        this.errorList.push({
                            message: errors[name],
                            element: this.findByName(name)[0]
                        });
                    }
                    // remove items from success list
                    this.successList = $.grep(this.successList, function(element) {
                        return !(element.name in errors);
                    });
                }
                this.settings.showErrors
				? this.settings.showErrors.call(this, this.errorMap, this.errorList)
				: this.defaultShowErrors();
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/resetForm
            resetForm: function() {
                if ($.fn.resetForm)
                    $(this.currentForm).resetForm();
                this.submitted = {};
                this.prepareForm();
                this.hideErrors();
                this.elements().removeClass(this.settings.errorClass);
            },

            numberOfInvalids: function() {
                return this.objectLength(this.invalid);
            },

            objectLength: function(obj) {
                var count = 0;
                for (var i in obj)
                    count++;
                return count;
            },

            hideErrors: function() {
                this.addWrapper(this.toHide).hide();
            },

            valid: function() {
                return this.size() == 0;
            },

            size: function() {
                return this.errorList.length;
            },

            focusInvalid: function() {
                if (this.settings.focusInvalid) {
                    try {
                        $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
                    } catch (e) {
                        // ignore IE throwing errors when focusing hidden elements
                    }
                }
            },

            findLastActive: function() {
                var lastActive = this.lastActive;
                return lastActive && $.grep(this.errorList, function(n) {
                    return n.element.name == lastActive.name;
                }).length == 1 && lastActive;
            },

            elements: function() {
                var validator = this,
				rulesCache = {};

                // select all valid inputs inside the form (no submit or reset buttons)
                // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved
                return $([]).add(this.currentForm.elements)
			.filter(":input")
			.not(":submit, :reset, :image, [disabled]")
			.not(this.settings.ignore)
			.filter(function() {
			    !this.name && validator.settings.debug && window.console && console.error("%o has no name assigned", this);

			    // select only the first element for each name, and only those with rules specified
			    if (this.name in rulesCache || !validator.objectLength($(this).rules()))
			        return false;

			    rulesCache[this.name] = true;
			    return true;
			});
            },

            clean: function(selector) {
                return $(selector)[0];
            },

            errors: function() {
                return $(this.settings.errorElement + "." + this.settings.errorClass, this.errorContext);
            },

            reset: function() {
                this.successList = [];
                this.errorList = [];
                this.errorMap = {};
                this.toShow = $([]);
                this.toHide = $([]);
                this.formSubmitted = false;
                this.currentElements = $([]);
            },

            prepareForm: function() {
                this.reset();
                this.toHide = this.errors().add(this.containers);
            },

            prepareElement: function(element) {
                this.reset();
                this.toHide = this.errorsFor(element);
            },

            check: function(element) {
                element = this.clean(element);

                // if radio/checkbox, validate first element in group instead
                if (this.checkable(element)) {
                    element = this.findByName(element.name)[0];
                }

                var rules = $(element).rules();
                var dependencyMismatch = false;
                for (method in rules) {
                    var rule = { method: method, parameters: rules[method] };
                    try {
                        var result = $.validator.methods[method].call(this, element.value, element, rule.parameters);

                        // if a method indicates that the field is optional and therefore valid,
                        // don't mark it as valid when there are no other rules
                        if (result == "dependency-mismatch") {
                            dependencyMismatch = true;
                            continue;
                        }
                        dependencyMismatch = false;

                        if (result == "pending") {
                            this.toHide = this.toHide.not(this.errorsFor(element));
                            return;
                        }

                        if (!result) {
                            this.formatAndAdd(element, rule);
                            return false;
                        }
                    } catch (e) {
                        this.settings.debug && window.console && console.log("exception occured when checking element " + element.id
						 + ", check the '" + rule.method + "' method");
                        throw e;
                    }
                }
                if (dependencyMismatch)
                    return;
                if (this.objectLength(rules))
                    this.successList.push(element);
                return true;
            },

            // return the custom message for the given element and validation method
            // specified in the element's "messages" metadata
            customMetaMessage: function(element, method) {
                if (!$.metadata)
                    return;

                var meta = this.settings.meta
				? $(element).metadata()[this.settings.meta]
				: $(element).metadata();

                return meta && meta.messages && meta.messages[method];
            },

            // return the custom message for the given element name and validation method
            customMessage: function(name, method) {
                var m = this.settings.messages[name];
                return m && (m.constructor == String
				? m
				: m[method]);
            },

            // return the first defined argument, allowing empty strings
            findDefined: function() {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] !== undefined)
                        return arguments[i];
                }
                return undefined;
            },

            defaultMessage: function(element, method) {
                return this.findDefined(
				this.customMessage(element.name, method),
				this.customMetaMessage(element, method),
                // title is never undefined, so handle empty string as undefined
				!this.settings.ignoreTitle && element.title || undefined,
				$.validator.messages[method],
				"<strong>Warning: No message defined for " + element.name + "</strong>"
			);
            },

            formatAndAdd: function(element, rule) {
                var message = this.defaultMessage(element, rule.method);
                if (typeof message == "function")
                    message = message.call(this, rule.parameters, element);
                this.errorList.push({
                    message: message,
                    element: element
                });
                this.errorMap[element.name] = message;
                this.submitted[element.name] = message;
            },

            addWrapper: function(toToggle) {
                if (this.settings.wrapper)
                    toToggle = toToggle.add(toToggle.parents(this.settings.wrapper));
                return toToggle;
            },

            defaultShowErrors: function() {
                for (var i = 0; this.errorList[i]; i++) {
                    var error = this.errorList[i];
                    this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass);
                    this.showLabel(error.element, error.message);
                }
                if (this.errorList.length) {
                    this.toShow = this.toShow.add(this.containers);
                }
                if (this.settings.success) {
                    for (var i = 0; this.successList[i]; i++) {
                        this.showLabel(this.successList[i]);
                    }
                }
                if (this.settings.unhighlight) {
                    for (var i = 0, elements = this.validElements(); elements[i]; i++) {
                        this.settings.unhighlight.call(this, elements[i], this.settings.errorClass);
                    }
                }
                this.toHide = this.toHide.not(this.toShow);
                this.hideErrors();
                this.addWrapper(this.toShow).show();
            },

            validElements: function() {
                return this.currentElements.not(this.invalidElements());
            },

            invalidElements: function() {
                return $(this.errorList).map(function() {
                    return this.element;
                });
            },

            showLabel: function(element, message) {
                var label = this.errorsFor(element);
                if (label.length) {
                    // refresh error/success class
                    label.removeClass().addClass(this.settings.errorClass);

                    // check if we have a generated label, replace the message then
                    label.attr("generated") && label.html(message);
                } else {
                    // create label
                    label = $("<" + this.settings.errorElement + "/>")
					.attr({ "for": this.idOrName(element), generated: true })
					.addClass(this.settings.errorClass)
					.html(message || "");
                    if (this.settings.wrapper) {
                        // make sure the element is visible, even in IE
                        // actually showing the wrapped element is handled elsewhere
                        label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
                    }
                    if (!this.labelContainer.append(label).length)
                        this.settings.errorPlacement
						? this.settings.errorPlacement(label, $(element))
						: label.insertAfter(element);
                }
                if (!message && this.settings.success) {
                    label.text("");
                    typeof this.settings.success == "string"
					? label.addClass(this.settings.success)
					: this.settings.success(label);
                }
                this.toShow = this.toShow.add(label);
            },

            errorsFor: function(element) {
                return this.errors().filter("[for='" + this.idOrName(element) + "']");
            },

            idOrName: function(element) {
                return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
            },

            checkable: function(element) {
                return /radio|checkbox/i.test(element.type);
            },

            findByName: function(name) {
                // select by name and filter by form for performance over form.find("[name=...]")
                var form = this.currentForm;
                return $(document.getElementsByName(name)).map(function(index, element) {
                    return element.form == form && element.name == name && element || null;
                });
            },

            getLength: function(value, element) {
                switch (element.nodeName.toLowerCase()) {
                    case 'select':
                        return $("option:selected", element).length;
                    case 'input':
                        if (this.checkable(element))
                            return this.findByName(element.name).filter(':checked').length;
                }
                return value.length;
            },

            depend: function(param, element) {
                return this.dependTypes[typeof param]
				? this.dependTypes[typeof param](param, element)
				: true;
            },

            dependTypes: {
                "boolean": function(param, element) {
                    return param;
                },
                "string": function(param, element) {
                    return !!$(param, element.form).length;
                },
                "function": function(param, element) {
                    return param(element);
                }
            },

            optional: function(element) {
                return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch";
            },

            startRequest: function(element) {
                if (!this.pending[element.name]) {
                    this.pendingRequest++;
                    this.pending[element.name] = true;
                }
            },

            stopRequest: function(element, valid) {
                this.pendingRequest--;
                // sometimes synchronization fails, make sure pendingRequest is never < 0
                if (this.pendingRequest < 0)
                    this.pendingRequest = 0;
                delete this.pending[element.name];
                if (valid && this.pendingRequest == 0 && this.formSubmitted && this.form()) {
                    $(this.currentForm).submit();
                } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                }
            },

            previousValue: function(element) {
                return $.data(element, "previousValue") || $.data(element, "previousValue", previous = {
                    old: null,
                    valid: true,
                    message: this.defaultMessage(element, "remote")
                });
            }

        },

        classRuleSettings: {
            required: { required: true },
            email: { email: true },
            url: { url: true },
            date: { date: true },
            dateISO: { dateISO: true },
            dateDE: { dateDE: true },
            number: { number: true },
            numberDE: { numberDE: true },
            digits: { digits: true },
            creditcard: { creditcard: true }
        },

        addClassRules: function(className, rules) {
            className.constructor == String ?
			this.classRuleSettings[className] = rules :
			$.extend(this.classRuleSettings, className);
        },

        classRules: function(element) {
            var rules = {};
            var classes = $(element).attr('class');
            classes && $.each(classes.split(' '), function() {
                if (this in $.validator.classRuleSettings) {
                    $.extend(rules, $.validator.classRuleSettings[this]);
                }
            });
            return rules;
        },

        attributeRules: function(element) {
            var rules = {};
            var $element = $(element);

            for (method in $.validator.methods) {
                var value = $element.attr(method);
                if (value) {
                    rules[method] = value;
                }
            }

            // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
            if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
                delete rules.maxlength;
            }

            return rules;
        },

        metadataRules: function(element) {
            if (!$.metadata) return {};

            var meta = $.data(element.form, 'validator').settings.meta;
            return meta ?
			$(element).metadata()[meta] :
			$(element).metadata();
        },

        staticRules: function(element) {
            var rules = {};
            var validator = $.data(element.form, 'validator');
            if (validator.settings.rules) {
                rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
            }
            return rules;
        },

        normalizeRules: function(rules, element) {
            // handle dependency check
            $.each(rules, function(prop, val) {
                // ignore rule when param is explicitly false, eg. required:false
                if (val === false) {
                    delete rules[prop];
                    return;
                }
                if (val.param || val.depends) {
                    var keepRule = true;
                    switch (typeof val.depends) {
                        case "string":
                            keepRule = !!$(val.depends, element.form).length;
                            break;
                        case "function":
                            keepRule = val.depends.call(element, element);
                            break;
                    }
                    if (keepRule) {
                        rules[prop] = val.param !== undefined ? val.param : true;
                    } else {
                        delete rules[prop];
                    }
                }
            });

            // evaluate parameters
            $.each(rules, function(rule, parameter) {
                rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
            });

            // clean number parameters
            $.each(['minlength', 'maxlength', 'min', 'max'], function() {
                if (rules[this]) {
                    rules[this] = Number(rules[this]);
                }
            });
            $.each(['rangelength', 'range'], function() {
                if (rules[this]) {
                    rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
                }
            });

            if ($.validator.autoCreateRanges) {
                // auto-create ranges
                if (rules.min && rules.max) {
                    rules.range = [rules.min, rules.max];
                    delete rules.min;
                    delete rules.max;
                }
                if (rules.minlength && rules.maxlength) {
                    rules.rangelength = [rules.minlength, rules.maxlength];
                    delete rules.minlength;
                    delete rules.maxlength;
                }
            }

            // To support custom messages in metadata ignore rule methods titled "messages"
            if (rules.messages) {
                delete rules.messages
            }

            return rules;
        },

        // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
        normalizeRule: function(data) {
            if (typeof data == "string") {
                var transformed = {};
                $.each(data.split(/\s/), function() {
                    transformed[this] = true;
                });
                data = transformed;
            }
            return data;
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/addMethod
        addMethod: function(name, method, message) {
            $.validator.methods[name] = method;
            $.validator.messages[name] = message;
            if (method.length < 3) {
                $.validator.addClassRules(name, $.validator.normalizeRule(name));
            }
        },

        methods: {

            // http://docs.jquery.com/Plugins/Validation/Methods/required
            required: function(value, element, param) {
                // check if dependency is met
                if (!this.depend(param, element))
                    return "dependency-mismatch";
                switch (element.nodeName.toLowerCase()) {
                    case 'select':
                        var options = $("option:selected", element);
                        return options.length > 0 && (element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
                    case 'input':
                        if (this.checkable(element))
                            return this.getLength(value, element) > 0;
                    default:
                        return $.trim(value).length > 0;
                }
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/remote
            remote: function(value, element, param) {
                if (this.optional(element))
                    return "dependency-mismatch";

                var previous = this.previousValue(element);

                if (!this.settings.messages[element.name])
                    this.settings.messages[element.name] = {};
                this.settings.messages[element.name].remote = typeof previous.message == "function" ? previous.message(value) : previous.message;

                param = typeof param == "string" && { url: param} || param;

                if (previous.old !== value) {
                    previous.old = value;
                    var validator = this;
                    this.startRequest(element);
                    var data = {};
                    data[element.name] = value;
                    $.ajax($.extend(true, {
                        url: param,
                        mode: "abort",
                        port: "validate" + element.name,
                        dataType: "json",
                        data: data,
                        success: function(response) {
                            if (response) {
                                var submitted = validator.formSubmitted;
                                validator.prepareElement(element);
                                validator.formSubmitted = submitted;
                                validator.successList.push(element);
                                validator.showErrors();
                            } else {
                                var errors = {};
                                errors[element.name] = response || validator.defaultMessage(element, "remote");
                                validator.showErrors(errors);
                            }
                            previous.valid = response;
                            validator.stopRequest(element, response);
                        }
                    }, param));
                    return "pending";
                } else if (this.pending[element.name]) {
                    return "pending";
                }
                return previous.valid;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/minlength
            minlength: function(value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/maxlength
            maxlength: function(value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/rangelength
            rangelength: function(value, element, param) {
                var length = this.getLength($.trim(value), element);
                return this.optional(element) || (length >= param[0] && length <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/min
            min: function(value, element, param) {
                return this.optional(element) || value >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/max
            max: function(value, element, param) {
                return this.optional(element) || value <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/range
            range: function(value, element, param) {
                return this.optional(element) || (value >= param[0] && value <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/email
            email: function(value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
                return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/url
            url: function(value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
                return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/date
            date: function(value, element) {
                return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/dateISO
            dateISO: function(value, element) {
                return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/dateDE
            dateDE: function(value, element) {
                return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/number
            number: function(value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/numberDE
            numberDE: function(value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/digits
            digits: function(value, element) {
                return this.optional(element) || /^\d+$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/creditcard
            // based on http://en.wikipedia.org/wiki/Luhn
            creditcard: function(value, element) {
                if (this.optional(element))
                    return "dependency-mismatch";
                // accept only digits and dashes
                if (/[^0-9-]+/.test(value))
                    return false;
                var nCheck = 0,
				nDigit = 0,
				bEven = false;

                value = value.replace(/\D/g, "");

                for (n = value.length - 1; n >= 0; n--) {
                    var cDigit = value.charAt(n);
                    var nDigit = parseInt(cDigit, 10);
                    if (bEven) {
                        if ((nDigit *= 2) > 9)
                            nDigit -= 9;
                    }
                    nCheck += nDigit;
                    bEven = !bEven;
                }

                return (nCheck % 10) == 0;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/accept
            accept: function(value, element, param) {
                param = typeof param == "string" ? param : "png|jpe?g|gif";
                return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/equalTo
            equalTo: function(value, element, param) {
                return value == $(param).val();
            }

        }

    });

})(jQuery);

// ajax mode: abort
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 
;(function($) {
	var ajax = $.ajax;
	var pendingRequests = {};
	$.ajax = function(settings) {
		// create settings for compatibility with ajaxSetup
		settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
		var port = settings.port;
		if (settings.mode == "abort") {
			if ( pendingRequests[port] ) {
				pendingRequests[port].abort();
			}
			return (pendingRequests[port] = ajax.apply(this, arguments));
		}
		return ajax.apply(this, arguments);
	};
})(jQuery);

// provides cross-browser focusin and focusout events
// IE has native support, in other browsers, use event caputuring (neither bubbles)

// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target 

// provides triggerEvent(type: String, target: Element) to trigger delegated events
;(function($) {
	$.each({
		focus: 'focusin',
		blur: 'focusout'	
	}, function( original, fix ){
		$.event.special[fix] = {
			setup:function() {
				if ( $.browser.msie ) return false;
				this.addEventListener( original, $.event.special[fix].handler, true );
			},
			teardown:function() {
				if ( $.browser.msie ) return false;
				this.removeEventListener( original,
				$.event.special[fix].handler, true );
			},
			handler: function(e) {
				arguments[0] = $.event.fix(e);
				arguments[0].type = fix;
				return $.event.handle.apply(this, arguments);
			}
		};
	});
	$.extend($.fn, {
		delegate: function(type, delegate, handler) {
			return this.bind(type, function(event) {
				var target = $(event.target);
				if (target.is(delegate)) {
					return handler.apply(target, arguments);
				}
			});
		},
		triggerEvent: function(type, target) {
			return this.triggerHandler(type, [$.event.fix({ type: type, target: target })]);
		}
	})
})(jQuery);
ï»¿// Common initialization
var xVal = xVal || {};
xVal.Plugins = xVal.Plugins || {};
xVal.Messages = xVal.Messages || {};
xVal.AttachValidator = function(elementPrefix, rulesConfig, options, pluginName) {
    if (pluginName != null)
        this.Plugins[pluginName].AttachValidator(elementPrefix, rulesConfig, options);
    else
        for (var key in this.Plugins) {
            this.Plugins[key].AttachValidator(elementPrefix, rulesConfig, options);
            return;
        }
};

// xVal.jquery.validate.js
// An xVal plugin to enable support for jQuery Validate
// http://xval.codeplex.com/
// (c) 2009 Steven Sanderson
// License: Microsoft Public License (Ms-PL) (http://www.opensource.org/licenses/ms-pl.html)

(function($) {
    xVal.Plugins["jquery.validate"] = {
        AttachValidator: function(elementPrefix, rulesConfig, options) {
            var self = this;
            self._ensureCustomFunctionsRegistered();
            $(function() {
                self._ensureValidationSummaryContainerExistsIfRequired(options);

                for (var i = 0; i < rulesConfig.Fields.length; i++) {
                    var fieldName = rulesConfig.Fields[i].FieldName;
                    var fieldRules = rulesConfig.Fields[i].FieldRules;

                    // Is there a matching DOM element?
                    var elemId = self._makeAspNetMvcHtmlHelperID((elementPrefix ? elementPrefix + "." : "") + fieldName);
                    var elem = document.getElementById(elemId);
                    if (elem) {
                        for (var j = 0; j < fieldRules.length; j++) {
                            var rule = fieldRules[j];
                            if (rule != null) {
                                var ruleName = rule.RuleName;
                                var ruleParams = rule.RuleParameters;
                                var errorText = (typeof (rule.Message) == 'undefined' ? null : rule.Message);
                                self._attachRuleToDOMElement(ruleName, ruleParams, errorText, $(elem), elementPrefix, options);
                            }
                        }
                    }
                }
            });
        },

        _makeAspNetMvcHtmlHelperID: function(fullyQualifiedModelName) {
            // If you have changed HtmlHelper.IdAttributeDotReplacement from "_" to something else, then you must also change the following line to match
            return fullyQualifiedModelName.replace(/\./g, "_");
        },

        _attachRuleToDOMElement: function(ruleName, ruleParams, errorText, element, elementPrefix, options) {
            var parentForm = element.parents("form");
            if (parentForm.length != 1)
                alert("Error: Element " + element.attr("id") + " is not in a form");
            this._ensureFormIsMarkedForValidation($(parentForm[0]), options);
            this._associateNearbyValidationMessageSpanWithElement(element);

            var options = {};

            switch (ruleName) {
                case "Required":
                    options.required = true;
                    options.messages = { required: errorText || xVal.Messages.Required };
                    break;

                case "Range":
                    if (ruleParams.Type == "string") {
                        options.xVal_stringRange = [ruleParams.Min, ruleParams.Max];
                        if (errorText != null) options.messages = { xVal_stringRange: $.format(errorText) };
                    }
                    else if (ruleParams.Type == "datetime") {
                        var minDate, maxDate;
                        if (typeof (ruleParams.MinYear) != 'undefined')
                            minDate = new Date(ruleParams.MinYear, ruleParams.MinMonth - 1, ruleParams.MinDay, ruleParams.MinHour, ruleParams.MinMinute, ruleParams.MinSecond);
                        if (typeof (ruleParams.MaxYear) != 'undefined')
                            maxDate = new Date(ruleParams.MaxYear, ruleParams.MaxMonth - 1, ruleParams.MaxDay, ruleParams.MaxHour, ruleParams.MaxMinute, ruleParams.MaxSecond);
                        options.xVal_dateRange = [minDate, maxDate];
                        if (errorText != null) options.messages = { xVal_dateRange: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.Min) == 'undefined') {
                        options.max = ruleParams.Max;
                        errorText = errorText || xVal.Messages.Range_Numeric_Max;
                        if (errorText != null) options.messages = { max: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.Max) == 'undefined') {
                        options.min = ruleParams.Min;
                        errorText = errorText || xVal.Messages.Range_Numeric_Min;
                        if (errorText != null) options.messages = { min: $.format(errorText) };
                    }
                    else {
                        options.range = [ruleParams.Min, ruleParams.Max];
                        errorText = errorText || xVal.Messages.Range_Numeric_MinMax;
                        if (errorText != null) options.messages = { range: $.format(errorText) };
                    }

                    break;

                case "StringLength":
                    if (typeof (ruleParams.MinLength) == 'undefined') {
                        options.maxlength = ruleParams.MaxLength;
                        errorText = errorText || xVal.Messages.StringLength_Max;
                        if (errorText != null) options.messages = { maxlength: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.MaxLength) == 'undefined') {
                        options.minlength = ruleParams.MinLength;
                        errorText = errorText || xVal.Messages.StringLength_Min;
                        if (errorText != null) options.messages = { minlength: $.format(errorText) };
                    }
                    else {
                        options.rangelength = [ruleParams.MinLength, ruleParams.MaxLength];
                        errorText = errorText || xVal.Messages.StringLength_MinMax;
                        if (errorText != null) options.messages = { rangelength: $.format(errorText) };
                    }
                    break;

                case "DataType":
                    switch (ruleParams.Type) {
                        case "EmailAddress":
                            options.email = true;
                            options.messages = { email: errorText || xVal.Messages.DataType_EmailAddress };
                            break;
                        case "Integer":
                            options.xVal_regex = ["^\\-?\\d+$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_Integer || "Please enter a whole number." };
                            break;
                        case "Decimal":
                            options.number = true;
                            options.messages = { number: errorText || xVal.Messages.DataType_Decimal };
                            break;
                        case "Date":
                            options.date = true;
                            options.messages = { date: errorText || xVal.Messages.DataType_Date };
                            break;
                        case "DateTime":
                            options.xVal_regex = ["^\\d{1,2}/\\d{1,2}/(\\d{2}|\\d{4})\\s+\\d{1,2}\\:\\d{2}(\\:\\d{2})?$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_DateTime || "Please enter a valid date and time." };
                            break;
                        case "Currency":
                            options.xVal_regex = ["^\\D?\\s?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_Currency || "Please enter a currency value." };
                            break;
                        case "CreditCardLuhn":
                            options.xVal_creditCardLuhn = true;
                            if (errorText != null) options.messages = { xVal_creditCardLuhn: errorText };
                            break;
                    }
                    break;

                case "RegEx":
                    options.xVal_regex = [ruleParams.Pattern, ruleParams.Options];
                    if (errorText != null) options.messages = { xVal_regex: errorText };
                    break;

                case "Comparison":
                    var elemToCompareId = this._makeAspNetMvcHtmlHelperID((elementPrefix ? elementPrefix + "." : "") + ruleParams.PropertyToCompare);
                    var elemToCompare = document.getElementById(elemToCompareId);
                    if (elemToCompare != null) {
                        options.xVal_comparison = [ruleParams.PropertyToCompare, elemToCompare, ruleParams.ComparisonOperator];
                        if (errorText != null) options.messages = { xVal_comparison: errorText };
                    }
                    break;

                case "Remote":
                    var dataAccessor = {};
                    parentForm.find("input[name], textarea[name], select[name]").each(function() {
                        var input = this;
                        dataAccessor[input.name] = function() { return $(input).val(); };
                    });
                    options.remote = {
                        url: ruleParams.url,
                        data: dataAccessor,
                        type: 'post'
                    };
                    break;

                case "Custom":
                    var ruleFunction = this._parseAsFunctionWithWarnings(ruleParams.Function);
                    if (ruleFunction != null) {
                        var customFunctionName = this._registerCustomValidationFunction(ruleFunction);
                        var evaluatedParams = ruleParams.Parameters == "null" ? null : eval("(" + ruleParams.Parameters + ")");
                        options[customFunctionName] = evaluatedParams || true;
                        options.messages = [];
                        options.messages[customFunctionName] = errorText;
                    }
                    break;
            }

            element.rules("add", options);
        },

        _parseAsFunctionWithWarnings: function(functionString) {
            var result;
            try { result = eval("(" + functionString + ")") }
            catch (ex) {
                alert("Custom rule error: Could not find or could not parse the function '" + functionString + "'");
                return null;
            }
            if (typeof (result) != 'function') {
                alert("Custom rule error: The JavaScript object '" + functionString + "' is not a function.");
                return null;
            }
            return result;
        },

        _associateNearbyValidationMessageSpanWithElement: function(element) {
            // If there's a <span class='field-validation-error'> soon after, it's probably supposed to display the error message
            // jquery.validation goes looking for an attribute called "htmlfor" as follows
            var nearbyMessages = element.nextAll("span.field-validation-error");
            if (nearbyMessages.length > 0) {
                $(nearbyMessages[0]).attr("generated", "true")
                                    .attr("htmlfor", element.attr("id"));
            }
        },

        _ensureFormIsMarkedForValidation: function(formElement, options) {
            if (!formElement.data("isMarkedForValidation")) {
                formElement.data("isMarkedForValidation", true);
                var validationOptions = {
                    errorClass: "field-validation-error",
                    errorElement: "span",
                    highlight: function(element) { $(element).addClass("input-validation-error").trigger("inputValidationFailed"); },
                    unhighlight: function(element) { $(element).removeClass("input-validation-error").trigger("inputValidationPassed"); }
                };
                if (options.ValidationSummary) {
                    validationOptions.wrapper = "li";
                    validationOptions.errorLabelContainer = "#" + options.ValidationSummary.ElementID + " ul:first";
                }
                var validator = formElement.validate(validationOptions);
                if (options.ValidationSummary)
                    this._modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary(validator, options);
            }
        },

        _registerCustomValidationFunction: function(evalFn) {
            jQuery.validator.xValCustomFunctionCount = (jQuery.validator.xValCustomFunctionCount || 0) + 1;
            var functionName = "xVal_customFunction_" + jQuery.validator.xValCustomFunctionCount;
            jQuery.validator.addMethod(functionName, function(value, element, params) {
                if (this.optional(element))
                    return true;
                return evalFn(value, element, params);
            });
            return functionName;
        },

        _ensureCustomFunctionsRegistered: function() {
            if (!jQuery.validator.xValFunctionsRegistered) {
                jQuery.validator.xValFunctionsRegistered = true;

                jQuery.validator.addMethod("xVal_stringRange", function(value, element, params) {
                    if (this.optional(element)) return true;
                    if (params[0] != null)
                        if (value < params[0]) return false;
                    if (params[1] != null)
                        if (value > params[1]) return false;
                    return true;
                }, function(params) {
                    if ((params[0] != null) && (params[1] != null))
                        return $.format(xVal.Messages.Range_String_MinMax || "Please enter a value alphabetically between '{0}' and '{1}'.", params[0], params[1]);
                    else if (params[0] != null)
                        return $.format(xVal.Messages.Range_String_Min || "Please enter a value not alphabetically before '{0}'.", params[0]);
                    else
                        return $.format(xVal.Messages.Range_String_Max || "Please enter a value not alphabetically after '{0}'.", params[1]);
                });

                jQuery.validator.addMethod("xVal_dateRange", function(value, element, params) {
                    if (this.optional(element)) return true;

                    var parsedValue = Date.parse(value);
                    if (isNaN(parsedValue))
                        return false;
                    else
                        parsedValue = new Date(parsedValue);
                    if (params[0] != null)
                        if (parsedValue < params[0]) return false;
                    if (params[1] != null)
                        if (parsedValue > params[1]) return false;
                    return true;
                }, function(params, elem) {
                    if (isNaN(Date.parse(elem.value)))
                        return xVal.Messages.DataType_Date || "Please enter a valid date in yyyy/mm/dd format.";
                    var formatDate = function(date) {
                        var result = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
                        if (date.getHours() + date.getMinutes() + date.getSeconds() != 0)
                            result += " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
                        return result.replace(/\b(\d)\b/g, '0$1');
                    };
                    if ((params[0] != null) && (params[1] != null))
                        return $.format(xVal.Messages.Range_DateTime_MinMax || "Please enter a date between {0} and {1}.", formatDate(params[0]), formatDate(params[1]));
                    else if (params[0] != null)
                        return $.format(xVal.Messages.Range_DateTime_Min || "Please enter a date no earlier than {0}.", formatDate(params[0]));
                    else
                        return $.format(xVal.Messages.Range_DateTime_Max || "Please enter a date no later than {0}.", formatDate(params[1]));
                });

                jQuery.validator.addMethod("xVal_regex", function(value, element, params) {
                    if (this.optional(element)) return true;
                    var pattern = params[0];
                    var options = params[1];
                    var regex = new RegExp(pattern, options);
                    return regex.test(value);
                }, function(params) {
                    return xVal.Messages.Regex || "This value is invalid."; // Pity we can't be more descriptive
                });

                jQuery.validator.addMethod("xVal_creditCardLuhn", function(value, element, params) {
                    if (this.optional(element)) return true;
                    value = value.replace(/\D/g, "");
                    if (value == "") return false;
                    var sum = 0;
                    for (var i = value.length - 2; i >= 0; i -= 2)
                        sum += Array(0, 2, 4, 6, 8, 1, 3, 5, 7, 9)[parseInt(value.charAt(i), 10)];
                    for (var i = value.length - 1; i >= 0; i -= 2)
                        sum += parseInt(value.charAt(i), 10);
                    return (sum % 10) == 0;
                }, function(params) {
                    return xVal.Messages.DataType_CreditCardLuhn || "Please enter a valid credit card number.";
                });

                jQuery.validator.addMethod("xVal_comparison", function(value, element, params) {
                    if (this.optional(element)) return true;
                    var elemToCompare = params[1];
                    var comparisonOperator = params[2];
                    switch (comparisonOperator) {
                        case "Equals": return value == elemToCompare.value;
                        case "DoesNotEqual": return value != elemToCompare.value;
                    }
                    return true; // Ignore unrecognized operator
                }, function(params) {
                    var propertyToCompareName = params[0];
                    var comparisonOperator = params[2];
                    switch (comparisonOperator) {
                        case "Equals": return $.format(xVal.Messages.Comparison_Equals || "This value must be the same as {0}.", propertyToCompareName);
                        case "DoesNotEqual": return $.format(xVal.Messages.Comparison_DoesNotEqual || "This value must be different from {0}.", propertyToCompareName);
                    }
                });

                $.expr[":"].displayableValidationSummaryMessage = function(object) {
                    var span = $(object).find("span:first");
                    if (span.length == 0)
                        return true;
                    return !(span.css("display") === "none") && !span.is(":empty");
                };
            }
        },

        _ensureValidationSummaryContainerExistsIfRequired: function(options) {
            // If we're using a validation summary, make sure the container contains an UL
            // (If there were no server-generated errors, there won't be until we create one)
            if (options.ValidationSummary) {
                var validationSummaryContainer = $("#" + options.ValidationSummary.ElementID);
                if (validationSummaryContainer.length == 0)
                    alert("Cannot find validation summary element \"" + options.ValidationSummary.ElementID + "\". Make sure you've put an element with this ID into your HTML document.");
                if (!validationSummaryContainer.is(":has(ul)")) {
                    validationSummaryContainer.append($("<span class='validation-summary-errors' />").text(options.ValidationSummary.HeaderMessage))
                                              .append($("<ul />"))
                                              .hide();
                }
            }
        },

        _modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary: function(validator, options) {
            // Intercept the hideErrors() and showErrors() methods. Pity there isn't a proper API for this.
            var originalHideErrorsMethod = validator.hideErrors;
            var originalShowErrorsMethod = validator.showErrors;
            validator.hideErrors = function() {
                this.toHide = this.toHide.not("ul"); // Don't ever hide ULs, because these might still contain server-generated error messages
                originalHideErrorsMethod.apply(this, arguments);
                // If the summary container contains no displayable messages, hide the whole thing
                $("#" + options.ValidationSummary.ElementID + ":not(:has(li:displayableValidationSummaryMessage))").hide();
            };
            validator.showErrors = function() {
                originalShowErrorsMethod.apply(this, arguments);
                // If the summary container contains any displayable messages, show it
                $("#" + options.ValidationSummary.ElementID + ":has(li:displayableValidationSummaryMessage)").show();
            };
        }
    };
})(jQuery);(function($){$.extend($,{clearwatermarks:function(){$("[wmwrap='true']").find("input,textarea").watermark({remove:true})},addwatermarks:function(){$("[watermark]").each(function(num,el){$(el).watermark($(el).attr("watermark"))})},watermark:function(o){o.el=$(o.el);if(o.remove){if(o.el.parent().attr("wmwrap")=="true"){o.el.parent().replaceWith(o.el)}}else{if(o.el.parent().attr("wmwrap")!="true"){o.el=o.el.wrap("<span wmwrap='true' style='position:relative;'/>");var l=$("<label/>");if(o.html){l.html(o.html)}if(o.cls){l.addClass(o.cls)}if(o.css){l.css(o.css)}l.css({position:"absolute",left:"3px",top:parseInt(o.el.css("paddingTop")),display:"inline",cursor:"text"});if(o.el.is("TEXTAREA")){if($.browser.msie){l.css("width",o.el.width())}if($.browser.mozilla||$.browser.safari){l.css("top","")}}if(!o.cls&&!o.css){l.css("color","#ccc")}var focus=function(){l.hide()};var blur=function(){if(!o.el.val()){l.show()}else{l.hide()}};var click=function(){o.el.focus()};if(o.inherit){if(typeof o.inherit=="string"){l.css(o.inherit,o.el.css(o.inherit))}else{for(var x=0;x<o.inherit.length;x++){l.css(o.inherit[x],o.el.css(o.inherit[x]))}}}o.el.focus(focus).blur(blur);l.click(click);o.el.before(l);if(o.el.val()){l.hide()}}}return o.el}});$.fn.watermark=function(o){return this.each(function(){if(typeof (o)=="string"){try{o=eval("("+o+")")}catch(ex){o={html:o}}}o.el=this;return $.watermark(o)})}})(jQuery);$().ready(function(){$.addwatermarks()});
$(document).ready(function() {
	vex.init();
});

var vex = {
    _registeredModules: new Array(),
    _baseUrl: '/',
    _contentBaseUrl: '/',
    _translations: {},


    init: function() {
        $(document).pngFix();
        $("form.enhanced-form").jqTransform();
        $("body").addClass("javascript-active");
        vex._initRegisteredModules();
    },

    registerModule: function(module) {
        if (typeof (module) != "object") {
            var err = new Error();
            err.message = "in vex.registerModule: module isn't an object";
            throw err;
        }

        if (typeof (module.init) != "function") {
            var err = new Error();
            err.message = "in vex.registerModule: module doesn't have init method";
            throw err;
        }

        this._registeredModules.push(module);
    },

    _initRegisteredModules: function() {
        for (var i = 0; i < this._registeredModules.length; i++) {
            var module = this._registeredModules[i];
            module.init.call(module);
        }
    },

    contentUrl: function(contentPath) {
        var newPath = this._contentBaseUrl + contentPath.toString().replace("~", "");
        if (newPath[0] == "/" && newPath[1] == "/") {
            newPath = newPath.substr(1);
        }

        return newPath;
    },

    actionUrl: function(action, controller, params) {
        var result = this._baseUrl + controller + "/" + action;

        if (typeof (params) == "object") {
            var paramsStringBuilder = new Array();
            for (paramName in params) {
                paramsStringBuilder.push(paramName + "=" + params[paramName]);
            }
            if (paramsStringBuilder.length) {
                result += "?" + paramsStringBuilder.join("&");
            }
        }

        return result;

    },

    setBaseUrl: function(baseUrl) {
        var lastChar = baseUrl.toString().substr(baseUrl.length - 1, 1);
        if (lastChar != "/") {
            baseUrl += "/";
        }
        this._baseUrl = baseUrl;
    },

    setContentBaseUrl: function(contentUrl) {
        this._contentBaseUrl = contentUrl;
    },

    setTranslations: function(translationsObject) {
        if (typeof (translationsObject) != "object") {
            var err = new Error();
            err.message = "in vex.setTranslations: translationsObject isn't an object";
            throw err;
        }

        this._translations = $.extend(this._translations, translationsObject);
    },

    translate: function(translationKey) {
        return this._translations[translationKey];
    },

    debugDump: function(obj, recursionsLeft) {
        var res = "<ul>";

        if (recursionsLeft > 0) {
            for (k in obj) {
                var keyName = k;
                var keyValue = obj[k];
                var keyType = typeof (keyValue);

                res += "<li><b>" + keyName + "</b> <i>(" + keyValue + ")</i> ";
                switch (keyType) {
                    case "object":
                        res += vex.debugDump(keyValue, recursionsLeft - 1);
                        break;
                    case "string":
                    case "number":
                    case "boolean":
                        res += keyValue;
                        break;
                    case "function":
                        res += "...";
                        break;
                    default:
                        break;
                }
            }
        }
        else {
            res += "<li>Too deep...</li>";
        }
        res += "</ul>";

        return res;
    }
};ï»¿vex.ui = {
    init: function() {
        $(document).bind("ajaxError", vex.ui.onAjaxError);
        vex.ui._radioUpdate();
        $("div.radio-choice div.radio-column").find("a, input").click(vex.ui._radioUpdate);
        $("div.radio-choice").addClass("interactive").click(vex.ui._radioChoiceClicked);

        $("form").bind("inputValidationFailed", vex.ui._refreshButtonsPosition);
        $("form").bind("inputValidationPassed", vex.ui._refreshButtonsPosition);
    },

    _refreshButtonsPosition: function() {
        $(this).find(".button-box:visible").hide().show();

    },

    showInformationMessage: function(message, title) {
        $('#left-column #informationMessages').remove();
        $('#left-column #breadcrumbs').after('<div class="messagebox messagebox-type-info" id="informationMessages"><h2>' + title + '</h2><p>' + message + '</p></div>');
    },

    clearInformationMessages: function() {
        $('#left-column #informationMessages').remove();
    },

    _radioChoiceClicked: function() {
        var $radio = $(this).find("input:radio");
        var val = $radio.val();
        $radio.val(val);
        $(this).find("div.radio-column a").click();

    },

    _radioUpdate: function() {

        $("div.radio-choice").removeClass("radio-choice-active").addClass("radio-choice-inactive");
        $("div.radio-choice:has(input:radio:checked)").addClass("radio-choice-active").removeClass("radio-choice-inactive");
    },

    refreshForm: function(formElement) {
        $(formElement).find("select").each(function() {
            jqRefreshSelect(this);
            return true;
        });
        $(formElement).find("span.jqTransformCheckboxWrapper input:checkbox").each(function() {
            if (this.checked) {
                $(this).parent().find("a.jqTransformCheckbox").addClass("jqTransformChecked");
                if (this.id) {
                    $(this.form).find("label[for=" + this.id + "]").addClass("jqCheckboxLabelChecked");
                }
            }
            else {
                $(this).parent().find("a.jqTransformCheckbox").removeClass("jqTransformChecked");
                if (this.id) {
                    $(this.form).find("label[for=" + this.id + "]").removeClass("jqCheckboxLabelChecked");
                }
            }
        });
        jqTranformReorderZAxis();
    },

    onAjaxError: function(event, xhr, ajaxOptions, thrownError) {

        if (xhr.status == 0) {
            // we didn't receive an anwser from the server yet, so it's likely our request was aborted by clicking somwhere else
            // so, we don't do anything
        }
        else {
            vex.ui.dialog.alert({
                title: "Internal error",
                text: "an error occured"
            });
        }
    }
};

vex.registerModule(vex.ui);ï»¿vex.ui.dialog = {

    init: function() {
        $.prompt.setDefaults({
            opacity: 0.85,
            loaded: vex.ui.dialog._addDialogDropShadow,
            submit: vex.ui.dialog._removeDialogDropShadow,
            zIndex: 2000,
            useiframe: true
        });
    },

    alert: function(options) {
        $.prompt('<div class="modal-caption">Notification</div><div class="modal-body"><div class="modal-title">' + options.title + '</div><p>' + options.text + '</p></div>', {
            buttons: {
                continueShopping: {
                    text: 'Continue shopping',
                    value: true
                }
            }
        });
    },

    prompt: function(dialogTitle, dialogText, buttons, callback, options) {
        var currentOptions = {
            buttons: buttons,
            callback: callback
        };

        if (typeof (options) == "object") {
            currentOptions = $.extend(currentOptions, options);
        }
        $.prompt('<div class="modal-caption">Notification</div><div class="modal-body"><div class="modal-title">' + dialogTitle + '</div><p>' + dialogText + '</p></div>', currentOptions);
    },

    showCartExpirationDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },

    showInvalidSaleForCurrentCartDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },    

    showCancelorderDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },

    _addDialogDropShadow: function() {
        $('div.jqi').dropShadow({
            left: 2,
            top: 2,
            blur: 5,
            opacity: 0.9
        });
    },

    _removeDialogDropShadow: function() {
        $('div.jqi').removeShadow();
    },

    test: function() {
        vex.ui.dialog.alert({ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", text: "Quisque dolor nibh, iaculis id posuere in, volutpat vel massa. Phasellus leo dui, elementum et venenatis id, rutrum eu nunc. Aliquam ullamcorper interdum nisi non eleifend. Integer quis nisl sed urna adipiscing hendrerit. Sed ac libero eros, quis malesuada mauris." });
    }
};

vex.registerModule(vex.ui.dialog);ï»¿(function($) {
    ///	<summary>
    ///		Creates a ajax loader in the given selector.
    ///	</summary>
    ///	<param name="setttings" type="object">
    ///		 An object containing the image to show when loading an ajaxcall.
    ///	</param>
    $.fn.ajaxFader = function(settings) {
        settings = $.extend({ imageLoader: vex.contentUrl('~/Content/images/ajax-loader.gif'), text: '' }, settings);

        // create html
        var faderHtml = '';
        faderHtml += '<div id="ajaxWrapper" class="hidden">';
        faderHtml += '   <div class="ajaxLoader">';
        faderHtml += '       <img id="imgLoader" class="ajaxLoaderImage" src="' + settings.imageLoader + '" />';
        if ('' != settings.text) {
            faderHtml += '       <span class="ajaxLoaderText">' + settings.text + '</span>';
        }
        faderHtml += '   </div>';
        faderHtml += '   <div id="ajaxMask" class="overlayfader"></div>';
        faderHtml += '</div>';

        $(this).css('position', 'relative');
        $(this).addClass("loading-ajax");
        $(this).prepend(faderHtml);

        $("#ajaxWrapper").ajaxStart(function() {
            $(this).fadeIn("normal");
        });

        $("#ajaxWrapper").ajaxStop(function() {
            $(this).fadeOut("normal", function() {
                $(this).parent().removeClass("loading-ajax");
                $(this).remove();
            });
        });
    };
})(jQuery);vex.shop = {};ï»¿vex.shop.cart = {
    timeoutHandle: -1,
    expirationInMinutes: 15,
    expirationInSeconds: 0,
    cartExpirationDateTime: new Date(),
    currentDateTime: new Date(),
    saleId: 0,

    init: function() {
        vex.shop.cart._trimCartSummary();
    },

    addCartItem: function(item) {
        // have a "transfer" effect started for the square moving to the right
        var $prdImage = $('#product-image').stop(true, true);
        var $transferTo = $('#cart-items .cart-item:first');
        if ($transferTo.attr("href") == "#") {
            $transferTo = $("#cart-items");
        }
        $prdImage.effect('transfer', { to: $transferTo });

        // remove any exiting models with the same id from the pane.
        var id = 'cart-item-model-' + item.ModelId;
        $('#' + id).remove();

        // generate a new cart entry on the right (might wanna change this to AJAX)
        $('cart-items .cart-item').css('height', 'auto');
        var newItem = $('#cart-items .cart-item:first')
            .stop(true, true)
            .attr('id', id)
            .clone()
            .show()
            .insertBefore('#cart-items .cart-item:first');

        // change the image in the preview (in this case taking the miniature of the current product image)
        var newSrc = $('#product-image').attr('src');
        newItem.find('.cart-item-pic-container img').attr('src', item.ProductImageUrl);
        newItem.find('.cart-item-quantity .quantity').html(item.Quantity);
        newItem.find('.cart-item-info .cart-product-name').html(item.ProductName);

        if (item.ModelName && item.ModelName != "") {
            newItem.find('.cart-item-info .product-model-name span').html(item.ModelName);
        }
        else {
            newItem.find('.cart-item-info .product-model-name span').html("-");
        }

        newItem.attr("href", vex.actionUrl("Detail", "Product", { productId: item.ProductId, modelId: item.ModelId }));

        vex.shop.cart._reAlternateCartColours();
        newItem.hide().stop(true, true).fadeTo(0, 0).slideDown(500, vex.shop.cart._newCartItemSlidedDown);

        var cartItemCount = $('#cart-items .cart-item').length - 1;
        if (cartItemCount < 0) {
            cartItemCount = 0;
        }
        $('#cart-item-count').html(cartItemCount)

        $('#cart-see-all-products-link').css('display', cartItemCount > 5 ? 'inherit' : 'none');

        $("#menu #menu-right").removeClass("none-active").addClass("one-active");
        $("#menu #menu-right .option").removeClass("option-active").addClass("option-inactive");
        $("#menu #menu-right .option:has(a#menu-right-cart)").removeClass("option-inactive").addClass("option-active");


        vex.shop.cart._trimCartSummary();

        return false;
    },

    _trimCartSummary: function() {
        var maxItems = vex.shop.cart._getMaxItems();

        $("#cart-items .cart-item:lt(" + maxItems + ")").show();
        $("#cart-items .cart-item:gt(" + (maxItems - 1) + ")").hide();
        $("#cart-items .cart-item:last").hide();
    },

    updateCartSummary: function(summary) {
        if (summary.CartItem != null) {

            $('#cart-id').val(summary.CartId);

            if ($('#cart-expiration').css('display') == 'none') {
                vex.shop.cart.expirationInMinutes = summary.ExpirationInMinutes;
                vex.shop.cart.expirationInSeconds = summary.ExpirationInSeconds;
                vex.shop.cart.enterExpirationLoop();
            }
            $('#cart-expiration-cart-empty').css('display', 'none');
            $('#cart-expiration').css('display', '');
            $('#CartCheckoutForm').attr('action', summary.CheckoutActionUrl);
        }
        else {
            $('#cart-expiration-cart-empty').css('display', '');
            $('#cart-expiration').css('display', 'none');
        }
        if (summary.ReductionPercentage == null) {
            $('#cart-row-reduction').css('display', 'none');
        }
        else {
            $('#cart-row-reduction').css('display', '');
            if (summary.IsVolumeReduction) {
                $('#cart-isvolumereduction').css('display', '');
                $('#cart-isreduction').css('display', 'none');
            }
            else {
                $('#cart-isvolumereduction').css('display', 'none');
                $('#cart-isreduction').css('display', '');
            }
        }
        $('#cart-subtotal').html(summary.SubTotalAmount);
        $('#cart-reductionpercentage').html(summary.ReductionPercentage);
        $('#cart-reductionamount').html(summary.ReductionAmount);
        $('#cart-couponsamount').html(summary.CouponsAmount);
        $('#cart-shippingcostsamount').html(summary.ShippingCostsAmount);
        $('#cart-totalamount').html(summary.TotalAmount);
    },

    clearCart: function() {
        vex.shop.cart._clearTimeout();
        var templateItem = $('#cart-items .cart-item:last');
        $('#cart-items .cart-item').remove();
        templateItem.appendTo('#cart-items');
        $('#cart-item-count').html(0);
        // Hide the items on the shopping cart page
        $('.filled-cart').css('display', 'none');
    },

    _reAlternateCartColours: function() {
        $('#cart-items .cart-item').removeClass('cart-item-even cart-item-odd');
        $('#cart-items .cart-item:even').addClass('cart-item-even');
        $('#cart-items .cart-item:odd').addClass('cart-item-odd');
    },

    _newCartItemSlidedDown: function() {
        $(this).show().fadeTo('slow', 1);
    },

    _setCartExpiration: function(minutes) {
        if (minutes > 15) {
            $("#cartExpiration").html(15);
        }
        else {
            $("#cartExpiration").html(minutes);
        }
    },

    _getMaxItems: function() {

        var result = 3;
        var classNames = $("#cart-items").attr("class");
        if (classNames) {
            var classNamesArr = classNames.split(" ");
            for (ci in classNamesArr) {
                var className = classNamesArr[ci];
                var classNameSplit = className.split("-");

                if (classNameSplit[0] == "maxItems" && classNameSplit.length > 1) {
                    result = parseInt(classNameSplit[1]);
                }

            }
        }
        return result;

    },

    enterExpirationLoop: function() {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.expirationInMinutes <= 0 && vex.shop.cart.expirationInSeconds <= 0) {
            vex.shop.cart.expirationInMinutes = 1;
            vex.shop.cart.expirationInSeconds = 0;
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", 0);
        }
        else {
            vex.shop.cart.expirationInMinutes++;
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", vex.shop.cart.expirationInSeconds * 1000);
        }
    },


    setExpiration: function(seconds) {
        vex.shop.cart._clearTimeout();
        vex.shop.cart.expirationInMinutes--;

        if (vex.shop.cart.expirationInMinutes > 0) {
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", 60000);
        }
        else if (vex.shop.cart.expirationInMinutes <= 0) {
            setTimeout("vex.shop.cart._beginCartExpiration(" + seconds + ")", 1000); // Give the process one second to make sure the expirationDateTime is smaller thatn the current datetime.
        }
    },

    _beginCartExpiration: function(seconds) {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.cartExpirationDateTime <= vex.shop.cart.currentDateTime) {
            var bodyId = $("body").attr("id");
            vex.shop.cart._setCartExpiration(0);
            if (bodyId != null && !(bodyId.match("^checkout") == 'checkout')) {
                showCartExpirationDialog();
            }
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.expireCart()", seconds * 1000);
        }
        else {
            vex.shop.cart.enterExpirationLoop(); // re-enter expiration loop as the timeout was cleared.
        }
    },

    showCartExpirationCallback: function(proceedWithCheckOut) {
        vex.shop.cart._clearTimeout();
        if (proceedWithCheckOut) {
            window.location = vex.actionUrl('Shipping', 'Checkout') + "/" + $('#cart-id').val();
        }
        else {
            vex.shop.cart.expireCart();
        }
    },

    expireCart: function() {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.cartExpirationDateTime <= vex.shop.cart.currentDateTime) {

            $.prompt.close();

            var cartId = $('#cart-id').val();

            var action = vex.actionUrl('ExpireCart', 'Cart');
            $.ajax({ type: "POST"
                , url: action
                , data: { cartId: cartId }
                , dataType: "json"
                , success: function(data) {
                    vex.ui.showInformationMessage(cartClearedMessage, cartInformationMessagesTitle);
                    vex.shop.cart.updateCartSummary(data);
                    vex.shop.cart.clearCart();
                }
            });
        }
    },

    getCompleteCart: function() {
        try {
            var action = vex.actionUrl('GetCompleteCart', 'Cart');
            $.ajax({ type: "POST"
                        , url: action
                        , dataType: "html"
                        , success: function(data) {
                            vex.shop.cart._clearTimeout();
                            $('#right-column').html(data);
                            vex.shop.cart.expirationInMinutes--;
                            vex.shop.cart.enterExpirationLoop();
                        }
            });
        }
        catch (error) {
            // No errors.
        }
    },

    _clearTimeout: function() {
        clearTimeout(vex.shop.cart.timeoutHandle);
        vex.shop.cart.timeoutHandle = -1;
    },

    showInvalidSaleForCurrentCartCallback: function(backToPreviousSale) {
        vex.shop.cart._clearTimeout();
        if (backToPreviousSale) {
            window.location = vex.actionUrl('Frame', 'Product') + "/" + vex.shop.cart.saleId;
        }
        else {
            vex.shop.cart.expireCart();
        }
    }
};

vex.registerModule(vex.shop.cart);