/*  Prototype JavaScript framework, version 1.6.0.3
 *  (c) 2005-2008 Sam Stephenson
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://www.prototypejs.org/
 *
 *--------------------------------------------------------------------------*/

var Prototype = {
  Version: '1.6.0.3',

  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions:
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !==
        document.createElement('form')['__proto__']
  },

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,

  emptyFunction: function() { },
  K: function(x) { return x }
};

if (Prototype.Browser.MobileSafari)
  Prototype.BrowserFeatures.SpecificElementExtensions = false;


/* Based on Alex Arnell's inheritance implementation. */
var Class = {
  create: function() {
    var parent = null, properties = $A(arguments);
    if (Object.isFunction(properties[0]))
      parent = properties.shift();

    function klass() {
      this.initialize.apply(this, arguments);
    }

    Object.extend(klass, Class.Methods);
    klass.superclass = parent;
    klass.subclasses = [];

    if (parent) {
      var subclass = function() { };
      subclass.prototype = parent.prototype;
      klass.prototype = new subclass;
      parent.subclasses.push(klass);
    }

    for (var i = 0; i < properties.length; i++)
      klass.addMethods(properties[i]);

    if (!klass.prototype.initialize)
      klass.prototype.initialize = Prototype.emptyFunction;

    klass.prototype.constructor = klass;

    return klass;
  }
};

Class.Methods = {
  addMethods: function(source) {
    var ancestor   = this.superclass && this.superclass.prototype;
    var properties = Object.keys(source);

    if (!Object.keys({ toString: true }).length)
      properties.push("toString", "valueOf");

    for (var i = 0, length = properties.length; i < length; i++) {
      var property = properties[i], value = source[property];
      if (ancestor && Object.isFunction(value) &&
          value.argumentNames().first() == "$super") {
        var method = value;
        value = (function(m) {
          return function() { return ancestor[m].apply(this, arguments) };
        })(property).wrap(method);

        value.valueOf = method.valueOf.bind(method);
        value.toString = method.toString.bind(method);
      }
      this.prototype[property] = value;
    }

    return this;
  }
};

var Abstract = { };

Object.extend = function(destination, source) {
  for (var property in source)
    destination[property] = source[property];
  return destination;
};

Object.extend(Object, {
  inspect: function(object) {
    try {
      if (Object.isUndefined(object)) return 'undefined';
      if (object === null) return 'null';
      return object.inspect ? object.inspect() : String(object);
    } catch (e) {
      if (e instanceof RangeError) return '...';
      throw e;
    }
  },

  toJSON: function(object) {
    var type = typeof object;
    switch (type) {
      case 'undefined':
      case 'function':
      case 'unknown': return;
      case 'boolean': return object.toString();
    }

    if (object === null) return 'null';
    if (object.toJSON) return object.toJSON();
    if (Object.isElement(object)) return;

    var results = [];
    for (var property in object) {
      var value = Object.toJSON(object[property]);
      if (!Object.isUndefined(value))
        results.push(property.toJSON() + ': ' + value);
    }

    return '{' + results.join(', ') + '}';
  },

  toQueryString: function(object) {
    return $H(object).toQueryString();
  },

  toHTML: function(object) {
    return object && object.toHTML ? object.toHTML() : String.interpret(object);
  },

  keys: function(object) {
    var keys = [];
    for (var property in object)
      keys.push(property);
    return keys;
  },

  values: function(object) {
    var values = [];
    for (var property in object)
      values.push(object[property]);
    return values;
  },

  clone: function(object) {
    return Object.extend({ }, object);
  },

  isElement: function(object) {
    return !!(object && object.nodeType == 1);
  },

  isArray: function(object) {
    return object != null && typeof object == "object" &&
      'splice' in object && 'join' in object;
  },

  isHash: function(object) {
    return object instanceof Hash;
  },

  isFunction: function(object) {
    return typeof object == "function";
  },

  isString: function(object) {
    return typeof object == "string";
  },

  isNumber: function(object) {
    return typeof object == "number";
  },

  isUndefined: function(object) {
    return typeof object == "undefined";
  }
});

Object.extend(Function.prototype, {
  argumentNames: function() {
    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
      .replace(/\s+/g, '').split(',');
    return names.length == 1 && !names[0] ? [] : names;
  },

  bind: function() {
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
    var __method = this, args = $A(arguments), object = args.shift();
    return function() {
      return __method.apply(object, args.concat($A(arguments)));
    }
  },

  bindAsEventListener: function() {
    var __method = this, args = $A(arguments), object = args.shift();
    return function(event) {
      return __method.apply(object, [event || window.event].concat(args));
    }
  },

  curry: function() {
    if (!arguments.length) return this;
    var __method = this, args = $A(arguments);
    return function() {
      return __method.apply(this, args.concat($A(arguments)));
    }
  },

  delay: function() {
    var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
    return window.setTimeout(function() {
      return __method.apply(__method, args);
    }, timeout);
  },

  defer: function() {
    var args = [0.01].concat($A(arguments));
    return this.delay.apply(this, args);
  },

  wrap: function(wrapper) {
    var __method = this;
    return function() {
      return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
    }
  },

  methodize: function() {
    if (this._methodized) return this._methodized;
    var __method = this;
    return this._methodized = function() {
      return __method.apply(null, [this].concat($A(arguments)));
    };
  }
});

Date.prototype.toJSON = function() {
  return '"' + this.getUTCFullYear() + '-' +
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
    this.getUTCDate().toPaddedString(2) + 'T' +
    this.getUTCHours().toPaddedString(2) + ':' +
    this.getUTCMinutes().toPaddedString(2) + ':' +
    this.getUTCSeconds().toPaddedString(2) + 'Z"';
};

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0, length = arguments.length; i < length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) { }
    }

    return returnValue;
  }
};

RegExp.prototype.match = RegExp.prototype.test;

RegExp.escape = function(str) {
  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};

/*--------------------------------------------------------------------------*/

var PeriodicalExecuter = Class.create({
  initialize: function(callback, frequency) {
    this.callback = callback;
    this.frequency = frequency;
    this.currentlyExecuting = false;

    this.registerCallback();
  },

  registerCallback: function() {
    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
  },

  execute: function() {
    this.callback(this);
  },

  stop: function() {
    if (!this.timer) return;
    clearInterval(this.timer);
    this.timer = null;
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try {
        this.currentlyExecuting = true;
        this.execute();
      } finally {
        this.currentlyExecuting = false;
      }
    }
  }
});
Object.extend(String, {
  interpret: function(value) {
    return value == null ? '' : String(value);
  },
  specialChar: {
    '\b': '\\b',
    '\t': '\\t',
    '\n': '\\n',
    '\f': '\\f',
    '\r': '\\r',
    '\\': '\\\\'
  }
});

Object.extend(String.prototype, {
  gsub: function(pattern, replacement) {
    var result = '', source = this, match;
    replacement = arguments.callee.prepareReplacement(replacement);

    while (source.length > 0) {
      if (match = source.match(pattern)) {
        result += source.slice(0, match.index);
        result += String.interpret(replacement(match));
        source  = source.slice(match.index + match[0].length);
      } else {
        result += source, source = '';
      }
    }
    return result;
  },

  sub: function(pattern, replacement, count) {
    replacement = this.gsub.prepareReplacement(replacement);
    count = Object.isUndefined(count) ? 1 : count;

    return this.gsub(pattern, function(match) {
      if (--count < 0) return match[0];
      return replacement(match);
    });
  },

  scan: function(pattern, iterator) {
    this.gsub(pattern, iterator);
    return String(this);
  },

  truncate: function(length, truncation) {
    length = length || 30;
    truncation = Object.isUndefined(truncation) ? '...' : truncation;
    return this.length > length ?
      this.slice(0, length - truncation.length) + truncation : String(this);
  },

  strip: function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  },

  stripTags: function() {
    return this.replace(/<\/?[^>]+>/gi, '');
  },

  stripScripts: function() {
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
  },

  extractScripts: function() {
    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  },

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  },

  escapeHTML: function() {
    var self = arguments.callee;
    self.text.data = this;
    return self.div.innerHTML;
  },

  unescapeHTML: function() {
    var div = new Element('div');
    div.innerHTML = this.stripTags();
    return div.childNodes[0] ? (div.childNodes.length > 1 ?
      $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
      div.childNodes[0].nodeValue) : '';
  },

  toQueryParams: function(separator) {
    var match = this.strip().match(/([^?#]*)(#.*)?$/);
    if (!match) return { };

    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
      if ((pair = pair.split('='))[0]) {
        var key = decodeURIComponent(pair.shift());
        var value = pair.length > 1 ? pair.join('=') : pair[0];
        if (value != undefined) value = decodeURIComponent(value);

        if (key in hash) {
          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
          hash[key].push(value);
        }
        else hash[key] = value;
      }
      return hash;
    });
  },

  toArray: function() {
    return this.split('');
  },

  succ: function() {
    return this.slice(0, this.length - 1) +
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
  },

  times: function(count) {
    return count < 1 ? '' : new Array(count + 1).join(this);
  },

  camelize: function() {
    var parts = this.split('-'), len = parts.length;
    if (len == 1) return parts[0];

    var camelized = this.charAt(0) == '-'
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
      : parts[0];

    for (var i = 1; i < len; i++)
      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);

    return camelized;
  },

  capitalize: function() {
    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
  },

  underscore: function() {
    return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
  },

  dasherize: function() {
    return this.gsub(/_/,'-');
  },

  inspect: function(useDoubleQuotes) {
    var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
      var character = String.specialChar[match[0]];
      return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
    });
    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
  },

  toJSON: function() {
    return this.inspect(true);
  },

  unfilterJSON: function(filter) {
    return this.sub(filter || Prototype.JSONFilter, '#{1}');
  },

  isJSON: function() {
    var str = this;
    if (str.blank()) return false;
    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
  },

  evalJSON: function(sanitize) {
    var json = this.unfilterJSON();
    try {
      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
    } catch (e) { }
    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
  },

  include: function(pattern) {
    return this.indexOf(pattern) > -1;
  },

  startsWith: function(pattern) {
    return this.indexOf(pattern) === 0;
  },

  endsWith: function(pattern) {
    var d = this.length - pattern.length;
    return d >= 0 && this.lastIndexOf(pattern) === d;
  },

  empty: function() {
    return this == '';
  },

  blank: function() {
    return /^\s*$/.test(this);
  },

  interpolate: function(object, pattern) {
    return new Template(this, pattern).evaluate(object);
  }
});

if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
  escapeHTML: function() {
    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
  },
  unescapeHTML: function() {
    return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
  }
});

String.prototype.gsub.prepareReplacement = function(replacement) {
  if (Object.isFunction(replacement)) return replacement;
  var template = new Template(replacement);
  return function(match) { return template.evaluate(match) };
};

String.prototype.parseQuery = String.prototype.toQueryParams;

Object.extend(String.prototype.escapeHTML, {
  div:  document.createElement('div'),
  text: document.createTextNode('')
});

String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);

var Template = Class.create({
  initialize: function(template, pattern) {
    this.template = template.toString();
    this.pattern = pattern || Template.Pattern;
  },

  evaluate: function(object) {
    if (Object.isFunction(object.toTemplateReplacements))
      object = object.toTemplateReplacements();

    return this.template.gsub(this.pattern, function(match) {
      if (object == null) return '';

      var before = match[1] || '';
      if (before == '\\') return match[2];

      var ctx = object, expr = match[3];
      var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
      match = pattern.exec(expr);
      if (match == null) return before;

      while (match != null) {
        var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
        ctx = ctx[comp];
        if (null == ctx || '' == match[3]) break;
        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
        match = pattern.exec(expr);
      }

      return before + String.interpret(ctx);
    });
  }
});
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;

var $break = { };

var Enumerable = {
  each: function(iterator, context) {
    var index = 0;
    try {
      this._each(function(value) {
        iterator.call(context, value, index++);
      });
    } catch (e) {
      if (e != $break) throw e;
    }
    return this;
  },

  eachSlice: function(number, iterator, context) {
    var index = -number, slices = [], array = this.toArray();
    if (number < 1) return array;
    while ((index += number) < array.length)
      slices.push(array.slice(index, index+number));
    return slices.collect(iterator, context);
  },

  all: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result = true;
    this.each(function(value, index) {
      result = result && !!iterator.call(context, value, index);
      if (!result) throw $break;
    });
    return result;
  },

  any: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result = false;
    this.each(function(value, index) {
      if (result = !!iterator.call(context, value, index))
        throw $break;
    });
    return result;
  },

  collect: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var results = [];
    this.each(function(value, index) {
      results.push(iterator.call(context, value, index));
    });
    return results;
  },

  detect: function(iterator, context) {
    var result;
    this.each(function(value, index) {
      if (iterator.call(context, value, index)) {
        result = value;
        throw $break;
      }
    });
    return result;
  },

  findAll: function(iterator, context) {
    var results = [];
    this.each(function(value, index) {
      if (iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  grep: function(filter, iterator, context) {
    iterator = iterator || Prototype.K;
    var results = [];

    if (Object.isString(filter))
      filter = new RegExp(filter);

    this.each(function(value, index) {
      if (filter.match(value))
        results.push(iterator.call(context, value, index));
    });
    return results;
  },

  include: function(object) {
    if (Object.isFunction(this.indexOf))
      if (this.indexOf(object) != -1) return true;

    var found = false;
    this.each(function(value) {
      if (value == object) {
        found = true;
        throw $break;
      }
    });
    return found;
  },

  inGroupsOf: function(number, fillWith) {
    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
    return this.eachSlice(number, function(slice) {
      while(slice.length < number) slice.push(fillWith);
      return slice;
    });
  },

  inject: function(memo, iterator, context) {
    this.each(function(value, index) {
      memo = iterator.call(context, memo, value, index);
    });
    return memo;
  },

  invoke: function(method) {
    var args = $A(arguments).slice(1);
    return this.map(function(value) {
      return value[method].apply(value, args);
    });
  },

  max: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value = iterator.call(context, value, index);
      if (result == null || value >= result)
        result = value;
    });
    return result;
  },

  min: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value = iterator.call(context, value, index);
      if (result == null || value < result)
        result = value;
    });
    return result;
  },

  partition: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var trues = [], falses = [];
    this.each(function(value, index) {
      (iterator.call(context, value, index) ?
        trues : falses).push(value);
    });
    return [trues, falses];
  },

  pluck: function(property) {
    var results = [];
    this.each(function(value) {
      results.push(value[property]);
    });
    return results;
  },

  reject: function(iterator, context) {
    var results = [];
    this.each(function(value, index) {
      if (!iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  sortBy: function(iterator, context) {
    return this.map(function(value, index) {
      return {
        value: value,
        criteria: iterator.call(context, value, index)
      };
    }).sort(function(left, right) {
      var a = left.criteria, b = right.criteria;
      return a < b ? -1 : a > b ? 1 : 0;
    }).pluck('value');
  },

  toArray: function() {
    return this.map();
  },

  zip: function() {
    var iterator = Prototype.K, args = $A(arguments);
    if (Object.isFunction(args.last()))
      iterator = args.pop();

    var collections = [this].concat(args).map($A);
    return this.map(function(value, index) {
      return iterator(collections.pluck(index));
    });
  },

  size: function() {
    return this.toArray().length;
  },

  inspect: function() {
    return '#<Enumerable:' + this.toArray().inspect() + '>';
  }
};

Object.extend(Enumerable, {
  map:     Enumerable.collect,
  find:    Enumerable.detect,
  select:  Enumerable.findAll,
  filter:  Enumerable.findAll,
  member:  Enumerable.include,
  entries: Enumerable.toArray,
  every:   Enumerable.all,
  some:    Enumerable.any
});
function $A(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) return iterable.toArray();
  var length = iterable.length || 0, results = new Array(length);
  while (length--) results[length] = iterable[length];
  return results;
}

if (Prototype.Browser.WebKit) {
  $A = function(iterable) {
    if (!iterable) return [];
    // In Safari, only use the `toArray` method if it's not a NodeList.
    // A NodeList is a function, has an function `item` property, and a numeric
    // `length` property. Adapted from Google Doctype.
    if (!(typeof iterable === 'function' && typeof iterable.length ===
        'number' && typeof iterable.item === 'function') && iterable.toArray)
      return iterable.toArray();
    var length = iterable.length || 0, results = new Array(length);
    while (length--) results[length] = iterable[length];
    return results;
  };
}

Array.from = $A;

Object.extend(Array.prototype, Enumerable);

if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;

Object.extend(Array.prototype, {
  _each: function(iterator) {
    for (var i = 0, length = this.length; i < length; i++)
      iterator(this[i]);
  },

  clear: function() {
    this.length = 0;
    return this;
  },

  first: function() {
    return this[0];
  },

  last: function() {
    return this[this.length - 1];
  },

  compact: function() {
    return this.select(function(value) {
      return value != null;
    });
  },

  flatten: function() {
    return this.inject([], function(array, value) {
      return array.concat(Object.isArray(value) ?
        value.flatten() : [value]);
    });
  },

  without: function() {
    var values = $A(arguments);
    return this.select(function(value) {
      return !values.include(value);
    });
  },

  reverse: function(inline) {
    return (inline !== false ? this : this.toArray())._reverse();
  },

  reduce: function() {
    return this.length > 1 ? this : this[0];
  },

  uniq: function(sorted) {
    return this.inject([], function(array, value, index) {
      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
        array.push(value);
      return array;
    });
  },

  intersect: function(array) {
    return this.uniq().findAll(function(item) {
      return array.detect(function(value) { return item === value });
    });
  },

  clone: function() {
    return [].concat(this);
  },

  size: function() {
    return this.length;
  },

  inspect: function() {
    return '[' + this.map(Object.inspect).join(', ') + ']';
  },

  toJSON: function() {
    var results = [];
    this.each(function(object) {
      var value = Object.toJSON(object);
      if (!Object.isUndefined(value)) results.push(value);
    });
    return '[' + results.join(', ') + ']';
  }
});

// use native browser JS 1.6 implementation if available
if (Object.isFunction(Array.prototype.forEach))
  Array.prototype._each = Array.prototype.forEach;

if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
  i || (i = 0);
  var length = this.length;
  if (i < 0) i = length + i;
  for (; i < length; i++)
    if (this[i] === item) return i;
  return -1;
};

if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
  i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
  var n = this.slice(0, i).reverse().indexOf(item);
  return (n < 0) ? n : i - n - 1;
};

Array.prototype.toArray = Array.prototype.clone;

function $w(string) {
  if (!Object.isString(string)) return [];
  string = string.strip();
  return string ? string.split(/\s+/) : [];
}

if (Prototype.Browser.Opera){
  Array.prototype.concat = function() {
    var array = [];
    for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
    for (var i = 0, length = arguments.length; i < length; i++) {
      if (Object.isArray(arguments[i])) {
        for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
          array.push(arguments[i][j]);
      } else {
        array.push(arguments[i]);
      }
    }
    return array;
  };
}
Object.extend(Number.prototype, {
  toColorPart: function() {
    return this.toPaddedString(2, 16);
  },

  succ: function() {
    return this + 1;
  },

  times: function(iterator, context) {
    $R(0, this, true).each(iterator, context);
    return this;
  },

  toPaddedString: function(length, radix) {
    var string = this.toString(radix || 10);
    return '0'.times(length - string.length) + string;
  },

  toJSON: function() {
    return isFinite(this) ? this.toString() : 'null';
  }
});

$w('abs round ceil floor').each(function(method){
  Number.prototype[method] = Math[method].methodize();
});
function $H(object) {
  return new Hash(object);
};

var Hash = Class.create(Enumerable, (function() {

  function toQueryPair(key, value) {
    if (Object.isUndefined(value)) return key;
    return key + '=' + encodeURIComponent(String.interpret(value));
  }

  return {
    initialize: function(object) {
      this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
    },

    _each: function(iterator) {
      for (var key in this._object) {
        var value = this._object[key], pair = [key, value];
        pair.key = key;
        pair.value = value;
        iterator(pair);
      }
    },

    set: function(key, value) {
      return this._object[key] = value;
    },

    get: function(key) {
      // simulating poorly supported hasOwnProperty
      if (this._object[key] !== Object.prototype[key])
        return this._object[key];
    },

    unset: function(key) {
      var value = this._object[key];
      delete this._object[key];
      return value;
    },

    toObject: function() {
      return Object.clone(this._object);
    },

    keys: function() {
      return this.pluck('key');
    },

    values: function() {
      return this.pluck('value');
    },

    index: function(value) {
      var match = this.detect(function(pair) {
        return pair.value === value;
      });
      return match && match.key;
    },

    merge: function(object) {
      return this.clone().update(object);
    },

    update: function(object) {
      return new Hash(object).inject(this, function(result, pair) {
        result.set(pair.key, pair.value);
        return result;
      });
    },

    toQueryString: function() {
      return this.inject([], function(results, pair) {
        var key = encodeURIComponent(pair.key), values = pair.value;

        if (values && typeof values == 'object') {
          if (Object.isArray(values))
            return results.concat(values.map(toQueryPair.curry(key)));
        } else results.push(toQueryPair(key, values));
        return results;
      }).join('&');
    },

    inspect: function() {
      return '#<Hash:{' + this.map(function(pair) {
        return pair.map(Object.inspect).join(': ');
      }).join(', ') + '}>';
    },

    toJSON: function() {
      return Object.toJSON(this.toObject());
    },

    clone: function() {
      return new Hash(this);
    }
  }
})());

Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
Hash.from = $H;
var ObjectRange = Class.create(Enumerable, {
  initialize: function(start, end, exclusive) {
    this.start = start;
    this.end = end;
    this.exclusive = exclusive;
  },

  _each: function(iterator) {
    var value = this.start;
    while (this.include(value)) {
      iterator(value);
      value = value.succ();
    }
  },

  include: function(value) {
    if (value < this.start)
      return false;
    if (this.exclusive)
      return value < this.end;
    return value <= this.end;
  }
});

var $R = function(start, end, exclusive) {
  return new ObjectRange(start, end, exclusive);
};

var Ajax = {
  getTransport: function() {
    return Try.these(
      function() {return new XMLHttpRequest()},
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
    ) || false;
  },

  activeRequestCount: 0
};

Ajax.Responders = {
  responders: [],

  _each: function(iterator) {
    this.responders._each(iterator);
  },

  register: function(responder) {
    if (!this.include(responder))
      this.responders.push(responder);
  },

  unregister: function(responder) {
    this.responders = this.responders.without(responder);
  },

  dispatch: function(callback, request, transport, json) {
    this.each(function(responder) {
      if (Object.isFunction(responder[callback])) {
        try {
          responder[callback].apply(responder, [request, transport, json]);
        } catch (e) { }
      }
    });
  }
};

Object.extend(Ajax.Responders, Enumerable);

Ajax.Responders.register({
  onCreate:   function() { Ajax.activeRequestCount++ },
  onComplete: function() { Ajax.activeRequestCount-- }
});

Ajax.Base = Class.create({
  initialize: function(options) {
    this.options = {
      method:       'post',
      asynchronous: true,
      contentType:  'application/x-www-form-urlencoded',
      encoding:     'UTF-8',
      parameters:   '',
      evalJSON:     true,
      evalJS:       true
    };
    Object.extend(this.options, options || { });

    this.options.method = this.options.method.toLowerCase();

    if (Object.isString(this.options.parameters))
      this.options.parameters = this.options.parameters.toQueryParams();
    else if (Object.isHash(this.options.parameters))
      this.options.parameters = this.options.parameters.toObject();
  }
});

Ajax.Request = Class.create(Ajax.Base, {
  _complete: false,

  initialize: function($super, url, options) {
    $super(options);
    this.transport = Ajax.getTransport();
    this.request(url);
  },

  request: function(url) {
    this.url = url;
    this.method = this.options.method;
    var params = Object.clone(this.options.parameters);

    if (!['get', 'post'].include(this.method)) {
      // simulate other verbs over post
      params['_method'] = this.method;
      this.method = 'post';
    }

    this.parameters = params;

    if (params = Object.toQueryString(params)) {
      // when GET, append parameters to URL
      if (this.method == 'get')
        this.url += (this.url.include('?') ? '&' : '?') + params;
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
        params += '&_=';
    }

    try {
      var response = new Ajax.Response(this);
      if (this.options.onCreate) this.options.onCreate(response);
      Ajax.Responders.dispatch('onCreate', this, response);

      this.transport.open(this.method.toUpperCase(), this.url,
        this.options.asynchronous);

      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);

      this.transport.onreadystatechange = this.onStateChange.bind(this);
      this.setRequestHeaders();

      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
      this.transport.send(this.body);

      /* Force Firefox to handle ready state 4 for synchronous requests */
      if (!this.options.asynchronous && this.transport.overrideMimeType)
        this.onStateChange();

    }
    catch (e) {
      this.dispatchException(e);
    }
  },

  onStateChange: function() {
    var readyState = this.transport.readyState;
    if (readyState > 1 && !((readyState == 4) && this._complete))
      this.respondToReadyState(this.transport.readyState);
  },

  setRequestHeaders: function() {
    var headers = {
      'X-Requested-With': 'XMLHttpRequest',
      'X-Prototype-Version': Prototype.Version,
      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
    };

    if (this.method == 'post') {
      headers['Content-type'] = this.options.contentType +
        (this.options.encoding ? '; charset=' + this.options.encoding : '');

      /* Force "Connection: close" for older Mozilla browsers to work
       * around a bug where XMLHttpRequest sends an incorrect
       * Content-length header. See Mozilla Bugzilla #246651.
       */
      if (this.transport.overrideMimeType &&
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
            headers['Connection'] = 'close';
    }

    // user-defined headers
    if (typeof this.options.requestHeaders == 'object') {
      var extras = this.options.requestHeaders;

      if (Object.isFunction(extras.push))
        for (var i = 0, length = extras.length; i < length; i += 2)
          headers[extras[i]] = extras[i+1];
      else
        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
    }

    for (var name in headers)
      this.transport.setRequestHeader(name, headers[name]);
  },

  success: function() {
    var status = this.getStatus();
    return !status || (status >= 200 && status < 300);
  },

  getStatus: function() {
    try {
      return this.transport.status || 0;
    } catch (e) { return 0 }
  },

  respondToReadyState: function(readyState) {
    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);

    if (state == 'Complete') {
      try {
        this._complete = true;
        (this.options['on' + response.status]
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
         || Prototype.emptyFunction)(response, response.headerJSON);
      } catch (e) {
        this.dispatchException(e);
      }

      var contentType = response.getHeader('Content-type');
      if (this.options.evalJS == 'force'
          || (this.options.evalJS && this.isSameOrigin() && contentType
          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
        this.evalResponse();
    }

    try {
      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
    } catch (e) {
      this.dispatchException(e);
    }

    if (state == 'Complete') {
      // avoid memory leak in MSIE: clean up
      this.transport.onreadystatechange = Prototype.emptyFunction;
    }
  },

  isSameOrigin: function() {
    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
      protocol: location.protocol,
      domain: document.domain,
      port: location.port ? ':' + location.port : ''
    }));
  },

  getHeader: function(name) {
    try {
      return this.transport.getResponseHeader(name) || null;
    } catch (e) { return null }
  },

  evalResponse: function() {
    try {
      return eval((this.transport.responseText || '').unfilterJSON());
    } catch (e) {
      this.dispatchException(e);
    }
  },

  dispatchException: function(exception) {
    (this.options.onException || Prototype.emptyFunction)(this, exception);
    Ajax.Responders.dispatch('onException', this, exception);
  }
});

Ajax.Request.Events =
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

Ajax.Response = Class.create({
  initialize: function(request){
    this.request = request;
    var transport  = this.transport  = request.transport,
        readyState = this.readyState = transport.readyState;

    if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
      this.status       = this.getStatus();
      this.statusText   = this.getStatusText();
      this.responseText = String.interpret(transport.responseText);
      this.headerJSON   = this._getHeaderJSON();
    }

    if(readyState == 4) {
      var xml = transport.responseXML;
      this.responseXML  = Object.isUndefined(xml) ? null : xml;
      this.responseJSON = this._getResponseJSON();
    }
  },

  status:      0,
  statusText: '',

  getStatus: Ajax.Request.prototype.getStatus,

  getStatusText: function() {
    try {
      return this.transport.statusText || '';
    } catch (e) { return '' }
  },

  getHeader: Ajax.Request.prototype.getHeader,

  getAllHeaders: function() {
    try {
      return this.getAllResponseHeaders();
    } catch (e) { return null }
  },

  getResponseHeader: function(name) {
    return this.transport.getResponseHeader(name);
  },

  getAllResponseHeaders: function() {
    return this.transport.getAllResponseHeaders();
  },

  _getHeaderJSON: function() {
    var json = this.getHeader('X-JSON');
    if (!json) return null;
    json = decodeURIComponent(escape(json));
    try {
      return json.evalJSON(this.request.options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  },

  _getResponseJSON: function() {
    var options = this.request.options;
    if (!options.evalJSON || (options.evalJSON != 'force' &&
      !(this.getHeader('Content-type') || '').include('application/json')) ||
        this.responseText.blank())
          return null;
    try {
      return this.responseText.evalJSON(options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  }
});

Ajax.Updater = Class.create(Ajax.Request, {
  initialize: function($super, container, url, options) {
    this.container = {
      success: (container.success || container),
      failure: (container.failure || (container.success ? null : container))
    };

    options = Object.clone(options);
    var onComplete = options.onComplete;
    options.onComplete = (function(response, json) {
      this.updateContent(response.responseText);
      if (Object.isFunction(onComplete)) onComplete(response, json);
    }).bind(this);

    $super(url, options);
  },

  updateContent: function(responseText) {
    var receiver = this.container[this.success() ? 'success' : 'failure'],
        options = this.options;

    if (!options.evalScripts) responseText = responseText.stripScripts();

    if (receiver = $(receiver)) {
      if (options.insertion) {
        if (Object.isString(options.insertion)) {
          var insertion = { }; insertion[options.insertion] = responseText;
          receiver.insert(insertion);
        }
        else options.insertion(receiver, responseText);
      }
      else receiver.update(responseText);
    }
  }
});

Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
  initialize: function($super, container, url, options) {
    $super(options);
    this.onComplete = this.options.onComplete;

    this.frequency = (this.options.frequency || 2);
    this.decay = (this.options.decay || 1);

    this.updater = { };
    this.container = container;
    this.url = url;

    this.start();
  },

  start: function() {
    this.options.onComplete = this.updateComplete.bind(this);
    this.onTimerEvent();
  },

  stop: function() {
    this.updater.options.onComplete = undefined;
    clearTimeout(this.timer);
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
  },

  updateComplete: function(response) {
    if (this.options.decay) {
      this.decay = (response.responseText == this.lastText ?
        this.decay * this.options.decay : 1);

      this.lastText = response.responseText;
    }
    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
  },

  onTimerEvent: function() {
    this.updater = new Ajax.Updater(this.container, this.url, this.options);
  }
});
function $(element) {
  if (arguments.length > 1) {
    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      elements.push($(arguments[i]));
    return elements;
  }
  if (Object.isString(element))
    element = document.getElementById(element);
  return Element.extend(element);
}

if (Prototype.BrowserFeatures.XPath) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, $(parentElement) || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(Element.extend(query.snapshotItem(i)));
    return results;
  };
}

/*--------------------------------------------------------------------------*/

if (!window.Node) var Node = { };

if (!Node.ELEMENT_NODE) {
  // DOM level 2 ECMAScript Language Binding
  Object.extend(Node, {
    ELEMENT_NODE: 1,
    ATTRIBUTE_NODE: 2,
    TEXT_NODE: 3,
    CDATA_SECTION_NODE: 4,
    ENTITY_REFERENCE_NODE: 5,
    ENTITY_NODE: 6,
    PROCESSING_INSTRUCTION_NODE: 7,
    COMMENT_NODE: 8,
    DOCUMENT_NODE: 9,
    DOCUMENT_TYPE_NODE: 10,
    DOCUMENT_FRAGMENT_NODE: 11,
    NOTATION_NODE: 12
  });
}

(function() {
  var element = this.Element;
  this.Element = function(tagName, attributes) {
    attributes = attributes || { };
    tagName = tagName.toLowerCase();
    var cache = Element.cache;
    if (Prototype.Browser.IE && attributes.name) {
      tagName = '<' + tagName + ' name="' + attributes.name + '">';
      delete attributes.name;
      return Element.writeAttribute(document.createElement(tagName), attributes);
    }
    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
    return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
  };
  Object.extend(this.Element, element || { });
  if (element) this.Element.prototype = element.prototype;
}).call(window);

Element.cache = { };

Element.Methods = {
  visible: function(element) {
    return $(element).style.display != 'none';
  },

  toggle: function(element) {
    element = $(element);
    Element[Element.visible(element) ? 'hide' : 'show'](element);
    return element;
  },

  hide: function(element) {
    element = $(element);
    element.style.display = 'none';
    return element;
  },

  show: function(element) {
    element = $(element);
    element.style.display = '';
    return element;
  },

  remove: function(element) {
    element = $(element);
    element.parentNode.removeChild(element);
    return element;
  },

  update: function(element, content) {
    element = $(element);
    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) return element.update().insert(content);
    content = Object.toHTML(content);
    element.innerHTML = content.stripScripts();
    content.evalScripts.bind(content).defer();
    return element;
  },

  replace: function(element, content) {
    element = $(element);
    if (content && content.toElement) content = content.toElement();
    else if (!Object.isElement(content)) {
      content = Object.toHTML(content);
      var range = element.ownerDocument.createRange();
      range.selectNode(element);
      content.evalScripts.bind(content).defer();
      content = range.createContextualFragment(content.stripScripts());
    }
    element.parentNode.replaceChild(content, element);
    return element;
  },

  insert: function(element, insertions) {
    element = $(element);

    if (Object.isString(insertions) || Object.isNumber(insertions) ||
        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
          insertions = {bottom:insertions};

    var content, insert, tagName, childNodes;

    for (var position in insertions) {
      content  = insertions[position];
      position = position.toLowerCase();
      insert = Element._insertionTranslations[position];

      if (content && content.toElement) content = content.toElement();
      if (Object.isElement(content)) {
        insert(element, content);
        continue;
      }

      content = Object.toHTML(content);

      tagName = ((position == 'before' || position == 'after')
        ? element.parentNode : element).tagName.toUpperCase();

      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());

      if (position == 'top' || position == 'after') childNodes.reverse();
      childNodes.each(insert.curry(element));

      content.evalScripts.bind(content).defer();
    }

    return element;
  },

  wrap: function(element, wrapper, attributes) {
    element = $(element);
    if (Object.isElement(wrapper))
      $(wrapper).writeAttribute(attributes || { });
    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
    else wrapper = new Element('div', wrapper);
    if (element.parentNode)
      element.parentNode.replaceChild(wrapper, element);
    wrapper.appendChild(element);
    return wrapper;
  },

  inspect: function(element) {
    element = $(element);
    var result = '<' + element.tagName.toLowerCase();
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
      var property = pair.first(), attribute = pair.last();
      var value = (element[property] || '').toString();
      if (value) result += ' ' + attribute + '=' + value.inspect(true);
    });
    return result + '>';
  },

  recursivelyCollect: function(element, property) {
    element = $(element);
    var elements = [];
    while (element = element[property])
      if (element.nodeType == 1)
        elements.push(Element.extend(element));
    return elements;
  },

  ancestors: function(element) {
    return $(element).recursivelyCollect('parentNode');
  },

  descendants: function(element) {
    return $(element).select("*");
  },

  firstDescendant: function(element) {
    element = $(element).firstChild;
    while (element && element.nodeType != 1) element = element.nextSibling;
    return $(element);
  },

  immediateDescendants: function(element) {
    if (!(element = $(element).firstChild)) return [];
    while (element && element.nodeType != 1) element = element.nextSibling;
    if (element) return [element].concat($(element).nextSiblings());
    return [];
  },

  previousSiblings: function(element) {
    return $(element).recursivelyCollect('previousSibling');
  },

  nextSiblings: function(element) {
    return $(element).recursivelyCollect('nextSibling');
  },

  siblings: function(element) {
    element = $(element);
    return element.previousSiblings().reverse().concat(element.nextSiblings());
  },

  match: function(element, selector) {
    if (Object.isString(selector))
      selector = new Selector(selector);
    return selector.match($(element));
  },

  up: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(element.parentNode);
    var ancestors = element.ancestors();
    return Object.isNumber(expression) ? ancestors[expression] :
      Selector.findElement(ancestors, expression, index);
  },

  down: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return element.firstDescendant();
    return Object.isNumber(expression) ? element.descendants()[expression] :
      Element.select(element, expression)[index || 0];
  },

  previous: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
    var previousSiblings = element.previousSiblings();
    return Object.isNumber(expression) ? previousSiblings[expression] :
      Selector.findElement(previousSiblings, expression, index);
  },

  next: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
    var nextSiblings = element.nextSiblings();
    return Object.isNumber(expression) ? nextSiblings[expression] :
      Selector.findElement(nextSiblings, expression, index);
  },

  select: function() {
    var args = $A(arguments), element = $(args.shift());
    return Selector.findChildElements(element, args);
  },

  adjacent: function() {
    var args = $A(arguments), element = $(args.shift());
    return Selector.findChildElements(element.parentNode, args).without(element);
  },

  identify: function(element) {
    element = $(element);
    var id = element.readAttribute('id'), self = arguments.callee;
    if (id) return id;
    do { id = 'anonymous_element_' + self.counter++ } while ($(id));
    element.writeAttribute('id', id);
    return id;
  },

  readAttribute: function(element, name) {
    element = $(element);
    if (Prototype.Browser.IE) {
      var t = Element._attributeTranslations.read;
      if (t.values[name]) return t.values[name](element, name);
      if (t.names[name]) name = t.names[name];
      if (name.include(':')) {
        return (!element.attributes || !element.attributes[name]) ? null :
         element.attributes[name].value;
      }
    }
    return element.getAttribute(name);
  },

  writeAttribute: function(element, name, value) {
    element = $(element);
    var attributes = { }, t = Element._attributeTranslations.write;

    if (typeof name == 'object') attributes = name;
    else attributes[name] = Object.isUndefined(value) ? true : value;

    for (var attr in attributes) {
      name = t.names[attr] || attr;
      value = attributes[attr];
      if (t.values[attr]) name = t.values[attr](element, value);
      if (value === false || value === null)
        element.removeAttribute(name);
      else if (value === true)
        element.setAttribute(name, name);
      else element.setAttribute(name, value);
    }
    return element;
  },

  getHeight: function(element) {
    return $(element).getDimensions().height;
  },

  getWidth: function(element) {
    return $(element).getDimensions().width;
  },

  classNames: function(element) {
    return new Element.ClassNames(element);
  },

  hasClassName: function(element, className) {
    if (!(element = $(element))) return;
    var elementClassName = element.className;
    return (elementClassName.length > 0 && (elementClassName == className ||
      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
  },

  addClassName: function(element, className) {
    if (!(element = $(element))) return;
    if (!element.hasClassName(className))
      element.className += (element.className ? ' ' : '') + className;
    return element;
  },

  removeClassName: function(element, className) {
    if (!(element = $(element))) return;
    element.className = element.className.replace(
      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
    return element;
  },

  toggleClassName: function(element, className) {
    if (!(element = $(element))) return;
    return element[element.hasClassName(className) ?
      'removeClassName' : 'addClassName'](className);
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element = $(element);
    var node = element.firstChild;
    while (node) {
      var nextNode = node.nextSibling;
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
        element.removeChild(node);
      node = nextNode;
    }
    return element;
  },

  empty: function(element) {
    return $(element).innerHTML.blank();
  },

  descendantOf: function(element, ancestor) {
    element = $(element), ancestor = $(ancestor);

    if (element.compareDocumentPosition)
      return (element.compareDocumentPosition(ancestor) & 8) === 8;

    if (ancestor.contains)
      return ancestor.contains(element) && ancestor !== element;

    while (element = element.parentNode)
      if (element == ancestor) return true;

    return false;
  },

  scrollTo: function(element) {
    element = $(element);
    var pos = element.cumulativeOffset();
    window.scrollTo(pos[0], pos[1]);
    return element;
  },

  getStyle: function(element, style) {
    element = $(element);
    style = style == 'float' ? 'cssFloat' : style.camelize();
    var value = element.style[style];
    if (!value || value == 'auto') {
      var css = document.defaultView.getComputedStyle(element, null);
      value = css ? css[style] : null;
    }
    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
    return value == 'auto' ? null : value;
  },

  getOpacity: function(element) {
    return $(element).getStyle('opacity');
  },

  setStyle: function(element, styles) {
    element = $(element);
    var elementStyle = element.style, match;
    if (Object.isString(styles)) {
      element.style.cssText += ';' + styles;
      return styles.include('opacity') ?
        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
    }
    for (var property in styles)
      if (property == 'opacity') element.setOpacity(styles[property]);
      else
        elementStyle[(property == 'float' || property == 'cssFloat') ?
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
            property] = styles[property];

    return element;
  },

  setOpacity: function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1 || value === '') ? '' :
      (value < 0.00001) ? 0 : value;
    return element;
  },

  getDimensions: function(element) {
    element = $(element);
    var display = element.getStyle('display');
    if (display != 'none' && display != null) // Safari bug
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    var originalDisplay = els.display;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = 'block';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = originalDisplay;
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  makePositioned: function(element) {
    element = $(element);
    var pos = Element.getStyle(element, 'position');
    if (pos == 'static' || !pos) {
      element._madePositioned = true;
      element.style.position = 'relative';
      // Opera returns the offset relative to the positioning context, when an
      // element is position relative but top and left have not been defined
      if (Prototype.Browser.Opera) {
        element.style.top = 0;
        element.style.left = 0;
      }
    }
    return element;
  },

  undoPositioned: function(element) {
    element = $(element);
    if (element._madePositioned) {
      element._madePositioned = undefined;
      element.style.position =
        element.style.top =
        element.style.left =
        element.style.bottom =
        element.style.right = '';
    }
    return element;
  },

  makeClipping: function(element) {
    element = $(element);
    if (element._overflow) return element;
    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
    if (element._overflow !== 'hidden')
      element.style.overflow = 'hidden';
    return element;
  },

  undoClipping: function(element) {
    element = $(element);
    if (!element._overflow) return element;
    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
    element._overflow = null;
    return element;
  },

  cumulativeOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  positionedOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
      if (element) {
        if (element.tagName.toUpperCase() == 'BODY') break;
        var p = Element.getStyle(element, 'position');
        if (p !== 'static') break;
      }
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  absolutize: function(element) {
    element = $(element);
    if (element.getStyle('position') == 'absolute') return element;
    // Position.prepare(); // To be done manually by Scripty when it needs it.

    var offsets = element.positionedOffset();
    var top     = offsets[1];
    var left    = offsets[0];
    var width   = element.clientWidth;
    var height  = element.clientHeight;

    element._originalLeft   = left - parseFloat(element.style.left  || 0);
    element._originalTop    = top  - parseFloat(element.style.top || 0);
    element._originalWidth  = element.style.width;
    element._originalHeight = element.style.height;

    element.style.position = 'absolute';
    element.style.top    = top + 'px';
    element.style.left   = left + 'px';
    element.style.width  = width + 'px';
    element.style.height = height + 'px';
    return element;
  },

  relativize: function(element) {
    element = $(element);
    if (element.getStyle('position') == 'relative') return element;
    // Position.prepare(); // To be done manually by Scripty when it needs it.

    element.style.position = 'relative';
    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);

    element.style.top    = top + 'px';
    element.style.left   = left + 'px';
    element.style.height = element._originalHeight;
    element.style.width  = element._originalWidth;
    return element;
  },

  cumulativeScrollOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.scrollTop  || 0;
      valueL += element.scrollLeft || 0;
      element = element.parentNode;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  getOffsetParent: function(element) {
    if (element.offsetParent) return $(element.offsetParent);
    if (element == document.body) return $(element);
    if(element.tagName.toUpperCase()=='HTML') //for IE6,7
        return $(document.body);                //

    while ((element = element.parentNode) && element != document.body)
      if (Element.getStyle(element, 'position') != 'static')
        return $(element);

    return $(document.body);
  },

  viewportOffset: function(forElement) {
    var valueT = 0, valueL = 0;

    var element = forElement;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;

      // Safari fix
      if (element.offsetParent == document.body &&
        Element.getStyle(element, 'position') == 'absolute') break;

    } while (element = element.offsetParent);

    element = forElement;
    do {
      if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
        valueT -= element.scrollTop  || 0;
        valueL -= element.scrollLeft || 0;
      }
    } while (element = element.parentNode);

    return Element._returnOffset(valueL, valueT);
  },

  clonePosition: function(element, source) {
    var options = Object.extend({
      setLeft:    true,
      setTop:     true,
      setWidth:   true,
      setHeight:  true,
      offsetTop:  0,
      offsetLeft: 0
    }, arguments[2] || { });

    // find page position of source
    source = $(source);
    var p = source.viewportOffset();

    // find coordinate system to use
    element = $(element);
    var delta = [0, 0];
    var parent = null;
    // delta [0,0] will do fine with position: fixed elements,
    // position:absolute needs offsetParent deltas
    if (Element.getStyle(element, 'position') == 'absolute') {
      parent = element.getOffsetParent();
      delta = parent.viewportOffset();
    }

    // correct by body offsets (fixes Safari)
    if (parent == document.body) {
      delta[0] -= document.body.offsetLeft;
      delta[1] -= document.body.offsetTop;
    }

    // set position
    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
    return element;
  }
};

Element.Methods.identify.counter = 1;

Object.extend(Element.Methods, {
  getElementsBySelector: Element.Methods.select,
  childElements: Element.Methods.immediateDescendants
});

Element._attributeTranslations = {
  write: {
    names: {
      className: 'class',
      htmlFor:   'for'
    },
    values: { }
  }
};

if (Prototype.Browser.Opera) {
  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
    function(proceed, element, style) {
      switch (style) {
        case 'left': case 'top': case 'right': case 'bottom':
          if (proceed(element, 'position') === 'static') return null;
        case 'height': case 'width':
          // returns '0px' for hidden elements; we want it to return null
          if (!Element.visible(element)) return null;

          // returns the border-box dimensions rather than the content-box
          // dimensions, so we subtract padding and borders from the value
          var dim = parseInt(proceed(element, style), 10);

          if (dim !== element['offset' + style.capitalize()])
            return dim + 'px';

          var properties;
          if (style === 'height') {
            properties = ['border-top-width', 'padding-top',
             'padding-bottom', 'border-bottom-width'];
          }
          else {
            properties = ['border-left-width', 'padding-left',
             'padding-right', 'border-right-width'];
          }
          return properties.inject(dim, function(memo, property) {
            var val = proceed(element, property);
            return val === null ? memo : memo - parseInt(val, 10);
          }) + 'px';
        default: return proceed(element, style);
      }
    }
  );

  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
    function(proceed, element, attribute) {
      if (attribute === 'title') return element.title;
      return proceed(element, attribute);
    }
  );
}

else if (Prototype.Browser.IE) {
  // IE doesn't report offsets correctly for static elements, so we change them
  // to "relative" to get the values, then change them back.
  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
    function(proceed, element) {
      element = $(element);
      // IE throws an error if element is not in document
      try { element.offsetParent }
      catch(e) { return $(document.body) }
      var position = element.getStyle('position');
      if (position !== 'static') return proceed(element);
      element.setStyle({ position: 'relative' });
      var value = proceed(element);
      element.setStyle({ position: position });
      return value;
    }
  );

  $w('positionedOffset viewportOffset').each(function(method) {
    Element.Methods[method] = Element.Methods[method].wrap(
      function(proceed, element) {
        element = $(element);
        try { element.offsetParent }
        catch(e) { return Element._returnOffset(0,0) }
        var position = element.getStyle('position');
        if (position !== 'static') return proceed(element);
        // Trigger hasLayout on the offset parent so that IE6 reports
        // accurate offsetTop and offsetLeft values for position: fixed.
        var offsetParent = element.getOffsetParent();
        if (offsetParent && offsetParent.getStyle('position') === 'fixed')
          offsetParent.setStyle({ zoom: 1 });
        element.setStyle({ position: 'relative' });
        var value = proceed(element);
        element.setStyle({ position: position });
        return value;
      }
    );
  });

  Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
    function(proceed, element) {
      try { element.offsetParent }
      catch(e) { return Element._returnOffset(0,0) }
      return proceed(element);
    }
  );

  Element.Methods.getStyle = function(element, style) {
    element = $(element);
    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
    var value = element.style[style];
    if (!value && element.currentStyle) value = element.currentStyle[style];

    if (style == 'opacity') {
      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
        if (value[1]) return parseFloat(value[1]) / 100;
      return 1.0;
    }

    if (value == 'auto') {
      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
        return element['offset' + style.capitalize()] + 'px';
      return null;
    }
    return value;
  };

  Element.Methods.setOpacity = function(element, value) {
    function stripAlpha(filter){
      return filter.replace(/alpha\([^\)]*\)/gi,'');
    }
    element = $(element);
    var currentStyle = element.currentStyle;
    if ((currentStyle && !currentStyle.hasLayout) ||
      (!currentStyle && element.style.zoom == 'normal'))
        element.style.zoom = 1;

    var filter = element.getStyle('filter'), style = element.style;
    if (value == 1 || value === '') {
      (filter = stripAlpha(filter)) ?
        style.filter = filter : style.removeAttribute('filter');
      return element;
    } else if (value < 0.00001) value = 0;
    style.filter = stripAlpha(filter) +
      'alpha(opacity=' + (value * 100) + ')';
    return element;
  };

  Element._attributeTranslations = {
    read: {
      names: {
        'class': 'className',
        'for':   'htmlFor'
      },
      values: {
        _getAttr: function(element, attribute) {
          return element.getAttribute(attribute, 2);
        },
        _getAttrNode: function(element, attribute) {
          var node = element.getAttributeNode(attribute);
          return node ? node.value : "";
        },
        _getEv: function(element, attribute) {
          attribute = element.getAttribute(attribute);
          return attribute ? attribute.toString().slice(23, -2) : null;
        },
        _flag: function(element, attribute) {
          return $(element).hasAttribute(attribute) ? attribute : null;
        },
        style: function(element) {
          return element.style.cssText.toLowerCase();
        },
        title: function(element) {
          return element.title;
        }
      }
    }
  };

  Element._attributeTranslations.write = {
    names: Object.extend({
      cellpadding: 'cellPadding',
      cellspacing: 'cellSpacing'
    }, Element._attributeTranslations.read.names),
    values: {
      checked: function(element, value) {
        element.checked = !!value;
      },

      style: function(element, value) {
        element.style.cssText = value ? value : '';
      }
    }
  };

  Element._attributeTranslations.has = {};

  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
  });

  (function(v) {
    Object.extend(v, {
      href:        v._getAttr,
      src:         v._getAttr,
      type:        v._getAttr,
      action:      v._getAttrNode,
      disabled:    v._flag,
      checked:     v._flag,
      readonly:    v._flag,
      multiple:    v._flag,
      onload:      v._getEv,
      onunload:    v._getEv,
      onclick:     v._getEv,
      ondblclick:  v._getEv,
      onmousedown: v._getEv,
      onmouseup:   v._getEv,
      onmouseover: v._getEv,
      onmousemove: v._getEv,
      onmouseout:  v._getEv,
      onfocus:     v._getEv,
      onblur:      v._getEv,
      onkeypress:  v._getEv,
      onkeydown:   v._getEv,
      onkeyup:     v._getEv,
      onsubmit:    v._getEv,
      onreset:     v._getEv,
      onselect:    v._getEv,
      onchange:    v._getEv
    });
  })(Element._attributeTranslations.read.values);
}

else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
  Element.Methods.setOpacity = function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1) ? 0.999999 :
      (value === '') ? '' : (value < 0.00001) ? 0 : value;
    return element;
  };
}

else if (Prototype.Browser.WebKit) {
  Element.Methods.setOpacity = function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1 || value === '') ? '' :
      (value < 0.00001) ? 0 : value;

    if (value == 1)
      if(element.tagName.toUpperCase() == 'IMG' && element.width) {
        element.width++; element.width--;
      } else try {
        var n = document.createTextNode(' ');
        element.appendChild(n);
        element.removeChild(n);
      } catch (e) { }

    return element;
  };

  // Safari returns margins on body which is incorrect if the child is absolutely
  // positioned.  For performance reasons, redefine Element#cumulativeOffset for
  // KHTML/WebKit only.
  Element.Methods.cumulativeOffset = function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      if (element.offsetParent == document.body)
        if (Element.getStyle(element, 'position') == 'absolute') break;

      element = element.offsetParent;
    } while (element);

    return Element._returnOffset(valueL, valueT);
  };
}

if (Prototype.Browser.IE || Prototype.Browser.Opera) {
  // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
  Element.Methods.update = function(element, content) {
    element = $(element);

    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) return element.update().insert(content);

    content = Object.toHTML(content);
    var tagName = element.tagName.toUpperCase();

    if (tagName in Element._insertionTranslations.tags) {
      $A(element.childNodes).each(function(node) { element.removeChild(node) });
      Element._getContentFromAnonymousElement(tagName, content.stripScripts())
        .each(function(node) { element.appendChild(node) });
    }
    else element.innerHTML = content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

if ('outerHTML' in document.createElement('div')) {
  Element.Methods.replace = function(element, content) {
    element = $(element);

    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) {
      element.parentNode.replaceChild(content, element);
      return element;
    }

    content = Object.toHTML(content);
    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();

    if (Element._insertionTranslations.tags[tagName]) {
      var nextSibling = element.next();
      var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
      parent.removeChild(element);
      if (nextSibling)
        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
      else
        fragments.each(function(node) { parent.appendChild(node) });
    }
    else element.outerHTML = content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

Element._returnOffset = function(l, t) {
  var result = [l, t];
  result.left = l;
  result.top = t;
  return result;
};

Element._getContentFromAnonymousElement = function(tagName, html) {
  var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
  if (t) {
    div.innerHTML = t[0] + html + t[1];
    t[2].times(function() { div = div.firstChild });
  } else div.innerHTML = html;
  return $A(div.childNodes);
};

Element._insertionTranslations = {
  before: function(element, node) {
    element.parentNode.insertBefore(node, element);
  },
  top: function(element, node) {
    element.insertBefore(node, element.firstChild);
  },
  bottom: function(element, node) {
    element.appendChild(node);
  },
  after: function(element, node) {
    element.parentNode.insertBefore(node, element.nextSibling);
  },
  tags: {
    TABLE:  ['<table>',                '</table>',                   1],
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
    SELECT: ['<select>',               '</select>',                  1]
  }
};

(function() {
  Object.extend(this.tags, {
    THEAD: this.tags.TBODY,
    TFOOT: this.tags.TBODY,
    TH:    this.tags.TD
  });
}).call(Element._insertionTranslations);

Element.Methods.Simulated = {
  hasAttribute: function(element, attribute) {
    attribute = Element._attributeTranslations.has[attribute] || attribute;
    var node = $(element).getAttributeNode(attribute);
    return !!(node && node.specified);
  }
};

Element.Methods.ByTag = { };

Object.extend(Element, Element.Methods);

if (!Prototype.BrowserFeatures.ElementExtensions &&
    document.createElement('div')['__proto__']) {
  window.HTMLElement = { };
  window.HTMLElement.prototype = document.createElement('div')['__proto__'];
  Prototype.BrowserFeatures.ElementExtensions = true;
}

Element.extend = (function() {
  if (Prototype.BrowserFeatures.SpecificElementExtensions)
    return Prototype.K;

  var Methods = { }, ByTag = Element.Methods.ByTag;

  var extend = Object.extend(function(element) {
    if (!element || element._extendedByPrototype ||
        element.nodeType != 1 || element == window) return element;

    var methods = Object.clone(Methods),
      tagName = element.tagName.toUpperCase(), property, value;

    // extend methods for specific tags
    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);

    for (property in methods) {
      value = methods[property];
      if (Object.isFunction(value) && !(property in element))
        element[property] = value.methodize();
    }

    element._extendedByPrototype = Prototype.emptyFunction;
    return element;

  }, {
    refresh: function() {
      // extend methods for all tags (Safari doesn't need this)
      if (!Prototype.BrowserFeatures.ElementExtensions) {
        Object.extend(Methods, Element.Methods);
        Object.extend(Methods, Element.Methods.Simulated);
      }
    }
  });

  extend.refresh();
  return extend;
})();

Element.hasAttribute = function(element, attribute) {
  if (element.hasAttribute) return element.hasAttribute(attribute);
  return Element.Methods.Simulated.hasAttribute(element, attribute);
};

Element.addMethods = function(methods) {
  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;

  if (!methods) {
    Object.extend(Form, Form.Methods);
    Object.extend(Form.Element, Form.Element.Methods);
    Object.extend(Element.Methods.ByTag, {
      "FORM":     Object.clone(Form.Methods),
      "INPUT":    Object.clone(Form.Element.Methods),
      "SELECT":   Object.clone(Form.Element.Methods),
      "TEXTAREA": Object.clone(Form.Element.Methods)
    });
  }

  if (arguments.length == 2) {
    var tagName = methods;
    methods = arguments[1];
  }

  if (!tagName) Object.extend(Element.Methods, methods || { });
  else {
    if (Object.isArray(tagName)) tagName.each(extend);
    else extend(tagName);
  }

  function extend(tagName) {
    tagName = tagName.toUpperCase();
    if (!Element.Methods.ByTag[tagName])
      Element.Methods.ByTag[tagName] = { };
    Object.extend(Element.Methods.ByTag[tagName], methods);
  }

  function copy(methods, destination, onlyIfAbsent) {
    onlyIfAbsent = onlyIfAbsent || false;
    for (var property in methods) {
      var value = methods[property];
      if (!Object.isFunction(value)) continue;
      if (!onlyIfAbsent || !(property in destination))
        destination[property] = value.methodize();
    }
  }

  function findDOMClass(tagName) {
    var klass;
    var trans = {
      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
      "FrameSet", "IFRAME": "IFrame"
    };
    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
    if (window[klass]) return window[klass];
    klass = 'HTML' + tagName + 'Element';
    if (window[klass]) return window[klass];
    klass = 'HTML' + tagName.capitalize() + 'Element';
    if (window[klass]) return window[klass];

    window[klass] = { };
    window[klass].prototype = document.createElement(tagName)['__proto__'];
    return window[klass];
  }

  if (F.ElementExtensions) {
    copy(Element.Methods, HTMLElement.prototype);
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
  }

  if (F.SpecificElementExtensions) {
    for (var tag in Element.Methods.ByTag) {
      var klass = findDOMClass(tag);
      if (Object.isUndefined(klass)) continue;
      copy(T[tag], klass.prototype);
    }
  }

  Object.extend(Element, Element.Methods);
  delete Element.ByTag;

  if (Element.extend.refresh) Element.extend.refresh();
  Element.cache = { };
};

document.viewport = {
  getDimensions: function() {
    var dimensions = { }, B = Prototype.Browser;
    $w('width height').each(function(d) {
      var D = d.capitalize();
      if (B.WebKit && !document.evaluate) {
        // Safari <3.0 needs self.innerWidth/Height
        dimensions[d] = self['inner' + D];
      } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
        // Opera <9.5 needs document.body.clientWidth/Height
        dimensions[d] = document.body['client' + D]
      } else {
        dimensions[d] = document.documentElement['client' + D];
      }
    });
    return dimensions;
  },

  getWidth: function() {
    return this.getDimensions().width;
  },

  getHeight: function() {
    return this.getDimensions().height;
  },

  getScrollOffsets: function() {
    return Element._returnOffset(
      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
      window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
  }
};
/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
 * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
 * license.  Please see http://www.yui-ext.com/ for more information. */

var Selector = Class.create({
  initialize: function(expression) {
    this.expression = expression.strip();

    if (this.shouldUseSelectorsAPI()) {
      this.mode = 'selectorsAPI';
    } else if (this.shouldUseXPath()) {
      this.mode = 'xpath';
      this.compileXPathMatcher();
    } else {
      this.mode = "normal";
      this.compileMatcher();
    }

  },

  shouldUseXPath: function() {
    if (!Prototype.BrowserFeatures.XPath) return false;

    var e = this.expression;

    // Safari 3 chokes on :*-of-type and :empty
    if (Prototype.Browser.WebKit &&
     (e.include("-of-type") || e.include(":empty")))
      return false;

    // XPath can't do namespaced attributes, nor can it read
    // the "checked" property from DOM nodes
    if ((/(\[[\w-]*?:|:checked)/).test(e))
      return false;

    return true;
  },

  shouldUseSelectorsAPI: function() {
    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;

    if (!Selector._div) Selector._div = new Element('div');

    // Make sure the browser treats the selector as valid. Test on an
    // isolated element to minimize cost of this check.
    try {
      Selector._div.querySelector(this.expression);
    } catch(e) {
      return false;
    }

    return true;
  },

  compileMatcher: function() {
    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
        c = Selector.criteria, le, p, m;

    if (Selector._cache[e]) {
      this.matcher = Selector._cache[e];
      return;
    }

    this.matcher = ["this.matcher = function(root) {",
                    "var r = root, h = Selector.handlers, c = false, n;"];

    while (e && le != e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        p = ps[i];
        if (m = e.match(p)) {
          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
            new Template(c[i]).evaluate(m));
          e = e.replace(m[0], '');
          break;
        }
      }
    }

    this.matcher.push("return h.unique(n);\n}");
    eval(this.matcher.join('\n'));
    Selector._cache[this.expression] = this.matcher;
  },

  compileXPathMatcher: function() {
    var e = this.expression, ps = Selector.patterns,
        x = Selector.xpath, le, m;

    if (Selector._cache[e]) {
      this.xpath = Selector._cache[e]; return;
    }

    this.matcher = ['.//*'];
    while (e && le != e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        if (m = e.match(ps[i])) {
          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
            new Template(x[i]).evaluate(m));
          e = e.replace(m[0], '');
          break;
        }
      }
    }

    this.xpath = this.matcher.join('');
    Selector._cache[this.expression] = this.xpath;
  },

  findElements: function(root) {
    root = root || document;
    var e = this.expression, results;

    switch (this.mode) {
      case 'selectorsAPI':
        // querySelectorAll queries document-wide, then filters to descendants
        // of the context element. That's not what we want.
        // Add an explicit context to the selector if necessary.
        if (root !== document) {
          var oldId = root.id, id = $(root).identify();
          e = "#" + id + " " + e;
        }

        results = $A(root.querySelectorAll(e)).map(Element.extend);
        root.id = oldId;

        return results;
      case 'xpath':
        return document._getElementsByXPath(this.xpath, root);
      default:
       return this.matcher(root);
    }
  },

  match: function(element) {
    this.tokens = [];

    var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
    var le, p, m;

    while (e && le !== e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        p = ps[i];
        if (m = e.match(p)) {
          // use the Selector.assertions methods unless the selector
          // is too complex.
          if (as[i]) {
            this.tokens.push([i, Object.clone(m)]);
            e = e.replace(m[0], '');
          } else {
            // reluctantly do a document-wide search
            // and look for a match in the array
            return this.findElements(document).include(element);
          }
        }
      }
    }

    var match = true, name, matches;
    for (var i = 0, token; token = this.tokens[i]; i++) {
      name = token[0], matches = token[1];
      if (!Selector.assertions[name](element, matches)) {
        match = false; break;
      }
    }

    return match;
  },

  toString: function() {
    return this.expression;
  },

  inspect: function() {
    return "#<Selector:" + this.expression.inspect() + ">";
  }
});

Object.extend(Selector, {
  _cache: { },

  xpath: {
    descendant:   "//*",
    child:        "/*",
    adjacent:     "/following-sibling::*[1]",
    laterSibling: '/following-sibling::*',
    tagName:      function(m) {
      if (m[1] == '*') return '';
      return "[local-name()='" + m[1].toLowerCase() +
             "' or local-name()='" + m[1].toUpperCase() + "']";
    },
    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
    id:           "[@id='#{1}']",
    attrPresence: function(m) {
      m[1] = m[1].toLowerCase();
      return new Template("[@#{1}]").evaluate(m);
    },
    attr: function(m) {
      m[1] = m[1].toLowerCase();
      m[3] = m[5] || m[6];
      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
    },
    pseudo: function(m) {
      var h = Selector.xpath.pseudos[m[1]];
      if (!h) return '';
      if (Object.isFunction(h)) return h(m);
      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
    },
    operators: {
      '=':  "[@#{1}='#{3}']",
      '!=': "[@#{1}!='#{3}']",
      '^=': "[starts-with(@#{1}, '#{3}')]",
      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
      '*=': "[contains(@#{1}, '#{3}')]",
      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
    },
    pseudos: {
      'first-child': '[not(preceding-sibling::*)]',
      'last-child':  '[not(following-sibling::*)]',
      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
      'empty':       "[count(*) = 0 and (count(text()) = 0)]",
      'checked':     "[@checked]",
      'disabled':    "[(@disabled) and (@type!='hidden')]",
      'enabled':     "[not(@disabled) and (@type!='hidden')]",
      'not': function(m) {
        var e = m[6], p = Selector.patterns,
            x = Selector.xpath, le, v;

        var exclusion = [];
        while (e && le != e && (/\S/).test(e)) {
          le = e;
          for (var i in p) {
            if (m = e.match(p[i])) {
              v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
              e = e.replace(m[0], '');
              break;
            }
          }
        }
        return "[not(" + exclusion.join(" and ") + ")]";
      },
      'nth-child':      function(m) {
        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
      },
      'nth-last-child': function(m) {
        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
      },
      'nth-of-type':    function(m) {
        return Selector.xpath.pseudos.nth("position() ", m);
      },
      'nth-last-of-type': function(m) {
        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
      },
      'first-of-type':  function(m) {
        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
      },
      'last-of-type':   function(m) {
        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
      },
      'only-of-type':   function(m) {
        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
      },
      nth: function(fragment, m) {
        var mm, formula = m[6], predicate;
        if (formula == 'even') formula = '2n+0';
        if (formula == 'odd')  formula = '2n+1';
        if (mm = formula.match(/^(\d+)$/)) // digit only
          return '[' + fragment + "= " + mm[1] + ']';
        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
          if (mm[1] == "-") mm[1] = -1;
          var a = mm[1] ? Number(mm[1]) : 1;
          var b = mm[2] ? Number(mm[2]) : 0;
          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
          "((#{fragment} - #{b}) div #{a} >= 0)]";
          return new Template(predicate).evaluate({
            fragment: fragment, a: a, b: b });
        }
      }
    }
  },

  criteria: {
    tagName:      'n = h.tagName(n, r, "#{1}", c);      c = false;',
    className:    'n = h.className(n, r, "#{1}", c);    c = false;',
    id:           'n = h.id(n, r, "#{1}", c);           c = false;',
    attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
    attr: function(m) {
      m[3] = (m[5] || m[6]);
      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
    },
    pseudo: function(m) {
      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
    },
    descendant:   'c = "descendant";',
    child:        'c = "child";',
    adjacent:     'c = "adjacent";',
    laterSibling: 'c = "laterSibling";'
  },

  patterns: {
    // combinators must be listed first
    // (and descendant needs to be last combinator)
    laterSibling: /^\s*~\s*/,
    child:        /^\s*>\s*/,
    adjacent:     /^\s*\+\s*/,
    descendant:   /^\s/,

    // selectors follow
    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,
    id:           /^#([\w\-\*]+)(\b|$)/,
    className:    /^\.([\w\-\*]+)(\b|$)/,
    pseudo:
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
    attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
    attr:         /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
  },

  // for Selector.match and Element#match
  assertions: {
    tagName: function(element, matches) {
      return matches[1].toUpperCase() == element.tagName.toUpperCase();
    },

    className: function(element, matches) {
      return Element.hasClassName(element, matches[1]);
    },

    id: function(element, matches) {
      return element.id === matches[1];
    },

    attrPresence: function(element, matches) {
      return Element.hasAttribute(element, matches[1]);
    },

    attr: function(element, matches) {
      var nodeValue = Element.readAttribute(element, matches[1]);
      return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
    }
  },

  handlers: {
    // UTILITY FUNCTIONS
    // joins two collections
    concat: function(a, b) {
      for (var i = 0, node; node = b[i]; i++)
        a.push(node);
      return a;
    },

    // marks an array of nodes for counting
    mark: function(nodes) {
      var _true = Prototype.emptyFunction;
      for (var i = 0, node; node = nodes[i]; i++)
        node._countedByPrototype = _true;
      return nodes;
    },

    unmark: function(nodes) {
      for (var i = 0, node; node = nodes[i]; i++)
        node._countedByPrototype = undefined;
      return nodes;
    },

    // mark each child node with its position (for nth calls)
    // "ofType" flag indicates whether we're indexing for nth-of-type
    // rather than nth-child
    index: function(parentNode, reverse, ofType) {
      parentNode._countedByPrototype = Prototype.emptyFunction;
      if (reverse) {
        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
          var node = nodes[i];
          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
        }
      } else {
        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
      }
    },

    // filters out duplicates and extends all nodes
    unique: function(nodes) {
      if (nodes.length == 0) return nodes;
      var results = [], n;
      for (var i = 0, l = nodes.length; i < l; i++)
        if (!(n = nodes[i])._countedByPrototype) {
          n._countedByPrototype = Prototype.emptyFunction;
          results.push(Element.extend(n));
        }
      return Selector.handlers.unmark(results);
    },

    // COMBINATOR FUNCTIONS
    descendant: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        h.concat(results, node.getElementsByTagName('*'));
      return results;
    },

    child: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        for (var j = 0, child; child = node.childNodes[j]; j++)
          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
      }
      return results;
    },

    adjacent: function(nodes) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        var next = this.nextElementSibling(node);
        if (next) results.push(next);
      }
      return results;
    },

    laterSibling: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        h.concat(results, Element.nextSiblings(node));
      return results;
    },

    nextElementSibling: function(node) {
      while (node = node.nextSibling)
        if (node.nodeType == 1) return node;
      return null;
    },

    previousElementSibling: function(node) {
      while (node = node.previousSibling)
        if (node.nodeType == 1) return node;
      return null;
    },

    // TOKEN FUNCTIONS
    tagName: function(nodes, root, tagName, combinator) {
      var uTagName = tagName.toUpperCase();
      var results = [], h = Selector.handlers;
      if (nodes) {
        if (combinator) {
          // fastlane for ordinary descendant combinators
          if (combinator == "descendant") {
            for (var i = 0, node; node = nodes[i]; i++)
              h.concat(results, node.getElementsByTagName(tagName));
            return results;
          } else nodes = this[combinator](nodes);
          if (tagName == "*") return nodes;
        }
        for (var i = 0, node; node = nodes[i]; i++)
          if (node.tagName.toUpperCase() === uTagName) results.push(node);
        return results;
      } else return root.getElementsByTagName(tagName);
    },

    id: function(nodes, root, id, combinator) {
      var targetNode = $(id), h = Selector.handlers;
      if (!targetNode) return [];
      if (!nodes && root == document) return [targetNode];
      if (nodes) {
        if (combinator) {
          if (combinator == 'child') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (targetNode.parentNode == node) return [targetNode];
          } else if (combinator == 'descendant') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (Element.descendantOf(targetNode, node)) return [targetNode];
          } else if (combinator == 'adjacent') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (Selector.handlers.previousElementSibling(targetNode) == node)
                return [targetNode];
          } else nodes = h[combinator](nodes);
        }
        for (var i = 0, node; node = nodes[i]; i++)
          if (node == targetNode) return [targetNode];
        return [];
      }
      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
    },

    className: function(nodes, root, className, combinator) {
      if (nodes && combinator) nodes = this[combinator](nodes);
      return Selector.handlers.byClassName(nodes, root, className);
    },

    byClassName: function(nodes, root, className) {
      if (!nodes) nodes = Selector.handlers.descendant([root]);
      var needle = ' ' + className + ' ';
      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
        nodeClassName = node.className;
        if (nodeClassName.length == 0) continue;
        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
          results.push(node);
      }
      return results;
    },

    attrPresence: function(nodes, root, attr, combinator) {
      if (!nodes) nodes = root.getElementsByTagName("*");
      if (nodes && combinator) nodes = this[combinator](nodes);
      var results = [];
      for (var i = 0, node; node = nodes[i]; i++)
        if (Element.hasAttribute(node, attr)) results.push(node);
      return results;
    },

    attr: function(nodes, root, attr, value, operator, combinator) {
      if (!nodes) nodes = root.getElementsByTagName("*");
      if (nodes && combinator) nodes = this[combinator](nodes);
      var handler = Selector.operators[operator], results = [];
      for (var i = 0, node; node = nodes[i]; i++) {
        var nodeValue = Element.readAttribute(node, attr);
        if (nodeValue === null) continue;
        if (handler(nodeValue, value)) results.push(node);
      }
      return results;
    },

    pseudo: function(nodes, name, value, root, combinator) {
      if (nodes && combinator) nodes = this[combinator](nodes);
      if (!nodes) nodes = root.getElementsByTagName("*");
      return Selector.pseudos[name](nodes, value, root);
    }
  },

  pseudos: {
    'first-child': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        if (Selector.handlers.previousElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'last-child': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        if (Selector.handlers.nextElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'only-child': function(nodes, value, root) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
          results.push(node);
      return results;
    },
    'nth-child':        function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root);
    },
    'nth-last-child':   function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true);
    },
    'nth-of-type':      function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, false, true);
    },
    'nth-last-of-type': function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true, true);
    },
    'first-of-type':    function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, false, true);
    },
    'last-of-type':     function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, true, true);
    },
    'only-of-type':     function(nodes, formula, root) {
      var p = Selector.pseudos;
      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
    },

    // handles the an+b logic
    getIndices: function(a, b, total) {
      if (a == 0) return b > 0 ? [b] : [];
      return $R(1, total).inject([], function(memo, i) {
        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
        return memo;
      });
    },

    // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
    nth: function(nodes, formula, root, reverse, ofType) {
      if (nodes.length == 0) return [];
      if (formula == 'even') formula = '2n+0';
      if (formula == 'odd')  formula = '2n+1';
      var h = Selector.handlers, results = [], indexed = [], m;
      h.mark(nodes);
      for (var i = 0, node; node = nodes[i]; i++) {
        if (!node.parentNode._countedByPrototype) {
          h.index(node.parentNode, reverse, ofType);
          indexed.push(node.parentNode);
        }
      }
      if (formula.match(/^\d+$/)) { // just a number
        formula = Number(formula);
        for (var i = 0, node; node = nodes[i]; i++)
          if (node.nodeIndex == formula) results.push(node);
      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
        if (m[1] == "-") m[1] = -1;
        var a = m[1] ? Number(m[1]) : 1;
        var b = m[2] ? Number(m[2]) : 0;
        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
          for (var j = 0; j < l; j++)
            if (node.nodeIndex == indices[j]) results.push(node);
        }
      }
      h.unmark(nodes);
      h.unmark(indexed);
      return results;
    },

    'empty': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        // IE treats comments as element nodes
        if (node.tagName == '!' || node.firstChild) continue;
        results.push(node);
      }
      return results;
    },

    'not': function(nodes, selector, root) {
      var h = Selector.handlers, selectorType, m;
      var exclusions = new Selector(selector).findElements(root);
      h.mark(exclusions);
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!node._countedByPrototype) results.push(node);
      h.unmark(exclusions);
      return results;
    },

    'enabled': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!node.disabled && (!node.type || node.type !== 'hidden'))
          results.push(node);
      return results;
    },

    'disabled': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (node.disabled) results.push(node);
      return results;
    },

    'checked': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (node.checked) results.push(node);
      return results;
    }
  },

  operators: {
    '=':  function(nv, v) { return nv == v; },
    '!=': function(nv, v) { return nv != v; },
    '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
    '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
    '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
    '$=': function(nv, v) { return nv.endsWith(v); },
    '*=': function(nv, v) { return nv.include(v); },
    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
    '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
     '-').include('-' + (v || "").toUpperCase() + '-'); }
  },

  split: function(expression) {
    var expressions = [];
    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
      expressions.push(m[1].strip());
    });
    return expressions;
  },

  matchElements: function(elements, expression) {
    var matches = $$(expression), h = Selector.handlers;
    h.mark(matches);
    for (var i = 0, results = [], element; element = elements[i]; i++)
      if (element._countedByPrototype) results.push(element);
    h.unmark(matches);
    return results;
  },

  findElement: function(elements, expression, index) {
    if (Object.isNumber(expression)) {
      index = expression; expression = false;
    }
    return Selector.matchElements(elements, expression || '*')[index || 0];
  },

  findChildElements: function(element, expressions) {
    expressions = Selector.split(expressions.join(','));
    var results = [], h = Selector.handlers;
    for (var i = 0, l = expressions.length, selector; i < l; i++) {
      selector = new Selector(expressions[i].strip());
      h.concat(results, selector.findElements(element));
    }
    return (l > 1) ? h.unique(results) : results;
  }
});

if (Prototype.Browser.IE) {
  Object.extend(Selector.handlers, {
    // IE returns comment nodes on getElementsByTagName("*").
    // Filter them out.
    concat: function(a, b) {
      for (var i = 0, node; node = b[i]; i++)
        if (node.tagName !== "!") a.push(node);
      return a;
    },

    // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
    unmark: function(nodes) {
      for (var i = 0, node; node = nodes[i]; i++)
        node.removeAttribute('_countedByPrototype');
      return nodes;
    }
  });
}

function $$() {
  return Selector.findChildElements(document, $A(arguments));
}
var Form = {
  reset: function(form) {
    $(form).reset();
    return form;
  },

  serializeElements: function(elements, options) {
    if (typeof options != 'object') options = { hash: !!options };
    else if (Object.isUndefined(options.hash)) options.hash = true;
    var key, value, submitted = false, submit = options.submit;

    var data = elements.inject({ }, function(result, element) {
      if (!element.disabled && element.name) {
        key = element.name; value = $(element).getValue();
        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
            submit !== false && (!submit || key == submit) && (submitted = true)))) {
          if (key in result) {
            // a key is already present; construct an array of values
            if (!Object.isArray(result[key])) result[key] = [result[key]];
            result[key].push(value);
          }
          else result[key] = value;
        }
      }
      return result;
    });

    return options.hash ? data : Object.toQueryString(data);
  }
};

Form.Methods = {
  serialize: function(form, options) {
    return Form.serializeElements(Form.getElements(form), options);
  },

  getElements: function(form) {
    return $A($(form).getElementsByTagName('*')).inject([],
      function(elements, child) {
        if (Form.Element.Serializers[child.tagName.toLowerCase()])
          elements.push(Element.extend(child));
        return elements;
      }
    );
  },

  getInputs: function(form, typeName, name) {
    form = $(form);
    var inputs = form.getElementsByTagName('input');

    if (!typeName && !name) return $A(inputs).map(Element.extend);

    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
      var input = inputs[i];
      if ((typeName && input.type != typeName) || (name && input.name != name))
        continue;
      matchingInputs.push(Element.extend(input));
    }

    return matchingInputs;
  },

  disable: function(form) {
    form = $(form);
    Form.getElements(form).invoke('disable');
    return form;
  },

  enable: function(form) {
    form = $(form);
    Form.getElements(form).invoke('enable');
    return form;
  },

  findFirstElement: function(form) {
    var elements = $(form).getElements().findAll(function(element) {
      return 'hidden' != element.type && !element.disabled;
    });
    var firstByIndex = elements.findAll(function(element) {
      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
    }).sortBy(function(element) { return element.tabIndex }).first();

    return firstByIndex ? firstByIndex : elements.find(function(element) {
      return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
    });
  },

  focusFirstElement: function(form) {
    form = $(form);
    form.findFirstElement().activate();
    return form;
  },

  request: function(form, options) {
    form = $(form), options = Object.clone(options || { });

    var params = options.parameters, action = form.readAttribute('action') || '';
    if (action.blank()) action = window.location.href;
    options.parameters = form.serialize(true);

    if (params) {
      if (Object.isString(params)) params = params.toQueryParams();
      Object.extend(options.parameters, params);
    }

    if (form.hasAttribute('method') && !options.method)
      options.method = form.method;

    return new Ajax.Request(action, options);
  }
};

/*--------------------------------------------------------------------------*/

Form.Element = {
  focus: function(element) {
    $(element).focus();
    return element;
  },

  select: function(element) {
    $(element).select();
    return element;
  }
};

Form.Element.Methods = {
  serialize: function(element) {
    element = $(element);
    if (!element.disabled && element.name) {
      var value = element.getValue();
      if (value != undefined) {
        var pair = { };
        pair[element.name] = value;
        return Object.toQueryString(pair);
      }
    }
    return '';
  },

  getValue: function(element) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    return Form.Element.Serializers[method](element);
  },

  setValue: function(element, value) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    Form.Element.Serializers[method](element, value);
    return element;
  },

  clear: function(element) {
    $(element).value = '';
    return element;
  },

  present: function(element) {
    return $(element).value != '';
  },

  activate: function(element) {
    element = $(element);
    try {
      element.focus();
      if (element.select && (element.tagName.toLowerCase() != 'input' ||
          !['button', 'reset', 'submit'].include(element.type)))
        element.select();
    } catch (e) { }
    return element;
  },

  disable: function(element) {
    element = $(element);
    element.disabled = true;
    return element;
  },

  enable: function(element) {
    element = $(element);
    element.disabled = false;
    return element;
  }
};

/*--------------------------------------------------------------------------*/

var Field = Form.Element;
var $F = Form.Element.Methods.getValue;

/*--------------------------------------------------------------------------*/

Form.Element.Serializers = {
  input: function(element, value) {
    switch (element.type.toLowerCase()) {
      case 'checkbox':
      case 'radio':
        return Form.Element.Serializers.inputSelector(element, value);
      default:
        return Form.Element.Serializers.textarea(element, value);
    }
  },

  inputSelector: function(element, value) {
    if (Object.isUndefined(value)) return element.checked ? element.value : null;
    else element.checked = !!value;
  },

  textarea: function(element, value) {
    if (Object.isUndefined(value)) return element.value;
    else element.value = value;
  },

  select: function(element, value) {
    if (Object.isUndefined(value))
      return this[element.type == 'select-one' ?
        'selectOne' : 'selectMany'](element);
    else {
      var opt, currentValue, single = !Object.isArray(value);
      for (var i = 0, length = element.length; i < length; i++) {
        opt = element.options[i];
        currentValue = this.optionValue(opt);
        if (single) {
          if (currentValue == value) {
            opt.selected = true;
            return;
          }
        }
        else opt.selected = value.include(currentValue);
      }
    }
  },

  selectOne: function(element) {
    var index = element.selectedIndex;
    return index >= 0 ? this.optionValue(element.options[index]) : null;
  },

  selectMany: function(element) {
    var values, length = element.length;
    if (!length) return null;

    for (var i = 0, values = []; i < length; i++) {
      var opt = element.options[i];
      if (opt.selected) values.push(this.optionValue(opt));
    }
    return values;
  },

  optionValue: function(opt) {
    // extend element because hasAttribute may not be native
    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
  }
};

/*--------------------------------------------------------------------------*/

Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
  initialize: function($super, element, frequency, callback) {
    $super(callback, frequency);
    this.element   = $(element);
    this.lastValue = this.getValue();
  },

  execute: function() {
    var value = this.getValue();
    if (Object.isString(this.lastValue) && Object.isString(value) ?
        this.lastValue != value : String(this.lastValue) != String(value)) {
      this.callback(this.element, value);
      this.lastValue = value;
    }
  }
});

Form.Element.Observer = Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.Observer = Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});

/*--------------------------------------------------------------------------*/

Abstract.EventObserver = Class.create({
  initialize: function(element, callback) {
    this.element  = $(element);
    this.callback = callback;

    this.lastValue = this.getValue();
    if (this.element.tagName.toLowerCase() == 'form')
      this.registerFormCallbacks();
    else
      this.registerCallback(this.element);
  },

  onElementEvent: function() {
    var value = this.getValue();
    if (this.lastValue != value) {
      this.callback(this.element, value);
      this.lastValue = value;
    }
  },

  registerFormCallbacks: function() {
    Form.getElements(this.element).each(this.registerCallback, this);
  },

  registerCallback: function(element) {
    if (element.type) {
      switch (element.type.toLowerCase()) {
        case 'checkbox':
        case 'radio':
          Event.observe(element, 'click', this.onElementEvent.bind(this));
          break;
        default:
          Event.observe(element, 'change', this.onElementEvent.bind(this));
          break;
      }
    }
  }
});

Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.EventObserver = Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});
if (!window.Event) var Event = { };

Object.extend(Event, {
  KEY_BACKSPACE: 8,
  KEY_TAB:       9,
  KEY_RETURN:   13,
  KEY_ESC:      27,
  KEY_LEFT:     37,
  KEY_UP:       38,
  KEY_RIGHT:    39,
  KEY_DOWN:     40,
  KEY_DELETE:   46,
  KEY_HOME:     36,
  KEY_END:      35,
  KEY_PAGEUP:   33,
  KEY_PAGEDOWN: 34,
  KEY_INSERT:   45,

  cache: { },

  relatedTarget: function(event) {
    var element;
    switch(event.type) {
      case 'mouseover': element = event.fromElement; break;
      case 'mouseout':  element = event.toElement;   break;
      default: return null;
    }
    return Element.extend(element);
  }
});

Event.Methods = (function() {
  var isButton;

  if (Prototype.Browser.IE) {
    var buttonMap = { 0: 1, 1: 4, 2: 2 };
    isButton = function(event, code) {
      return event.button == buttonMap[code];
    };

  } else if (Prototype.Browser.WebKit) {
    isButton = function(event, code) {
      switch (code) {
        case 0: return event.which == 1 && !event.metaKey;
        case 1: return event.which == 1 && event.metaKey;
        default: return false;
      }
    };

  } else {
    isButton = function(event, code) {
      return event.which ? (event.which === code + 1) : (event.button === code);
    };
  }

  return {
    isLeftClick:   function(event) { return isButton(event, 0) },
    isMiddleClick: function(event) { return isButton(event, 1) },
    isRightClick:  function(event) { return isButton(event, 2) },

    element: function(event) {
      event = Event.extend(event);

      var node          = event.target,
          type          = event.type,
          currentTarget = event.currentTarget;

      if (currentTarget && currentTarget.tagName) {
        // Firefox screws up the "click" event when moving between radio buttons
        // via arrow keys. It also screws up the "load" and "error" events on images,
        // reporting the document as the target instead of the original image.
        if (type === 'load' || type === 'error' ||
          (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
            && currentTarget.type === 'radio'))
              node = currentTarget;
      }
      if (node) {
        if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
        return Element.extend(node);
      } else return false;
    },

    findElement: function(event, expression) {
      var element = Event.element(event);
      if (!expression) return element;
      var elements = [element].concat(element.ancestors());
      return Selector.findElement(elements, expression, 0);
    },

    pointer: function(event) {
      var docElement = document.documentElement,
      body = document.body || { scrollLeft: 0, scrollTop: 0 };
      return {
        x: event.pageX || (event.clientX +
          (docElement.scrollLeft || body.scrollLeft) -
          (docElement.clientLeft || 0)),
        y: event.pageY || (event.clientY +
          (docElement.scrollTop || body.scrollTop) -
          (docElement.clientTop || 0))
      };
    },

    pointerX: function(event) { return Event.pointer(event).x },
    pointerY: function(event) { return Event.pointer(event).y },

    stop: function(event) {
      Event.extend(event);
      event.preventDefault();
      event.stopPropagation();
      event.stopped = true;
    }
  };
})();

Event.extend = (function() {
  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
    m[name] = Event.Methods[name].methodize();
    return m;
  });

  if (Prototype.Browser.IE) {
    Object.extend(methods, {
      stopPropagation: function() { this.cancelBubble = true },
      preventDefault:  function() { this.returnValue = false },
      inspect: function() { return "[object Event]" }
    });

    return function(event) {
      if (!event) return false;
      if (event._extendedByPrototype) return event;

      event._extendedByPrototype = Prototype.emptyFunction;
      var pointer = Event.pointer(event);
      Object.extend(event, {
        target: event.srcElement,
        relatedTarget: Event.relatedTarget(event),
        pageX:  pointer.x,
        pageY:  pointer.y
      });
      return Object.extend(event, methods);
    };

  } else {
    Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
    Object.extend(Event.prototype, methods);
    return Prototype.K;
  }
})();

Object.extend(Event, (function() {
  var cache = Event.cache;

  function getEventID(element) {
    try {
      if (element._prototypeEventID) return element._prototypeEventID[0];
      arguments.callee.id = arguments.callee.id || 1;
      return element._prototypeEventID = [++arguments.callee.id];
    } catch (error) {
      return false;
    }
  }

  function getDOMEventName(eventName) {
    if (eventName && eventName.include(':')) return "dataavailable";
    return eventName;
  }

  function getCacheForID(id) {
    return cache[id] = cache[id] || { };
  }

  function getWrappersForEventName(id, eventName) {
    var c = getCacheForID(id);
    return c[eventName] = c[eventName] || [];
  }

  function createWrapper(element, eventName, handler) {
    var id = getEventID(element);
    var c = getWrappersForEventName(id, eventName);
    if (c.pluck("handler").include(handler)) return false;

    var wrapper = function(event) {
      if (!Event || !Event.extend ||
        (event.eventName && event.eventName != eventName))
          return false;

      Event.extend(event);
      handler.call(element, event);
    };

    wrapper.handler = handler;
    c.push(wrapper);
    return wrapper;
  }

  function findWrapper(id, eventName, handler) {
    var c = getWrappersForEventName(id, eventName);
    return c.find(function(wrapper) { return wrapper.handler == handler });
  }

  function destroyWrapper(id, eventName, handler) {
    var c = getCacheForID(id);
    if (!c[eventName]) return false;
    c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
  }

  function destroyCache() {
    for (var id in cache)
      for (var eventName in cache[id])
        cache[id][eventName] = null;
  }


  // Internet Explorer needs to remove event handlers on page unload
  // in order to avoid memory leaks.
  if (window.attachEvent) {
    window.attachEvent("onunload", destroyCache);
  }

  // Safari has a dummy event handler on page unload so that it won't
  // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
  // object when page is returned to via the back button using its bfcache.
  if (Prototype.Browser.WebKit) {
    window.addEventListener('unload', Prototype.emptyFunction, false);
  }

  return {
    observe: function(element, eventName, handler) {
      element = $(element);
      var name = getDOMEventName(eventName);

      var wrapper = createWrapper(element, eventName, handler);
      if (!wrapper) return element;

      if (element.addEventListener) {
        element.addEventListener(name, wrapper, false);
      } else {
        element.attachEvent("on" + name, wrapper);
      }

      return element;
    },

    stopObserving: function(element, eventName, handler) {
      element = $(element);
      var id = getEventID(element), name = getDOMEventName(eventName);

      if (!handler && eventName) {
        getWrappersForEventName(id, eventName).each(function(wrapper) {
          element.stopObserving(eventName, wrapper.handler);
        });
        return element;

      } else if (!eventName) {
        Object.keys(getCacheForID(id)).each(function(eventName) {
          element.stopObserving(eventName);
        });
        return element;
      }

      var wrapper = findWrapper(id, eventName, handler);
      if (!wrapper) return element;

      if (element.removeEventListener) {
        element.removeEventListener(name, wrapper, false);
      } else {
        element.detachEvent("on" + name, wrapper);
      }

      destroyWrapper(id, eventName, handler);

      return element;
    },

    fire: function(element, eventName, memo) {
      element = $(element);
      if (element == document && document.createEvent && !element.dispatchEvent)
        element = document.documentElement;

      var event;
      if (document.createEvent) {
        event = document.createEvent("HTMLEvents");
        event.initEvent("dataavailable", true, true);
      } else {
        event = document.createEventObject();
        event.eventType = "ondataavailable";
      }

      event.eventName = eventName;
      event.memo = memo || { };

      if (document.createEvent) {
        element.dispatchEvent(event);
      } else {
        element.fireEvent(event.eventType, event);
      }

      return Event.extend(event);
    }
  };
})());

Object.extend(Event, Event.Methods);

Element.addMethods({
  fire:          Event.fire,
  observe:       Event.observe,
  stopObserving: Event.stopObserving
});

Object.extend(document, {
  fire:          Element.Methods.fire.methodize(),
  observe:       Element.Methods.observe.methodize(),
  stopObserving: Element.Methods.stopObserving.methodize(),
  loaded:        false
});

(function() {
  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
     Matthias Miller, Dean Edwards and John Resig. */

  var timer;

  function fireContentLoadedEvent() {
    if (document.loaded) return;
    if (timer) window.clearInterval(timer);
    document.fire("dom:loaded");
    document.loaded = true;
  }

  if (document.addEventListener) {
    if (Prototype.Browser.WebKit) {
      timer = window.setInterval(function() {
        if (/loaded|complete/.test(document.readyState))
          fireContentLoadedEvent();
      }, 0);

      Event.observe(window, "load", fireContentLoadedEvent);

    } else {
      document.addEventListener("DOMContentLoaded",
        fireContentLoadedEvent, false);
    }

  } else {
    document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
    $("__onDOMContentLoaded").onreadystatechange = function() {
      if (this.readyState == "complete") {
        this.onreadystatechange = null;
        fireContentLoadedEvent();
      }
    };
  }
})();
/*------------------------------- DEPRECATED -------------------------------*/

Hash.toQueryString = Object.toQueryString;

var Toggle = { display: Element.toggle };

Element.Methods.childOf = Element.Methods.descendantOf;

var Insertion = {
  Before: function(element, content) {
    return Element.insert(element, {before:content});
  },

  Top: function(element, content) {
    return Element.insert(element, {top:content});
  },

  Bottom: function(element, content) {
    return Element.insert(element, {bottom:content});
  },

  After: function(element, content) {
    return Element.insert(element, {after:content});
  }
};

var $continue = new Error('"throw $continue" is deprecated, use "return" instead');

// This should be moved to script.aculo.us; notice the deprecated methods
// further below, that map to the newer Element methods.
var Position = {
  // set to true if needed, warning: firefox performance problems
  // NOT neeeded for page scrolling, only if draggable contained in
  // scrollable elements
  includeScrollOffsets: false,

  // must be called before calling withinIncludingScrolloffset, every time the
  // page is scrolled
  prepare: function() {
    this.deltaX =  window.pageXOffset
                || document.documentElement.scrollLeft
                || document.body.scrollLeft
                || 0;
    this.deltaY =  window.pageYOffset
                || document.documentElement.scrollTop
                || document.body.scrollTop
                || 0;
  },

  // caches x/y coordinate pair to use with overlap
  within: function(element, x, y) {
    if (this.includeScrollOffsets)
      return this.withinIncludingScrolloffsets(element, x, y);
    this.xcomp = x;
    this.ycomp = y;
    this.offset = Element.cumulativeOffset(element);

    return (y >= this.offset[1] &&
            y <  this.offset[1] + element.offsetHeight &&
            x >= this.offset[0] &&
            x <  this.offset[0] + element.offsetWidth);
  },

  withinIncludingScrolloffsets: function(element, x, y) {
    var offsetcache = Element.cumulativeScrollOffset(element);

    this.xcomp = x + offsetcache[0] - this.deltaX;
    this.ycomp = y + offsetcache[1] - this.deltaY;
    this.offset = Element.cumulativeOffset(element);

    return (this.ycomp >= this.offset[1] &&
            this.ycomp <  this.offset[1] + element.offsetHeight &&
            this.xcomp >= this.offset[0] &&
            this.xcomp <  this.offset[0] + element.offsetWidth);
  },

  // within must be called directly before
  overlap: function(mode, element) {
    if (!mode) return 0;
    if (mode == 'vertical')
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
        element.offsetHeight;
    if (mode == 'horizontal')
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
        element.offsetWidth;
  },

  // Deprecation layer -- use newer Element methods now (1.5.2).

  cumulativeOffset: Element.Methods.cumulativeOffset,

  positionedOffset: Element.Methods.positionedOffset,

  absolutize: function(element) {
    Position.prepare();
    return Element.absolutize(element);
  },

  relativize: function(element) {
    Position.prepare();
    return Element.relativize(element);
  },

  realOffset: Element.Methods.cumulativeScrollOffset,

  offsetParent: Element.Methods.getOffsetParent,

  page: Element.Methods.viewportOffset,

  clone: function(source, target, options) {
    options = options || { };
    return Element.clonePosition(target, source, options);
  }
};

/*--------------------------------------------------------------------------*/

if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
  function iter(name) {
    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
  }

  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
  function(element, className) {
    className = className.toString().strip();
    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
  } : function(element, className) {
    className = className.toString().strip();
    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
    if (!classNames && !className) return elements;

    var nodes = $(element).getElementsByTagName('*');
    className = ' ' + className + ' ';

    for (var i = 0, child, cn; child = nodes[i]; i++) {
      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
          (classNames && classNames.all(function(name) {
            return !name.toString().blank() && cn.include(' ' + name + ' ');
          }))))
        elements.push(Element.extend(child));
    }
    return elements;
  };

  return function(className, parentElement) {
    return $(parentElement || document.body).getElementsByClassName(className);
  };
}(Element.Methods);

/*--------------------------------------------------------------------------*/

Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
  initialize: function(element) {
    this.element = $(element);
  },

  _each: function(iterator) {
    this.element.className.split(/\s+/).select(function(name) {
      return name.length > 0;
    })._each(iterator);
  },

  set: function(className) {
    this.element.className = className;
  },

  add: function(classNameToAdd) {
    if (this.include(classNameToAdd)) return;
    this.set($A(this).concat(classNameToAdd).join(' '));
  },

  remove: function(classNameToRemove) {
    if (!this.include(classNameToRemove)) return;
    this.set($A(this).without(classNameToRemove).join(' '));
  },

  toString: function() {
    return $A(this).join(' ');
  }
};

Object.extend(Element.ClassNames.prototype, Enumerable);

/*--------------------------------------------------------------------------*/

Element.addMethods();
// Credit Card Validation Javascript
// copyright 12th May 2003, by Stephen Chapman, Felgall Pty Ltd

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function validateCreditCard(s) {
    // remove non-numerics
    var v = "0123456789";
    var w = "";
    for (i=0; i < s.length; i++) {
        x = s.charAt(i);
        if (v.indexOf(x,0) != -1)
        w += x;
    }
    // validate number
    j = w.length / 2;
    k = Math.floor(j);
    m = Math.ceil(j) - k;
    c = 0;
    for (i=0; i<k; i++) {
        a = w.charAt(i*2+m) * 2;
        c += a > 9 ? Math.floor(a/10 + a%10) : a;
    }
    for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
    return (c%10 == 0);
}


/*
* Really easy field validation with Prototype
* http://tetlaw.id.au/view/javascript/really-easy-field-validation
* Andrew Tetlaw
* Version 1.5.4.1 (2007-01-05)
*
* Copyright (c) 2007 Andrew Tetlaw
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
var Validator = Class.create();

Validator.prototype = {
    initialize : function(className, error, test, options) {
        if(typeof test == 'function'){
            this.options = $H(options);
            this._test = test;
        } else {
            this.options = $H(test);
            this._test = function(){return true};
        }
        this.error = error || 'Validation failed.';
        this.className = className;
    },
    test : function(v, elm) {
        return (this._test(v,elm) && this.options.all(function(p){
            return Validator.methods[p.key] ? Validator.methods[p.key](v,elm,p.value) : true;
        }));
    }
}
Validator.methods = {
    pattern : function(v,elm,opt) {return Validation.get('IsEmpty').test(v) || opt.test(v)},
    minLength : function(v,elm,opt) {return v.length >= opt},
    maxLength : function(v,elm,opt) {return v.length <= opt},
    min : function(v,elm,opt) {return v >= parseFloat(opt)},
    max : function(v,elm,opt) {return v <= parseFloat(opt)},
    notOneOf : function(v,elm,opt) {return $A(opt).all(function(value) {
        return v != value;
    })},
    oneOf : function(v,elm,opt) {return $A(opt).any(function(value) {
        return v == value;
    })},
    is : function(v,elm,opt) {return v == opt},
    isNot : function(v,elm,opt) {return v != opt},
    equalToField : function(v,elm,opt) {return v == $F(opt)},
    notEqualToField : function(v,elm,opt) {return v != $F(opt)},
    include : function(v,elm,opt) {return $A(opt).all(function(value) {
        return Validation.get(value).test(v,elm);
    })}
}

var Validation = Class.create();
Validation.defaultOptions = {
    onSubmit : true,
    stopOnFirst : false,
    immediate : false,
    focusOnError : true,
    useTitles : false,
    addClassNameToContainer: false,
    containerClassName: '.input-box',
    onFormValidate : function(result, form) {},
    onElementValidate : function(result, elm) {}
};

Validation.prototype = {
    initialize : function(form, options){
        this.form = $(form);
        if (!this.form) {
            return;
        }
        this.options = Object.extend({
            onSubmit : Validation.defaultOptions.onSubmit,
            stopOnFirst : Validation.defaultOptions.stopOnFirst,
            immediate : Validation.defaultOptions.immediate,
            focusOnError : Validation.defaultOptions.focusOnError,
            useTitles : Validation.defaultOptions.useTitles,
            onFormValidate : Validation.defaultOptions.onFormValidate,
            onElementValidate : Validation.defaultOptions.onElementValidate
        }, options || {});
        if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
        if(this.options.immediate) {
            Form.getElements(this.form).each(function(input) { // Thanks Mike!
                if (input.tagName.toLowerCase() == 'select') {
                    Event.observe(input, 'blur', this.onChange.bindAsEventListener(this));
                }
                if (input.type.toLowerCase() == 'radio' || input.type.toLowerCase() == 'checkbox') {
                    Event.observe(input, 'click', this.onChange.bindAsEventListener(this));
                } else {
                    Event.observe(input, 'change', this.onChange.bindAsEventListener(this));
                }
            }, this);
        }
    },
    onChange : function (ev) {
        Validation.isOnChange = true;
        Validation.validate(Event.element(ev),{
                useTitle : this.options.useTitles,
                onElementValidate : this.options.onElementValidate
        });
        Validation.isOnChange = false;
    },
    onSubmit :  function(ev){
        if(!this.validate()) Event.stop(ev);
    },
    validate : function() {
        var result = false;
        var useTitles = this.options.useTitles;
        var callback = this.options.onElementValidate;
        try {
            if(this.options.stopOnFirst) {
                result = Form.getElements(this.form).all(function(elm) {
                    if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
                        return true;
                    }
                    return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
                }, this);
            } else {
                result = Form.getElements(this.form).collect(function(elm) {
                    if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
                        return true;
                    }
                    return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
                }, this).all();
            }
        } catch (e) {

        }
        if(!result && this.options.focusOnError) {
            try{
                Form.getElements(this.form).findAll(function(elm){return $(elm).hasClassName('validation-failed')}).first().focus()
            }
            catch(e){

            }
        }
        this.options.onFormValidate(result, this.form);
        return result;
    },
    reset : function() {
        Form.getElements(this.form).each(Validation.reset);
    },
    isElementInForm : function(elm, form) {
        var domForm = elm.up('form');
        if (domForm == form) {
            return true;
        }
        return false;
    }
}

Object.extend(Validation, {
    validate : function(elm, options){
        options = Object.extend({
            useTitle : false,
            onElementValidate : function(result, elm) {}
        }, options || {});
        elm = $(elm);

        var cn = $w(elm.className);
        return result = cn.all(function(value) {
            var test = Validation.test(value,elm,options.useTitle);
            options.onElementValidate(test, elm);
            return test;
        });
    },
    insertAdvice : function(elm, advice){
        var container = $(elm).up('.field-row');
        if(container){
            Element.insert(container, {after: advice});
        } else if (elm.up('td.value')) {
            elm.up('td.value').insert({bottom: advice});
        } else if (elm.advaiceContainer && $(elm.advaiceContainer)) {
            $(elm.advaiceContainer).update(advice);
        }
        else {
            switch (elm.type.toLowerCase()) {
                case 'checkbox':
                case 'radio':
                    var p = elm.parentNode;
                    if(p) {
                        Element.insert(p, {'bottom': advice});
                    } else {
                        Element.insert(elm, {'after': advice});
                    }
                    break;
                default:
                    Element.insert(elm, {'after': advice});
            }
        }
    },
    showAdvice : function(elm, advice, adviceName){
        if(!elm.advices){
            elm.advices = new Hash();
        }
        else{
            elm.advices.each(function(pair){
                this.hideAdvice(elm, pair.value);
            }.bind(this));
        }
        elm.advices.set(adviceName, advice);
        if(typeof Effect == 'undefined') {
            advice.style.display = 'block';
        } else {
            if(!advice._adviceAbsolutize) {
                new Effect.Appear(advice, {duration : 1 });
            } else {
                Position.absolutize(advice);
                advice.show();
                advice.setStyle({
                    'top':advice._adviceTop,
                    'left': advice._adviceLeft,
                    'width': advice._adviceWidth,
                    'z-index': 1000
                });
                advice.addClassName('advice-absolute');
            }
        }
    },
    hideAdvice : function(elm, advice){
        if(advice != null) advice.hide();
    },
    updateCallback : function(elm, status) {
        if (typeof elm.callbackFunction != 'undefined') {
            eval(elm.callbackFunction+'(\''+elm.id+'\',\''+status+'\')');
        }
    },
    ajaxError : function(elm, errorMsg) {
        var name = 'validate-ajax';
        var advice = Validation.getAdvice(name, elm);
        if (advice == null) {
            advice = this.createAdvice(name, elm, false, errorMsg);
        }
        this.showAdvice(elm, advice, 'validate-ajax');
        this.updateCallback(elm, 'failed');

        elm.addClassName('validation-failed');
        elm.addClassName('validate-ajax');
        if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
            var container = elm.up(Validation.defaultOptions.containerClassName);
            if (container && this.allowContainerClassName(elm)) {
                container.removeClassName('validation-passed');
                container.addClassName('validation-error');
            }
        }
    },
    allowContainerClassName: function (elm) {
        if (elm.type == 'radio' || elm.type == 'checkbox') {
            return elm.hasClassName('change-container-classname');
        }

        return true;
    },
    test : function(name, elm, useTitle) {
        var v = Validation.get(name);
        var prop = '__advice'+name.camelize();
        try {
        if(Validation.isVisible(elm) && !v.test($F(elm), elm)) {
            //if(!elm[prop]) {
                var advice = Validation.getAdvice(name, elm);
                if (advice == null) {
                    advice = this.createAdvice(name, elm, useTitle);
                }
                this.showAdvice(elm, advice, name);
                this.updateCallback(elm, 'failed');
            //}
            elm[prop] = 1;
            if (!elm.advaiceContainer) {
                elm.removeClassName('validation-passed');
                elm.addClassName('validation-failed');
            }

           if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container && this.allowContainerClassName(elm)) {
                    container.removeClassName('validation-passed');
                    container.addClassName('validation-error');
                }
            }
            return false;
        } else {
            var advice = Validation.getAdvice(name, elm);
            this.hideAdvice(elm, advice);
            this.updateCallback(elm, 'passed');
            elm[prop] = '';
            elm.removeClassName('validation-failed');
            elm.addClassName('validation-passed');
            if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container && !container.down('.validation-failed') && this.allowContainerClassName(elm)) {
                    if (!Validation.get('IsEmpty').test(elm.value) || !this.isVisible(elm)) {
                        container.addClassName('validation-passed');
                    } else {
                        container.removeClassName('validation-passed');
                    }
                    container.removeClassName('validation-error');
                }
            }
            return true;
        }
        } catch(e) {
            throw(e)
        }
    },
    isVisible : function(elm) {
        while(elm.tagName != 'BODY') {
            if(!$(elm).visible()) return false;
            elm = elm.parentNode;
        }
        return true;
    },
    getAdvice : function(name, elm) {
        return $('advice-' + name + '-' + Validation.getElmID(elm)) || $('advice-' + Validation.getElmID(elm));
    },
    createAdvice : function(name, elm, useTitle, customError) {
        var v = Validation.get(name);
        var errorMsg = useTitle ? ((elm && elm.title) ? elm.title : v.error) : v.error;
        if (customError) {
            errorMsg = customError;
        }
        try {
            if (Translator){
                errorMsg = Translator.translate(errorMsg);
            }
        }
        catch(e){}

        advice = '<div class="validation-advice" id="advice-' + name + '-' + Validation.getElmID(elm) +'" style="display:none">' + errorMsg + '</div>'


        Validation.insertAdvice(elm, advice);
        advice = Validation.getAdvice(name, elm);
        if($(elm).hasClassName('absolute-advice')) {
            var dimensions = $(elm).getDimensions();
            var originalPosition = Position.cumulativeOffset(elm);

            advice._adviceTop = (originalPosition[1] + dimensions.height) + 'px';
            advice._adviceLeft = (originalPosition[0])  + 'px';
            advice._adviceWidth = (dimensions.width)  + 'px';
            advice._adviceAbsolutize = true;
        }
        return advice;
    },
    getElmID : function(elm) {
        return elm.id ? elm.id : elm.name;
    },
    reset : function(elm) {
        elm = $(elm);
        var cn = $w(elm.className);
        cn.each(function(value) {
            var prop = '__advice'+value.camelize();
            if(elm[prop]) {
                var advice = Validation.getAdvice(value, elm);
                if (advice) {
                    advice.hide();
                }
                elm[prop] = '';
            }
            elm.removeClassName('validation-failed');
            elm.removeClassName('validation-passed');
            if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container) {
                    container.removeClassName('validation-passed');
                    container.removeClassName('validation-error');
                }
            }
        });
    },
    add : function(className, error, test, options) {
        var nv = {};
        nv[className] = new Validator(className, error, test, options);
        Object.extend(Validation.methods, nv);
    },
    addAllThese : function(validators) {
        var nv = {};
        $A(validators).each(function(value) {
                nv[value[0]] = new Validator(value[0], value[1], value[2], (value.length > 3 ? value[3] : {}));
            });
        Object.extend(Validation.methods, nv);
    },
    get : function(name) {
        return  Validation.methods[name] ? Validation.methods[name] : Validation.methods['_LikeNoIDIEverSaw_'];
    },
    methods : {
        '_LikeNoIDIEverSaw_' : new Validator('_LikeNoIDIEverSaw_','',{})
    }
});

Validation.add('IsEmpty', '', function(v) {
    return  (v == '' || (v == null) || (v.length == 0) || /^\s+$/.test(v)); // || /^\s+$/.test(v));
});

Validation.addAllThese([
    ['validate-select', 'Please select an option.', function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],
    ['required-entry', 'This is a required field.', function(v) {
                return !Validation.get('IsEmpty').test(v);
            }],
    ['validate-number', 'Please enter a valid number in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) || (!isNaN(parseNumber(v)) && !/^\s+$/.test(parseNumber(v)));
            }],
    ['validate-digits', 'Please use numbers only in this field. please avoid spaces or other characters such as dots or commas.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  !/[^\d]/.test(v);
            }],
    ['validate-alpha', 'Please use letters only (a-z or A-Z) in this field.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z]+$/.test(v)
            }],
    ['validate-code', 'Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-z]+[a-z0-9_]+$/.test(v)
            }],
    ['validate-alphanum', 'Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z0-9]+$/.test(v) /*!/\W/.test(v)*/
            }],
    ['validate-street', 'Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  /^[ \w]{3,}([A-Za-z]\.)?([ \w]*\#\d+)?(\r\n| )[ \w]{3,}/.test(v)
            }],
    ['validate-phoneStrict', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
            }],
    ['validate-phoneLax', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^((\d[-. ]?)?((\(\d{3}\))|\d{3}))?[-. ]?\d{3}[-. ]?\d{4}$/.test(v);
            }],
    ['validate-fax', 'Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
            }],
    ['validate-date', 'Please enter a valid date.', function(v) {
                var test = new Date(v);
                return Validation.get('IsEmpty').test(v) || !isNaN(test);
            }],
    ['validate-email', 'Please enter a valid email address. For example johndoe@domain.com.', function (v) {
                //return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
                //return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v)
                return Validation.get('IsEmpty').test(v) || /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(v)
            }],
    ['validate-emailSender', 'Please use only visible characters and spaces.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[\S ]+$/.test(v)
                    }],
    ['validate-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
                var pass=v.strip(); /*strip leading and trailing spaces*/
                return !(pass.length>0 && pass.length < 6);
            }],
    ['validate-admin-password', 'Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.', function(v) {
                var pass=v.strip();
                if (0 == pass.length) {
                    return true;
                }
                if (!(/[a-z]/i.test(v)) || !(/[0-9]/.test(v))) {
                    return false;
                }
                return !(pass.length < 7);
            }],
    ['validate-cpassword', 'Please make sure your passwords match.', function(v) {
                var conf = $('confirmation') ? $('confirmation') : $$('.validate-cpassword')[0];
                var pass = false;
                if ($('password')) {
                    pass = $('password');
                }
                var passwordElements = $$('.validate-password');
                for (var i = 0; i < passwordElements.size(); i++) {
                    var passwordElement = passwordElements[i];
                    if (passwordElement.up('form').id == conf.up('form').id) {
                        pass = passwordElement;
                    }
                }
                if ($$('.validate-admin-password').size()) {
                    pass = $$('.validate-admin-password')[0];
                }
                return (pass.value == conf.value);
            }],
    ['validate-url', 'Please enter a valid URL. http:// is required', function (v) {
                return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
            }],
    ['validate-clean-url', 'Please enter a valid URL. For example http://www.example.com or www.example.com', function (v) {
                return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(v) || /^(www)((\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(v)
            }],
    ['validate-identifier', 'Please enter a valid URL Key. For example "example-page", "example-page.html" or "anotherlevel/example-page"', function (v) {
                return Validation.get('IsEmpty').test(v) || /^[A-Z0-9][A-Z0-9_\/-]+(\.[A-Z0-9_-]+)*$/i.test(v)
            }],
    ['validate-xml-identifier', 'Please enter a valid XML-identifier. For example something_1, block5, id-4', function (v) {
                return Validation.get('IsEmpty').test(v) || /^[A-Z][A-Z0-9_\/-]*$/i.test(v)
            }],
    ['validate-ssn', 'Please enter a valid social security number. For example 123-45-6789.', function(v) {
            return Validation.get('IsEmpty').test(v) || /^\d{3}-?\d{2}-?\d{4}$/.test(v);
            }],
    ['validate-zip', 'Please enter a valid zip code. For example 90602 or 90602-1234.', function(v) {
            return Validation.get('IsEmpty').test(v) || /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(v);
            }],
    ['validate-zip-international', 'Please enter a valid zip code.', function(v) {
            //return Validation.get('IsEmpty').test(v) || /(^[A-z0-9]{2,10}([\s]{0,1}|[\-]{0,1})[A-z0-9]{2,10}$)/.test(v);
            return true;
            }],
    ['validate-date-au', 'Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.', function(v) {
                if(Validation.get('IsEmpty').test(v)) return true;
                var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
                if(!regex.test(v)) return false;
                var d = new Date(v.replace(regex, '$2/$1/$3'));
                return ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) &&
                            (parseInt(RegExp.$1, 10) == d.getDate()) &&
                            (parseInt(RegExp.$3, 10) == d.getFullYear() );
            }],
    ['validate-currency-dollar', 'Please enter a valid $ amount. For example $100.00.', function(v) {
                // [$]1[##][,###]+[.##]
                // [$]1###+[.##]
                // [$]0.##
                // [$].##
                return Validation.get('IsEmpty').test(v) ||  /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
            }],
    ['validate-one-required', 'Please select one of the above options.', function (v,elm) {
                var p = elm.parentNode;
                var options = p.getElementsByTagName('INPUT');
                return $A(options).any(function(elm) {
                    return $F(elm);
                });
            }],
    ['validate-one-required-by-name', 'Please select one of the options.', function (v,elm) {
                var inputs = $$('input[name="' + elm.name.replace(/([\\"])/g, '\\$1') + '"]');

                var error = 1;
                for(var i=0;i<inputs.length;i++) {
                    if((inputs[i].type == 'checkbox' || inputs[i].type == 'radio') && inputs[i].checked == true) {
                        error = 0;
                    }

                    if(Validation.isOnChange && (inputs[i].type == 'checkbox' || inputs[i].type == 'radio')) {
                        Validation.reset(inputs[i]);
                    }
                }

                if( error == 0 ) {
                    return true;
                } else {
                    return false;
                }
            }],
    ['validate-not-negative-number', 'Please enter a valid number in this field.', function(v) {
                v = parseNumber(v);
                return (!isNaN(v) && v>=0);
            }],
    ['validate-state', 'Please select State/Province.', function(v) {
                return (v!=0 || v == '');
            }],

    ['validate-new-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
                if (!Validation.get('validate-password').test(v)) return false;
                if (Validation.get('IsEmpty').test(v) && v != '') return false;
                return true;
            }],
    ['validate-greater-than-zero', 'Please enter a number greater than 0 in this field.', function(v) {
                if(v.length)
                    return parseFloat(v) > 0;
                else
                    return true;
            }],
    ['validate-zero-or-greater', 'Please enter a number 0 or greater in this field.', function(v) {
                if(v.length)
                    return parseFloat(v) >= 0;
                else
                    return true;
            }],
    ['validate-cc-number', 'Please enter a valid credit card number.', function(v, elm) {
                // remove non-numerics
                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_number')) + '_cc_type');
                if (ccTypeContainer && typeof Validation.creditCartTypes.get(ccTypeContainer.value) != 'undefined'
                        && Validation.creditCartTypes.get(ccTypeContainer.value)[2] == false) {
                    if (!Validation.get('IsEmpty').test(v) && Validation.get('validate-digits').test(v)) {
                        return true;
                    } else {
                        return false;
                    }
                }
                return validateCreditCard(v);
            }],
    ['validate-cc-type', 'Credit card number doesn\'t match credit card type', function(v, elm) {
                // remove credit card number delimiters such as "-" and space
                elm.value = removeDelimiters(elm.value);
                v         = removeDelimiters(v);

                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_number')) + '_cc_type');
                if (!ccTypeContainer) {
                    return true;
                }
                var ccType = ccTypeContainer.value;

                if (typeof Validation.creditCartTypes.get(ccType) == 'undefined') {
                    return false;
                }

                // Other card type or switch or solo card
                if (Validation.creditCartTypes.get(ccType)[0]==false) {
                    return true;
                }

                // Matched credit card type
                var ccMatchedType = '';

                Validation.creditCartTypes.each(function (pair) {
                    if (pair.value[0] && v.match(pair.value[0])) {
                        ccMatchedType = pair.key;
                        throw $break;
                    }
                });

                if(ccMatchedType != ccType) {
                    return false;
                }

                if (ccTypeContainer.hasClassName('validation-failed') && Validation.isOnChange) {
                    Validation.validate(ccTypeContainer);
                }

                return true;
            }],
     ['validate-cc-type-select', 'Card type doesn\'t match credit card number', function(v, elm) {
                var ccNumberContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_type')) + '_cc_number');
                if (Validation.isOnChange && Validation.get('IsEmpty').test(ccNumberContainer.value)) {
                    return true;
                }
                if (Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer)) {
                    Validation.validate(ccNumberContainer);
                }
                return Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer);
            }],
     ['validate-cc-exp', 'Incorrect credit card expiration date', function(v, elm) {
                var ccExpMonth   = v;
                var ccExpYear    = $(elm.id.substr(0,elm.id.indexOf('_expiration')) + '_expiration_yr').value;
                var currentTime  = new Date();
                var currentMonth = currentTime.getMonth() + 1;
                var currentYear  = currentTime.getFullYear();
                if (ccExpMonth < currentMonth && ccExpYear == currentYear) {
                    return false;
                }
                return true;
            }],
     ['validate-cc-cvn', 'Please enter a valid credit card verification number.', function(v, elm) {
                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_cid')) + '_cc_type');
                if (!ccTypeContainer) {
                    return true;
                }
                var ccType = ccTypeContainer.value;

                if (typeof Validation.creditCartTypes.get(ccType) == 'undefined') {
                    return false;
                }

                var re = Validation.creditCartTypes.get(ccType)[1];

                if (v.match(re)) {
                    return true;
                }

                return false;
            }],
     ['validate-ajax', '', function(v, elm) { return true; }],
     ['validate-data', 'Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.', function (v) {
                if(v != '' && v) {
                    return /^[A-Za-z]+[A-Za-z0-9_]+$/.test(v);
                }
                return true;
            }],
     ['validate-css-length', 'Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%', function (v) {
                if (v != '' && v) {
                    return /^[0-9\.]+(px|pt|em|ex|%)?$/.test(v) && (!(/\..*\./.test(v))) && !(/\.$/.test(v));
                }
                return true;
            }],
     ['validate-length', 'Maximum length exceeded.', function (v, elm) {
                var re = new RegExp(/^maximum-length-[0-9]+$/);
                var result = true;
                $w(elm.className).each(function(name, index) {
                        if (name.match(re) && result) {
                           var length = name.split('-')[2];
                           result = (v.length <= length);
                        }
                    });
                return result;
            }],
     ['validate-percents', 'Please enter a number lower than 100', {max:100}]

]);

function removeDelimiters (v) {
    v = v.replace(/\s/g, '');
    v = v.replace(/\-/g, '');
    return v;
}

function parseNumber(v)
{
    if (typeof v != 'string') {
        return parseFloat(v);
    }

    var isDot  = v.indexOf('.');
    var isComa = v.indexOf(',');

    if (isDot != -1 && isComa != -1) {
        if (isComa > isDot) {
            v = v.replace('.', '').replace(',', '.');
        }
        else {
            v = v.replace(',', '');
        }
    }
    else if (isComa != -1) {
        v = v.replace(',', '.');
    }

    return parseFloat(v);
}

/**
 * Hash with credit card types wich can be simply extended in payment modules
 * 0 - regexp for card number
 * 1 - regexp for cvn
 * 2 - check or not credit card number trough Luhn algorithm by
 *     function validateCreditCard wich you can find above in this file
 */
Validation.creditCartTypes = $H({
    'SS': [new RegExp('^((6759[0-9]{12})|(5018|5020|5038|6304|6759|6761|6763[0-9]{12,19})|(49[013][1356][0-9]{12})|(6333[0-9]{12})|(6334[0-4]\d{11})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'SO': [new RegExp('^(6334[5-9]([0-9]{11}|[0-9]{13,14}))|(6767([0-9]{12}|[0-9]{14,15}))$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'SM': [new RegExp('(^(5[0678])[0-9]{11,18}$)|(^(6[^05])[0-9]{11,18}$)|(^(601)[^1][0-9]{9,16}$)|(^(6011)[0-9]{9,11}$)|(^(6011)[0-9]{13,16}$)|(^(65)[0-9]{11,13}$)|(^(65)[0-9]{15,18}$)|(^(49030)[2-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49033)[5-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49110)[1-2]([0-9]{10}$|[0-9]{12,13}$))|(^(49117)[4-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49118)[0-2]([0-9]{10}$|[0-9]{12,13}$))|(^(4936)([0-9]{12}$|[0-9]{14,15}$))'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'VI': [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$'), true],
    'MC': [new RegExp('^5[1-5][0-9]{14}$'), new RegExp('^[0-9]{3}$'), true],
    'AE': [new RegExp('^3[47][0-9]{13}$'), new RegExp('^[0-9]{4}$'), true],
    'DI': [new RegExp('^6011[0-9]{12}$'), new RegExp('^[0-9]{3}$'), true],
    'JCB': [new RegExp('^(3[0-9]{15}|(2131|1800)[0-9]{11})$'), new RegExp('^[0-9]{4}$'), true],
    'OT': [false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]
});

// script.aculo.us builder.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

var Builder = {
  NODEMAP: {
    AREA: 'map',
    CAPTION: 'table',
    COL: 'table',
    COLGROUP: 'table',
    LEGEND: 'fieldset',
    OPTGROUP: 'select',
    OPTION: 'select',
    PARAM: 'object',
    TBODY: 'table',
    TD: 'table',
    TFOOT: 'table',
    TH: 'table',
    THEAD: 'table',
    TR: 'table'
  },
  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
  //       due to a Firefox bug
  node: function(elementName) {
    elementName = elementName.toUpperCase();

    // try innerHTML approach
    var parentTag = this.NODEMAP[elementName] || 'div';
    var parentElement = document.createElement(parentTag);
    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
    } catch(e) {}
    var element = parentElement.firstChild || null;

    // see if browser added wrapping tags
    if(element && (element.tagName.toUpperCase() != elementName))
      element = element.getElementsByTagName(elementName)[0];

    // fallback to createElement approach
    if(!element) element = document.createElement(elementName);

    // abort if nothing could be created
    if(!element) return;

    // attributes (or text)
    if(arguments[1])
      if(this._isStringOrNumber(arguments[1]) ||
        (arguments[1] instanceof Array) ||
        arguments[1].tagName) {
          this._children(element, arguments[1]);
        } else {
          var attrs = this._attributes(arguments[1]);
          if(attrs.length) {
            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
              parentElement.innerHTML = "<" +elementName + " " +
                attrs + "></" + elementName + ">";
            } catch(e) {}
            element = parentElement.firstChild || null;
            // workaround firefox 1.0.X bug
            if(!element) {
              element = document.createElement(elementName);
              for(attr in arguments[1])
                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
            }
            if(element.tagName.toUpperCase() != elementName)
              element = parentElement.getElementsByTagName(elementName)[0];
          }
        }

    // text, or array of children
    if(arguments[2])
      this._children(element, arguments[2]);

     return $(element);
  },
  _text: function(text) {
     return document.createTextNode(text);
  },

  ATTR_MAP: {
    'className': 'class',
    'htmlFor': 'for'
  },

  _attributes: function(attributes) {
    var attrs = [];
    for(attribute in attributes)
      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
          '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;') + '"');
    return attrs.join(" ");
  },
  _children: function(element, children) {
    if(children.tagName) {
      element.appendChild(children);
      return;
    }
    if(typeof children=='object') { // array can hold nodes and text
      children.flatten().each( function(e) {
        if(typeof e=='object')
          element.appendChild(e);
        else
          if(Builder._isStringOrNumber(e))
            element.appendChild(Builder._text(e));
      });
    } else
      if(Builder._isStringOrNumber(children))
        element.appendChild(Builder._text(children));
  },
  _isStringOrNumber: function(param) {
    return(typeof param=='string' || typeof param=='number');
  },
  build: function(html) {
    var element = this.node('div');
    $(element).update(html.strip());
    return element.down();
  },
  dump: function(scope) {
    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope

    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);

    tags.each( function(tag){
      scope[tag] = function() {
        return Builder.node.apply(Builder, [tag].concat($A(arguments)));
      };
    });
  }
};
// script.aculo.us effects.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// Contributors:
//  Justin Palmer (http://encytemedia.com/)
//  Mark Pilgrim (http://diveintomark.org/)
//  Martin Bialasinki
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

// converts rgb() and #xxx to #xxxxxx format,
// returns self (or first argument) if not convertable
String.prototype.parseColor = function() {
  var color = '#';
  if (this.slice(0,4) == 'rgb(') {
    var cols = this.slice(4,this.length-1).split(',');
    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
  } else {
    if (this.slice(0,1) == '#') {
      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
      if (this.length==7) color = this.toLowerCase();
    }
  }
  return (color.length==7 ? color : (arguments[0] || this));
};

/*--------------------------------------------------------------------------*/

Element.collectTextNodes = function(element) {
  return $A($(element).childNodes).collect( function(node) {
    return (node.nodeType==3 ? node.nodeValue :
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
  }).flatten().join('');
};

Element.collectTextNodesIgnoreClass = function(element, className) {
  return $A($(element).childNodes).collect( function(node) {
    return (node.nodeType==3 ? node.nodeValue :
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
        Element.collectTextNodesIgnoreClass(node, className) : ''));
  }).flatten().join('');
};

Element.setContentZoom = function(element, percent) {
  element = $(element);
  element.setStyle({fontSize: (percent/100) + 'em'});
  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
  return element;
};

Element.getInlineOpacity = function(element){
  return $(element).style.opacity || '';
};

Element.forceRerendering = function(element) {
  try {
    element = $(element);
    var n = document.createTextNode(' ');
    element.appendChild(n);
    element.removeChild(n);
  } catch(e) { }
};

/*--------------------------------------------------------------------------*/

var Effect = {
  _elementDoesNotExistError: {
    name: 'ElementDoesNotExistError',
    message: 'The specified DOM element does not exist, but is required for this effect to operate'
  },
  Transitions: {
    linear: Prototype.K,
    sinoidal: function(pos) {
      return (-Math.cos(pos*Math.PI)/2) + .5;
    },
    reverse: function(pos) {
      return 1-pos;
    },
    flicker: function(pos) {
      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
      return pos > 1 ? 1 : pos;
    },
    wobble: function(pos) {
      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
    },
    pulse: function(pos, pulses) {
      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
    },
    spring: function(pos) {
      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
    },
    none: function(pos) {
      return 0;
    },
    full: function(pos) {
      return 1;
    }
  },
  DefaultOptions: {
    duration:   1.0,   // seconds
    fps:        100,   // 100= assume 66fps max.
    sync:       false, // true for combining
    from:       0.0,
    to:         1.0,
    delay:      0.0,
    queue:      'parallel'
  },
  tagifyText: function(element) {
    var tagifyStyle = 'position:relative';
    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';

    element = $(element);
    $A(element.childNodes).each( function(child) {
      if (child.nodeType==3) {
        child.nodeValue.toArray().each( function(character) {
          element.insertBefore(
            new Element('span', {style: tagifyStyle}).update(
              character == ' ' ? String.fromCharCode(160) : character),
              child);
        });
        Element.remove(child);
      }
    });
  },
  multiple: function(element, effect) {
    var elements;
    if (((typeof element == 'object') ||
        Object.isFunction(element)) &&
       (element.length))
      elements = element;
    else
      elements = $(element).childNodes;

    var options = Object.extend({
      speed: 0.1,
      delay: 0.0
    }, arguments[2] || { });
    var masterDelay = options.delay;

    $A(elements).each( function(element, index) {
      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
    });
  },
  PAIRS: {
    'slide':  ['SlideDown','SlideUp'],
    'blind':  ['BlindDown','BlindUp'],
    'appear': ['Appear','Fade']
  },
  toggle: function(element, effect) {
    element = $(element);
    effect = (effect || 'appear').toLowerCase();
    var options = Object.extend({
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
    }, arguments[2] || { });
    Effect[element.visible() ?
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
  }
};

Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;

/* ------------- core effects ------------- */

Effect.ScopedQueue = Class.create(Enumerable, {
  initialize: function() {
    this.effects  = [];
    this.interval = null;
  },
  _each: function(iterator) {
    this.effects._each(iterator);
  },
  add: function(effect) {
    var timestamp = new Date().getTime();

    var position = Object.isString(effect.options.queue) ?
      effect.options.queue : effect.options.queue.position;

    switch(position) {
      case 'front':
        // move unstarted effects after this effect
        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
            e.startOn  += effect.finishOn;
            e.finishOn += effect.finishOn;
          });
        break;
      case 'with-last':
        timestamp = this.effects.pluck('startOn').max() || timestamp;
        break;
      case 'end':
        // start effect after last queued effect has finished
        timestamp = this.effects.pluck('finishOn').max() || timestamp;
        break;
    }

    effect.startOn  += timestamp;
    effect.finishOn += timestamp;

    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
      this.effects.push(effect);

    if (!this.interval)
      this.interval = setInterval(this.loop.bind(this), 15);
  },
  remove: function(effect) {
    this.effects = this.effects.reject(function(e) { return e==effect });
    if (this.effects.length == 0) {
      clearInterval(this.interval);
      this.interval = null;
    }
  },
  loop: function() {
    var timePos = new Date().getTime();
    for(var i=0, len=this.effects.length;i<len;i++)
      this.effects[i] && this.effects[i].loop(timePos);
  }
});

Effect.Queues = {
  instances: $H(),
  get: function(queueName) {
    if (!Object.isString(queueName)) return queueName;

    return this.instances.get(queueName) ||
      this.instances.set(queueName, new Effect.ScopedQueue());
  }
};
Effect.Queue = Effect.Queues.get('global');

Effect.Base = Class.create({
  position: null,
  start: function(options) {
    function codeForEvent(options,eventName){
      return (
        (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') +
        (options[eventName] ? 'this.options.'+eventName+'(this);' : '')
      );
    }
    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
    this.currentFrame = 0;
    this.state        = 'idle';
    this.startOn      = this.options.delay*1000;
    this.finishOn     = this.startOn+(this.options.duration*1000);
    this.fromToDelta  = this.options.to-this.options.from;
    this.totalTime    = this.finishOn-this.startOn;
    this.totalFrames  = this.options.fps*this.options.duration;

    this.render = (function() {
      function dispatch(effect, eventName) {
        if (effect.options[eventName + 'Internal'])
          effect.options[eventName + 'Internal'](effect);
        if (effect.options[eventName])
          effect.options[eventName](effect);
      }

      return function(pos) {
        if (this.state === "idle") {
          this.state = "running";
          dispatch(this, 'beforeSetup');
          if (this.setup) this.setup();
          dispatch(this, 'afterSetup');
        }
        if (this.state === "running") {
          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
          this.position = pos;
          dispatch(this, 'beforeUpdate');
          if (this.update) this.update(pos);
          dispatch(this, 'afterUpdate');
        }
      };
    })();

    this.event('beforeStart');
    if (!this.options.sync)
      Effect.Queues.get(Object.isString(this.options.queue) ?
        'global' : this.options.queue.scope).add(this);
  },
  loop: function(timePos) {
    if (timePos >= this.startOn) {
      if (timePos >= this.finishOn) {
        this.render(1.0);
        this.cancel();
        this.event('beforeFinish');
        if (this.finish) this.finish();
        this.event('afterFinish');
        return;
      }
      var pos   = (timePos - this.startOn) / this.totalTime,
          frame = (pos * this.totalFrames).round();
      if (frame > this.currentFrame) {
        this.render(pos);
        this.currentFrame = frame;
      }
    }
  },
  cancel: function() {
    if (!this.options.sync)
      Effect.Queues.get(Object.isString(this.options.queue) ?
        'global' : this.options.queue.scope).remove(this);
    this.state = 'finished';
  },
  event: function(eventName) {
    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
    if (this.options[eventName]) this.options[eventName](this);
  },
  inspect: function() {
    var data = $H();
    for(property in this)
      if (!Object.isFunction(this[property])) data.set(property, this[property]);
    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
  }
});

Effect.Parallel = Class.create(Effect.Base, {
  initialize: function(effects) {
    this.effects = effects || [];
    this.start(arguments[1]);
  },
  update: function(position) {
    this.effects.invoke('render', position);
  },
  finish: function(position) {
    this.effects.each( function(effect) {
      effect.render(1.0);
      effect.cancel();
      effect.event('beforeFinish');
      if (effect.finish) effect.finish(position);
      effect.event('afterFinish');
    });
  }
});

Effect.Tween = Class.create(Effect.Base, {
  initialize: function(object, from, to) {
    object = Object.isString(object) ? $(object) : object;
    var args = $A(arguments), method = args.last(),
      options = args.length == 5 ? args[3] : null;
    this.method = Object.isFunction(method) ? method.bind(object) :
      Object.isFunction(object[method]) ? object[method].bind(object) :
      function(value) { object[method] = value };
    this.start(Object.extend({ from: from, to: to }, options || { }));
  },
  update: function(position) {
    this.method(position);
  }
});

Effect.Event = Class.create(Effect.Base, {
  initialize: function() {
    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
  },
  update: Prototype.emptyFunction
});

Effect.Opacity = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    // make this work on IE on elements without 'layout'
    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
      this.element.setStyle({zoom: 1});
    var options = Object.extend({
      from: this.element.getOpacity() || 0.0,
      to:   1.0
    }, arguments[1] || { });
    this.start(options);
  },
  update: function(position) {
    this.element.setOpacity(position);
  }
});

Effect.Move = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      x:    0,
      y:    0,
      mode: 'relative'
    }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    this.element.makePositioned();
    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
    if (this.options.mode == 'absolute') {
      this.options.x = this.options.x - this.originalLeft;
      this.options.y = this.options.y - this.originalTop;
    }
  },
  update: function(position) {
    this.element.setStyle({
      left: (this.options.x  * position + this.originalLeft).round() + 'px',
      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
    });
  }
});

// for backwards compatibility
Effect.MoveBy = function(element, toTop, toLeft) {
  return new Effect.Move(element,
    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
};

Effect.Scale = Class.create(Effect.Base, {
  initialize: function(element, percent) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      scaleX: true,
      scaleY: true,
      scaleContent: true,
      scaleFromCenter: false,
      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
      scaleFrom: 100.0,
      scaleTo:   percent
    }, arguments[2] || { });
    this.start(options);
  },
  setup: function() {
    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
    this.elementPositioning = this.element.getStyle('position');

    this.originalStyle = { };
    ['top','left','width','height','fontSize'].each( function(k) {
      this.originalStyle[k] = this.element.style[k];
    }.bind(this));

    this.originalTop  = this.element.offsetTop;
    this.originalLeft = this.element.offsetLeft;

    var fontSize = this.element.getStyle('font-size') || '100%';
    ['em','px','%','pt'].each( function(fontSizeType) {
      if (fontSize.indexOf(fontSizeType)>0) {
        this.fontSize     = parseFloat(fontSize);
        this.fontSizeType = fontSizeType;
      }
    }.bind(this));

    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;

    this.dims = null;
    if (this.options.scaleMode=='box')
      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
    if (/^content/.test(this.options.scaleMode))
      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
    if (!this.dims)
      this.dims = [this.options.scaleMode.originalHeight,
                   this.options.scaleMode.originalWidth];
  },
  update: function(position) {
    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
    if (this.options.scaleContent && this.fontSize)
      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
  },
  finish: function(position) {
    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
  },
  setDimensions: function(height, width) {
    var d = { };
    if (this.options.scaleX) d.width = width.round() + 'px';
    if (this.options.scaleY) d.height = height.round() + 'px';
    if (this.options.scaleFromCenter) {
      var topd  = (height - this.dims[0])/2;
      var leftd = (width  - this.dims[1])/2;
      if (this.elementPositioning == 'absolute') {
        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
      } else {
        if (this.options.scaleY) d.top = -topd + 'px';
        if (this.options.scaleX) d.left = -leftd + 'px';
      }
    }
    this.element.setStyle(d);
  }
});

Effect.Highlight = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
    // Disable background image during the effect
    this.oldStyle = { };
    if (!this.options.keepBackgroundImage) {
      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
      this.element.setStyle({backgroundImage: 'none'});
    }
    if (!this.options.endcolor)
      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
    if (!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('background-color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {
    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
  },
  finish: function() {
    this.element.setStyle(Object.extend(this.oldStyle, {
      backgroundColor: this.options.restorecolor
    }));
  }
});

Effect.ScrollTo = function(element) {
  var options = arguments[1] || { },
  scrollOffsets = document.viewport.getScrollOffsets(),
  elementOffsets = $(element).cumulativeOffset();

  if (options.offset) elementOffsets[1] += options.offset;

  return new Effect.Tween(null,
    scrollOffsets.top,
    elementOffsets[1],
    options,
    function(p){ scrollTo(scrollOffsets.left, p.round()); }
  );
};

/* ------------- combination effects ------------- */

Effect.Fade = function(element) {
  element = $(element);
  var oldOpacity = element.getInlineOpacity();
  var options = Object.extend({
    from: element.getOpacity() || 1.0,
    to:   0.0,
    afterFinishInternal: function(effect) {
      if (effect.options.to!=0) return;
      effect.element.hide().setStyle({opacity: oldOpacity});
    }
  }, arguments[1] || { });
  return new Effect.Opacity(element,options);
};

Effect.Appear = function(element) {
  element = $(element);
  var options = Object.extend({
  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
  to:   1.0,
  // force Safari to render floated elements properly
  afterFinishInternal: function(effect) {
    effect.element.forceRerendering();
  },
  beforeSetup: function(effect) {
    effect.element.setOpacity(effect.options.from).show();
  }}, arguments[1] || { });
  return new Effect.Opacity(element,options);
};

Effect.Puff = function(element) {
  element = $(element);
  var oldStyle = {
    opacity: element.getInlineOpacity(),
    position: element.getStyle('position'),
    top:  element.style.top,
    left: element.style.left,
    width: element.style.width,
    height: element.style.height
  };
  return new Effect.Parallel(
   [ new Effect.Scale(element, 200,
      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
     Object.extend({ duration: 1.0,
      beforeSetupInternal: function(effect) {
        Position.absolutize(effect.effects[0].element);
      },
      afterFinishInternal: function(effect) {
         effect.effects[0].element.hide().setStyle(oldStyle); }
     }, arguments[1] || { })
   );
};

Effect.BlindUp = function(element) {
  element = $(element);
  element.makeClipping();
  return new Effect.Scale(element, 0,
    Object.extend({ scaleContent: false,
      scaleX: false,
      restoreAfterFinish: true,
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping();
      }
    }, arguments[1] || { })
  );
};

Effect.BlindDown = function(element) {
  element = $(element);
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleX: false,
    scaleFrom: 0,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makeClipping().setStyle({height: '0px'}).show();
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping();
    }
  }, arguments[1] || { }));
};

Effect.SwitchOff = function(element) {
  element = $(element);
  var oldOpacity = element.getInlineOpacity();
  return new Effect.Appear(element, Object.extend({
    duration: 0.4,
    from: 0,
    transition: Effect.Transitions.flicker,
    afterFinishInternal: function(effect) {
      new Effect.Scale(effect.element, 1, {
        duration: 0.3, scaleFromCenter: true,
        scaleX: false, scaleContent: false, restoreAfterFinish: true,
        beforeSetup: function(effect) {
          effect.element.makePositioned().makeClipping();
        },
        afterFinishInternal: function(effect) {
          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
        }
      });
    }
  }, arguments[1] || { }));
};

Effect.DropOut = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left'),
    opacity: element.getInlineOpacity() };
  return new Effect.Parallel(
    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    Object.extend(
      { duration: 0.5,
        beforeSetup: function(effect) {
          effect.effects[0].element.makePositioned();
        },
        afterFinishInternal: function(effect) {
          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
        }
      }, arguments[1] || { }));
};

Effect.Shake = function(element) {
  element = $(element);
  var options = Object.extend({
    distance: 20,
    duration: 0.5
  }, arguments[1] || {});
  var distance = parseFloat(options.distance);
  var split = parseFloat(options.duration) / 10.0;
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left') };
    return new Effect.Move(element,
      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
        effect.element.undoPositioned().setStyle(oldStyle);
  }}); }}); }}); }}); }}); }});
};

Effect.SlideDown = function(element) {
  element = $(element).cleanWhitespace();
  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
  var oldInnerBottom = element.down().getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleX: false,
    scaleFrom: window.opera ? 0 : 1,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if (window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().setStyle({height: '0px'}).show();
    },
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping().undoPositioned();
      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
    }, arguments[1] || { })
  );
};

Effect.SlideUp = function(element) {
  element = $(element).cleanWhitespace();
  var oldInnerBottom = element.down().getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, window.opera ? 0 : 1,
   Object.extend({ scaleContent: false,
    scaleX: false,
    scaleMode: 'box',
    scaleFrom: 100,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if (window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().show();
    },
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    },
    afterFinishInternal: function(effect) {
      effect.element.hide().undoClipping().undoPositioned();
      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
    }
   }, arguments[1] || { })
  );
};

// Bug in opera makes the TD containing this element expand for a instance after finish
Effect.Squish = function(element) {
  return new Effect.Scale(element, window.opera ? 1 : 0, {
    restoreAfterFinish: true,
    beforeSetup: function(effect) {
      effect.element.makeClipping();
    },
    afterFinishInternal: function(effect) {
      effect.element.hide().undoClipping();
    }
  });
};

Effect.Grow = function(element) {
  element = $(element);
  var options = Object.extend({
    direction: 'center',
    moveTransition: Effect.Transitions.sinoidal,
    scaleTransition: Effect.Transitions.sinoidal,
    opacityTransition: Effect.Transitions.full
  }, arguments[1] || { });
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    height: element.style.height,
    width: element.style.width,
    opacity: element.getInlineOpacity() };

  var dims = element.getDimensions();
  var initialMoveX, initialMoveY;
  var moveX, moveY;

  switch (options.direction) {
    case 'top-left':
      initialMoveX = initialMoveY = moveX = moveY = 0;
      break;
    case 'top-right':
      initialMoveX = dims.width;
      initialMoveY = moveY = 0;
      moveX = -dims.width;
      break;
    case 'bottom-left':
      initialMoveX = moveX = 0;
      initialMoveY = dims.height;
      moveY = -dims.height;
      break;
    case 'bottom-right':
      initialMoveX = dims.width;
      initialMoveY = dims.height;
      moveX = -dims.width;
      moveY = -dims.height;
      break;
    case 'center':
      initialMoveX = dims.width / 2;
      initialMoveY = dims.height / 2;
      moveX = -dims.width / 2;
      moveY = -dims.height / 2;
      break;
  }

  return new Effect.Move(element, {
    x: initialMoveX,
    y: initialMoveY,
    duration: 0.01,
    beforeSetup: function(effect) {
      effect.element.hide().makeClipping().makePositioned();
    },
    afterFinishInternal: function(effect) {
      new Effect.Parallel(
        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
          new Effect.Scale(effect.element, 100, {
            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
        ], Object.extend({
             beforeSetup: function(effect) {
               effect.effects[0].element.setStyle({height: '0px'}).show();
             },
             afterFinishInternal: function(effect) {
               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
             }
           }, options)
      );
    }
  });
};

Effect.Shrink = function(element) {
  element = $(element);
  var options = Object.extend({
    direction: 'center',
    moveTransition: Effect.Transitions.sinoidal,
    scaleTransition: Effect.Transitions.sinoidal,
    opacityTransition: Effect.Transitions.none
  }, arguments[1] || { });
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    height: element.style.height,
    width: element.style.width,
    opacity: element.getInlineOpacity() };

  var dims = element.getDimensions();
  var moveX, moveY;

  switch (options.direction) {
    case 'top-left':
      moveX = moveY = 0;
      break;
    case 'top-right':
      moveX = dims.width;
      moveY = 0;
      break;
    case 'bottom-left':
      moveX = 0;
      moveY = dims.height;
      break;
    case 'bottom-right':
      moveX = dims.width;
      moveY = dims.height;
      break;
    case 'center':
      moveX = dims.width / 2;
      moveY = dims.height / 2;
      break;
  }

  return new Effect.Parallel(
    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
    ], Object.extend({
         beforeStartInternal: function(effect) {
           effect.effects[0].element.makePositioned().makeClipping();
         },
         afterFinishInternal: function(effect) {
           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
       }, options)
  );
};

Effect.Pulsate = function(element) {
  element = $(element);
  var options    = arguments[1] || { },
    oldOpacity = element.getInlineOpacity(),
    transition = options.transition || Effect.Transitions.linear,
    reverser   = function(pos){
      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
    };

  return new Effect.Opacity(element,
    Object.extend(Object.extend({  duration: 2.0, from: 0,
      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
    }, options), {transition: reverser}));
};

Effect.Fold = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    width: element.style.width,
    height: element.style.height };
  element.makeClipping();
  return new Effect.Scale(element, 5, Object.extend({
    scaleContent: false,
    scaleX: false,
    afterFinishInternal: function(effect) {
    new Effect.Scale(element, 1, {
      scaleContent: false,
      scaleY: false,
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping().setStyle(oldStyle);
      } });
  }}, arguments[1] || { }));
};

Effect.Morph = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      style: { }
    }, arguments[1] || { });

    if (!Object.isString(options.style)) this.style = $H(options.style);
    else {
      if (options.style.include(':'))
        this.style = options.style.parseStyle();
      else {
        this.element.addClassName(options.style);
        this.style = $H(this.element.getStyles());
        this.element.removeClassName(options.style);
        var css = this.element.getStyles();
        this.style = this.style.reject(function(style) {
          return style.value == css[style.key];
        });
        options.afterFinishInternal = function(effect) {
          effect.element.addClassName(effect.options.style);
          effect.transforms.each(function(transform) {
            effect.element.style[transform.style] = '';
          });
        };
      }
    }
    this.start(options);
  },

  setup: function(){
    function parseColor(color){
      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
      color = color.parseColor();
      return $R(0,2).map(function(i){
        return parseInt( color.slice(i*2+1,i*2+3), 16 );
      });
    }
    this.transforms = this.style.map(function(pair){
      var property = pair[0], value = pair[1], unit = null;

      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
        value = value.parseColor();
        unit  = 'color';
      } else if (property == 'opacity') {
        value = parseFloat(value);
        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
          this.element.setStyle({zoom: 1});
      } else if (Element.CSS_LENGTH.test(value)) {
          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
          value = parseFloat(components[1]);
          unit = (components.length == 3) ? components[2] : null;
      }

      var originalValue = this.element.getStyle(property);
      return {
        style: property.camelize(),
        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
        targetValue: unit=='color' ? parseColor(value) : value,
        unit: unit
      };
    }.bind(this)).reject(function(transform){
      return (
        (transform.originalValue == transform.targetValue) ||
        (
          transform.unit != 'color' &&
          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
        )
      );
    });
  },
  update: function(position) {
    var style = { }, transform, i = this.transforms.length;
    while(i--)
      style[(transform = this.transforms[i]).style] =
        transform.unit=='color' ? '#'+
          (Math.round(transform.originalValue[0]+
            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
          (Math.round(transform.originalValue[1]+
            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
          (Math.round(transform.originalValue[2]+
            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
        (transform.originalValue +
          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
            (transform.unit === null ? '' : transform.unit);
    this.element.setStyle(style, true);
  }
});

Effect.Transform = Class.create({
  initialize: function(tracks){
    this.tracks  = [];
    this.options = arguments[1] || { };
    this.addTracks(tracks);
  },
  addTracks: function(tracks){
    tracks.each(function(track){
      track = $H(track);
      var data = track.values().first();
      this.tracks.push($H({
        ids:     track.keys().first(),
        effect:  Effect.Morph,
        options: { style: data }
      }));
    }.bind(this));
    return this;
  },
  play: function(){
    return new Effect.Parallel(
      this.tracks.map(function(track){
        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
        var elements = [$(ids) || $$(ids)].flatten();
        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
      }).flatten(),
      this.options
    );
  }
});

Element.CSS_PROPERTIES = $w(
  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
  'fontSize fontWeight height left letterSpacing lineHeight ' +
  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
  'right textIndent top width wordSpacing zIndex');

Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;

String.__parseStyleElement = document.createElement('div');
String.prototype.parseStyle = function(){
  var style, styleRules = $H();
  if (Prototype.Browser.WebKit)
    style = new Element('div',{style:this}).style;
  else {
    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
    style = String.__parseStyleElement.childNodes[0].style;
  }

  Element.CSS_PROPERTIES.each(function(property){
    if (style[property]) styleRules.set(property, style[property]);
  });

  if (Prototype.Browser.IE && this.include('opacity'))
    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);

  return styleRules;
};

if (document.defaultView && document.defaultView.getComputedStyle) {
  Element.getStyles = function(element) {
    var css = document.defaultView.getComputedStyle($(element), null);
    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
      styles[property] = css[property];
      return styles;
    });
  };
} else {
  Element.getStyles = function(element) {
    element = $(element);
    var css = element.currentStyle, styles;
    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
      results[property] = css[property];
      return results;
    });
    if (!styles.opacity) styles.opacity = element.getOpacity();
    return styles;
  };
}

Effect.Methods = {
  morph: function(element, style) {
    element = $(element);
    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
    return element;
  },
  visualEffect: function(element, effect, options) {
    element = $(element);
    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
    new Effect[klass](element, options);
    return element;
  },
  highlight: function(element, options) {
    element = $(element);
    new Effect.Highlight(element, options);
    return element;
  }
};

$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
  'pulsate shake puff squish switchOff dropOut').each(
  function(effect) {
    Effect.Methods[effect] = function(element, options){
      element = $(element);
      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
      return element;
    };
  }
);

$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
  function(f) { Effect.Methods[f] = Element[f]; }
);

Element.addMethods(Effect.Methods);
// script.aculo.us dragdrop.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//           (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

if(Object.isUndefined(Effect))
  throw("dragdrop.js requires including script.aculo.us' effects.js library");

var Droppables = {
  drops: [],

  remove: function(element) {
    this.drops = this.drops.reject(function(d) { return d.element==$(element) });
  },

  add: function(element) {
    element = $(element);
    var options = Object.extend({
      greedy:     true,
      hoverclass: null,
      tree:       false
    }, arguments[1] || { });

    // cache containers
    if(options.containment) {
      options._containers = [];
      var containment = options.containment;
      if(Object.isArray(containment)) {
        containment.each( function(c) { options._containers.push($(c)) });
      } else {
        options._containers.push($(containment));
      }
    }

    if(options.accept) options.accept = [options.accept].flatten();

    Element.makePositioned(element); // fix IE
    options.element = element;

    this.drops.push(options);
  },

  findDeepestChild: function(drops) {
    deepest = drops[0];

    for (i = 1; i < drops.length; ++i)
      if (Element.isParent(drops[i].element, deepest.element))
        deepest = drops[i];

    return deepest;
  },

  isContained: function(element, drop) {
    var containmentNode;
    if(drop.tree) {
      containmentNode = element.treeNode;
    } else {
      containmentNode = element.parentNode;
    }
    return drop._containers.detect(function(c) { return containmentNode == c });
  },

  isAffected: function(point, element, drop) {
    return (
      (drop.element!=element) &&
      ((!drop._containers) ||
        this.isContained(element, drop)) &&
      ((!drop.accept) ||
        (Element.classNames(element).detect(
          function(v) { return drop.accept.include(v) } ) )) &&
      Position.within(drop.element, point[0], point[1]) );
  },

  deactivate: function(drop) {
    if(drop.hoverclass)
      Element.removeClassName(drop.element, drop.hoverclass);
    this.last_active = null;
  },

  activate: function(drop) {
    if(drop.hoverclass)
      Element.addClassName(drop.element, drop.hoverclass);
    this.last_active = drop;
  },

  show: function(point, element) {
    if(!this.drops.length) return;
    var drop, affected = [];

    this.drops.each( function(drop) {
      if(Droppables.isAffected(point, element, drop))
        affected.push(drop);
    });

    if(affected.length>0)
      drop = Droppables.findDeepestChild(affected);

    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
    if (drop) {
      Position.within(drop.element, point[0], point[1]);
      if(drop.onHover)
        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));

      if (drop != this.last_active) Droppables.activate(drop);
    }
  },

  fire: function(event, element) {
    if(!this.last_active) return;
    Position.prepare();

    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
      if (this.last_active.onDrop) {
        this.last_active.onDrop(element, this.last_active.element, event);
        return true;
      }
  },

  reset: function() {
    if(this.last_active)
      this.deactivate(this.last_active);
  }
};

var Draggables = {
  drags: [],
  observers: [],

  register: function(draggable) {
    if(this.drags.length == 0) {
      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
      this.eventKeypress  = this.keyPress.bindAsEventListener(this);

      Event.observe(document, "mouseup", this.eventMouseUp);
      Event.observe(draggable.element, "mousemove", this.eventMouseMove);
      Event.observe(document, "keypress", this.eventKeypress);
    }
    this.drags.push(draggable);
  },

  unregister: function(draggable) {
    this.drags = this.drags.reject(function(d) { return d==draggable });
    if(this.drags.length == 0) {
      Event.stopObserving(document, "mouseup", this.eventMouseUp);
      Event.stopObserving(draggable.element, "mousemove", this.eventMouseMove);
      Event.stopObserving(document, "keypress", this.eventKeypress);
    }
  },

  activate: function(draggable) {
    if(draggable.options.delay) {
      this._timeout = setTimeout(function() {
        Draggables._timeout = null;
        window.focus();
        Draggables.activeDraggable = draggable;
      }.bind(this), draggable.options.delay);
    } else {
      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
      this.activeDraggable = draggable;
    }
  },

  deactivate: function() {
    this.activeDraggable = null;
  },

  updateDrag: function(event) {
    if(!this.activeDraggable) return;
    var pointer = [Event.pointerX(event), Event.pointerY(event)];
    // Mozilla-based browsers fire successive mousemove events with
    // the same coordinates, prevent needless redrawing (moz bug?)
    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
    this._lastPointer = pointer;

    this.activeDraggable.updateDrag(event, pointer);
  },

  endDrag: function(event) {
    if(this._timeout) {
      clearTimeout(this._timeout);
      this._timeout = null;
    }
    if(!this.activeDraggable) return;
    this._lastPointer = null;
    this.activeDraggable.endDrag(event);
    this.activeDraggable = null;
  },

  keyPress: function(event) {
    if(this.activeDraggable)
      this.activeDraggable.keyPress(event);
  },

  addObserver: function(observer) {
    this.observers.push(observer);
    this._cacheObserverCallbacks();
  },

  removeObserver: function(element) {  // element instead of observer fixes mem leaks
    this.observers = this.observers.reject( function(o) { return o.element==element });
    this._cacheObserverCallbacks();
  },

  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
    if(this[eventName+'Count'] > 0)
      this.observers.each( function(o) {
        if(o[eventName]) o[eventName](eventName, draggable, event);
      });
    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
  },

  _cacheObserverCallbacks: function() {
    ['onStart','onEnd','onDrag'].each( function(eventName) {
      Draggables[eventName+'Count'] = Draggables.observers.select(
        function(o) { return o[eventName]; }
      ).length;
    });
  }
};

/*--------------------------------------------------------------------------*/

var Draggable = Class.create({
  initialize: function(element) {
    var defaults = {
      handle: false,
      reverteffect: function(element, top_offset, left_offset) {
        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;
        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,
          queue: {scope:'_draggable', position:'end'}
        });
      },
      endeffect: function(element) {
        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
          queue: {scope:'_draggable', position:'end'},
          afterFinish: function(){
            Draggable._dragging[element] = false
          }
        });
      },
      zindex: 1000,
      revert: false,
      quiet: false,
      scroll: false,
      scrollSensitivity: 20,
      scrollSpeed: 15,
      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
      delay: 0
    };

    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
      Object.extend(defaults, {
        starteffect: function(element) {
          element._opacity = Element.getOpacity(element);
          Draggable._dragging[element] = true;
          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
        }
      });

    var options = Object.extend(defaults, arguments[1] || { });

    this.element = $(element);

    if(options.handle && Object.isString(options.handle))
      this.handle = this.element.down('.'+options.handle, 0);

    if(!this.handle) this.handle = $(options.handle);
    if(!this.handle) this.handle = this.element;

    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
      options.scroll = $(options.scroll);
      this._isScrollChild = Element.childOf(this.element, options.scroll);
    }

    Element.makePositioned(this.element); // fix IE

    this.options  = options;
    this.dragging = false;

    this.eventMouseDown = this.initDrag.bindAsEventListener(this);
    Event.observe(this.handle, "mousedown", this.eventMouseDown);

    Draggables.register(this);
  },

  destroy: function() {
    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
    Draggables.unregister(this);
  },

  currentDelta: function() {
    return([
      parseInt(Element.getStyle(this.element,'left') || '0'),
      parseInt(Element.getStyle(this.element,'top') || '0')]);
  },

  initDrag: function(event) {
    if(!Object.isUndefined(Draggable._dragging[this.element]) &&
      Draggable._dragging[this.element]) return;
    if(Event.isLeftClick(event)) {
      // abort on form elements, fixes a Firefox issue
      var src = Event.element(event);
      if((tag_name = src.tagName.toUpperCase()) && (
        tag_name=='INPUT' ||
        tag_name=='SELECT' ||
        tag_name=='OPTION' ||
        tag_name=='BUTTON' ||
        tag_name=='TEXTAREA')) return;

      var pointer = [Event.pointerX(event), Event.pointerY(event)];
      var pos     = Position.cumulativeOffset(this.element);
      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });

      Draggables.activate(this);
      Event.stop(event);
    }
  },

  startDrag: function(event) {
    this.dragging = true;
    if(!this.delta)
      this.delta = this.currentDelta();

    if(this.options.zindex) {
      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
      this.element.style.zIndex = this.options.zindex;
    }

    if(this.options.ghosting) {
      this._clone = this.element.cloneNode(true);
      this._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
      if (!this._originallyAbsolute)
        Position.absolutize(this.element);
      this.element.parentNode.insertBefore(this._clone, this.element);
    }

    if(this.options.scroll) {
      if (this.options.scroll == window) {
        var where = this._getWindowScroll(this.options.scroll);
        this.originalScrollLeft = where.left;
        this.originalScrollTop = where.top;
      } else {
        this.originalScrollLeft = this.options.scroll.scrollLeft;
        this.originalScrollTop = this.options.scroll.scrollTop;
      }
    }

    Draggables.notify('onStart', this, event);

    if(this.options.starteffect) this.options.starteffect(this.element);
  },

  updateDrag: function(event, pointer) {
    if(!this.dragging) this.startDrag(event);

    if(!this.options.quiet){
      Position.prepare();
      Droppables.show(pointer, this.element);
    }

    Draggables.notify('onDrag', this, event);

    this.draw(pointer);
    if(this.options.change) this.options.change(this);

    if(this.options.scroll) {
      this.stopScrolling();

      var p;
      if (this.options.scroll == window) {
        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
      } else {
        p = Position.page(this.options.scroll);
        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
        p[1] += this.options.scroll.scrollTop + Position.deltaY;
        p.push(p[0]+this.options.scroll.offsetWidth);
        p.push(p[1]+this.options.scroll.offsetHeight);
      }
      var speed = [0,0];
      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);
      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);
      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);
      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
      this.startScrolling(speed);
    }

    // fix AppleWebKit rendering
    if(Prototype.Browser.WebKit) window.scrollBy(0,0);

    Event.stop(event);
  },

  finishDrag: function(event, success) {
    this.dragging = false;

    if(this.options.quiet){
      Position.prepare();
      var pointer = [Event.pointerX(event), Event.pointerY(event)];
      Droppables.show(pointer, this.element);
    }

    if(this.options.ghosting) {
      if (!this._originallyAbsolute)
        Position.relativize(this.element);
      delete this._originallyAbsolute;
      Element.remove(this._clone);
      this._clone = null;
    }

    var dropped = false;
    if(success) {
      dropped = Droppables.fire(event, this.element);
      if (!dropped) dropped = false;
    }
    if(dropped && this.options.onDropped) this.options.onDropped(this.element);
    Draggables.notify('onEnd', this, event);

    var revert = this.options.revert;
    if(revert && Object.isFunction(revert)) revert = revert(this.element);

    var d = this.currentDelta();
    if(revert && this.options.reverteffect) {
      if (dropped == 0 || revert != 'failure')
        this.options.reverteffect(this.element,
          d[1]-this.delta[1], d[0]-this.delta[0]);
    } else {
      this.delta = d;
    }

    if(this.options.zindex)
      this.element.style.zIndex = this.originalZ;

    if(this.options.endeffect)
      this.options.endeffect(this.element);

    Draggables.deactivate(this);
    Droppables.reset();
  },

  keyPress: function(event) {
    if(event.keyCode!=Event.KEY_ESC) return;
    this.finishDrag(event, false);
    Event.stop(event);
  },

  endDrag: function(event) {
    if(!this.dragging) return;
    this.stopScrolling();
    this.finishDrag(event, true);
    Event.stop(event);
  },

  draw: function(point) {
    var pos = Position.cumulativeOffset(this.element);
    if(this.options.ghosting) {
      var r   = Position.realOffset(this.element);
      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
    }

    var d = this.currentDelta();
    pos[0] -= d[0]; pos[1] -= d[1];

    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
    }

    var p = [0,1].map(function(i){
      return (point[i]-pos[i]-this.offset[i])
    }.bind(this));

    if(this.options.snap) {
      if(Object.isFunction(this.options.snap)) {
        p = this.options.snap(p[0],p[1],this);
      } else {
      if(Object.isArray(this.options.snap)) {
        p = p.map( function(v, i) {
          return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this));
      } else {
        p = p.map( function(v) {
          return (v/this.options.snap).round()*this.options.snap }.bind(this));
      }
    }}

    var style = this.element.style;
    if((!this.options.constraint) || (this.options.constraint=='horizontal'))
      style.left = p[0] + "px";
    if((!this.options.constraint) || (this.options.constraint=='vertical'))
      style.top  = p[1] + "px";

    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
  },

  stopScrolling: function() {
    if(this.scrollInterval) {
      clearInterval(this.scrollInterval);
      this.scrollInterval = null;
      Draggables._lastScrollPointer = null;
    }
  },

  startScrolling: function(speed) {
    if(!(speed[0] || speed[1])) return;
    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
    this.lastScrolled = new Date();
    this.scrollInterval = setInterval(this.scroll.bind(this), 10);
  },

  scroll: function() {
    var current = new Date();
    var delta = current - this.lastScrolled;
    this.lastScrolled = current;
    if(this.options.scroll == window) {
      with (this._getWindowScroll(this.options.scroll)) {
        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {
          var d = delta / 1000;
          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );
        }
      }
    } else {
      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
    }

    Position.prepare();
    Droppables.show(Draggables._lastPointer, this.element);
    Draggables.notify('onDrag', this);
    if (this._isScrollChild) {
      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);
      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;
      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;
      if (Draggables._lastScrollPointer[0] < 0)
        Draggables._lastScrollPointer[0] = 0;
      if (Draggables._lastScrollPointer[1] < 0)
        Draggables._lastScrollPointer[1] = 0;
      this.draw(Draggables._lastScrollPointer);
    }

    if(this.options.change) this.options.change(this);
  },

  _getWindowScroll: function(w) {
    var T, L, W, H;
    with (w.document) {
      if (w.document.documentElement && documentElement.scrollTop) {
        T = documentElement.scrollTop;
        L = documentElement.scrollLeft;
      } else if (w.document.body) {
        T = body.scrollTop;
        L = body.scrollLeft;
      }
      if (w.innerWidth) {
        W = w.innerWidth;
        H = w.innerHeight;
      } else if (w.document.documentElement && documentElement.clientWidth) {
        W = documentElement.clientWidth;
        H = documentElement.clientHeight;
      } else {
        W = body.offsetWidth;
        H = body.offsetHeight;
      }
    }
    return { top: T, left: L, width: W, height: H };
  }
});

Draggable._dragging = { };

/*--------------------------------------------------------------------------*/

var SortableObserver = Class.create({
  initialize: function(element, observer) {
    this.element   = $(element);
    this.observer  = observer;
    this.lastValue = Sortable.serialize(this.element);
  },

  onStart: function() {
    this.lastValue = Sortable.serialize(this.element);
  },

  onEnd: function() {
    Sortable.unmark();
    if(this.lastValue != Sortable.serialize(this.element))
      this.observer(this.element)
  }
});

var Sortable = {
  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,

  sortables: { },

  _findRootElement: function(element) {
    while (element.tagName.toUpperCase() != "BODY") {
      if(element.id && Sortable.sortables[element.id]) return element;
      element = element.parentNode;
    }
  },

  options: function(element) {
    element = Sortable._findRootElement($(element));
    if(!element) return;
    return Sortable.sortables[element.id];
  },

  destroy: function(element){
    element = $(element);
    var s = Sortable.sortables[element.id];

    if(s) {
      Draggables.removeObserver(s.element);
      s.droppables.each(function(d){ Droppables.remove(d) });
      s.draggables.invoke('destroy');

      delete Sortable.sortables[s.element.id];
    }
  },

  create: function(element) {
    element = $(element);
    var options = Object.extend({
      element:     element,
      tag:         'li',       // assumes li children, override with tag: 'tagname'
      dropOnEmpty: false,
      tree:        false,
      treeTag:     'ul',
      overlap:     'vertical', // one of 'vertical', 'horizontal'
      constraint:  'vertical', // one of 'vertical', 'horizontal', false
      containment: element,    // also takes array of elements (or id's); or false
      handle:      false,      // or a CSS class
      only:        false,
      delay:       0,
      hoverclass:  null,
      ghosting:    false,
      quiet:       false,
      scroll:      false,
      scrollSensitivity: 20,
      scrollSpeed: 15,
      format:      this.SERIALIZE_RULE,

      // these take arrays of elements or ids and can be
      // used for better initialization performance
      elements:    false,
      handles:     false,

      onChange:    Prototype.emptyFunction,
      onUpdate:    Prototype.emptyFunction
    }, arguments[1] || { });

    // clear any old sortable with same element
    this.destroy(element);

    // build options for the draggables
    var options_for_draggable = {
      revert:      true,
      quiet:       options.quiet,
      scroll:      options.scroll,
      scrollSpeed: options.scrollSpeed,
      scrollSensitivity: options.scrollSensitivity,
      delay:       options.delay,
      ghosting:    options.ghosting,
      constraint:  options.constraint,
      handle:      options.handle };

    if(options.starteffect)
      options_for_draggable.starteffect = options.starteffect;

    if(options.reverteffect)
      options_for_draggable.reverteffect = options.reverteffect;
    else
      if(options.ghosting) options_for_draggable.reverteffect = function(element) {
        element.style.top  = 0;
        element.style.left = 0;
      };

    if(options.endeffect)
      options_for_draggable.endeffect = options.endeffect;

    if(options.zindex)
      options_for_draggable.zindex = options.zindex;

    // build options for the droppables
    var options_for_droppable = {
      overlap:     options.overlap,
      containment: options.containment,
      tree:        options.tree,
      hoverclass:  options.hoverclass,
      onHover:     Sortable.onHover
    };

    var options_for_tree = {
      onHover:      Sortable.onEmptyHover,
      overlap:      options.overlap,
      containment:  options.containment,
      hoverclass:   options.hoverclass
    };

    // fix for gecko engine
    Element.cleanWhitespace(element);

    options.draggables = [];
    options.droppables = [];

    // drop on empty handling
    if(options.dropOnEmpty || options.tree) {
      Droppables.add(element, options_for_tree);
      options.droppables.push(element);
    }

    (options.elements || this.findElements(element, options) || []).each( function(e,i) {
      var handle = options.handles ? $(options.handles[i]) :
        (options.handle ? $(e).select('.' + options.handle)[0] : e);
      options.draggables.push(
        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
      Droppables.add(e, options_for_droppable);
      if(options.tree) e.treeNode = element;
      options.droppables.push(e);
    });

    if(options.tree) {
      (Sortable.findTreeElements(element, options) || []).each( function(e) {
        Droppables.add(e, options_for_tree);
        e.treeNode = element;
        options.droppables.push(e);
      });
    }

    // keep reference
    this.sortables[element.id] = options;

    // for onupdate
    Draggables.addObserver(new SortableObserver(element, options.onUpdate));

  },

  // return all suitable-for-sortable elements in a guaranteed order
  findElements: function(element, options) {
    return Element.findChildren(
      element, options.only, options.tree ? true : false, options.tag);
  },

  findTreeElements: function(element, options) {
    return Element.findChildren(
      element, options.only, options.tree ? true : false, options.treeTag);
  },

  onHover: function(element, dropon, overlap) {
    if(Element.isParent(dropon, element)) return;

    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {
      return;
    } else if(overlap>0.5) {
      Sortable.mark(dropon, 'before');
      if(dropon.previousSibling != element) {
        var oldParentNode = element.parentNode;
        element.style.visibility = "hidden"; // fix gecko rendering
        dropon.parentNode.insertBefore(element, dropon);
        if(dropon.parentNode!=oldParentNode)
          Sortable.options(oldParentNode).onChange(element);
        Sortable.options(dropon.parentNode).onChange(element);
      }
    } else {
      Sortable.mark(dropon, 'after');
      var nextElement = dropon.nextSibling || null;
      if(nextElement != element) {
        var oldParentNode = element.parentNode;
        element.style.visibility = "hidden"; // fix gecko rendering
        dropon.parentNode.insertBefore(element, nextElement);
        if(dropon.parentNode!=oldParentNode)
          Sortable.options(oldParentNode).onChange(element);
        Sortable.options(dropon.parentNode).onChange(element);
      }
    }
  },

  onEmptyHover: function(element, dropon, overlap) {
    var oldParentNode = element.parentNode;
    var droponOptions = Sortable.options(dropon);

    if(!Element.isParent(dropon, element)) {
      var index;

      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
      var child = null;

      if(children) {
        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);

        for (index = 0; index < children.length; index += 1) {
          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
            offset -= Element.offsetSize (children[index], droponOptions.overlap);
          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {
            child = index + 1 < children.length ? children[index + 1] : null;
            break;
          } else {
            child = children[index];
            break;
          }
        }
      }

      dropon.insertBefore(element, child);

      Sortable.options(oldParentNode).onChange(element);
      droponOptions.onChange(element);
    }
  },

  unmark: function() {
    if(Sortable._marker) Sortable._marker.hide();
  },

  mark: function(dropon, position) {
    // mark on ghosting only
    var sortable = Sortable.options(dropon.parentNode);
    if(sortable && !sortable.ghosting) return;

    if(!Sortable._marker) {
      Sortable._marker =
        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
          hide().addClassName('dropmarker').setStyle({position:'absolute'});
      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
    }
    var offsets = Position.cumulativeOffset(dropon);
    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});

    if(position=='after')
      if(sortable.overlap == 'horizontal')
        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
      else
        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});

    Sortable._marker.show();
  },

  _tree: function(element, options, parent) {
    var children = Sortable.findElements(element, options) || [];

    for (var i = 0; i < children.length; ++i) {
      var match = children[i].id.match(options.format);

      if (!match) continue;

      var child = {
        id: encodeURIComponent(match ? match[1] : null),
        element: element,
        parent: parent,
        children: [],
        position: parent.children.length,
        container: $(children[i]).down(options.treeTag)
      };

      /* Get the element containing the children and recurse over it */
      if (child.container)
        this._tree(child.container, options, child);

      parent.children.push (child);
    }

    return parent;
  },

  tree: function(element) {
    element = $(element);
    var sortableOptions = this.options(element);
    var options = Object.extend({
      tag: sortableOptions.tag,
      treeTag: sortableOptions.treeTag,
      only: sortableOptions.only,
      name: element.id,
      format: sortableOptions.format
    }, arguments[1] || { });

    var root = {
      id: null,
      parent: null,
      children: [],
      container: element,
      position: 0
    };

    return Sortable._tree(element, options, root);
  },

  /* Construct a [i] index for a particular node */
  _constructIndex: function(node) {
    var index = '';
    do {
      if (node.id) index = '[' + node.position + ']' + index;
    } while ((node = node.parent) != null);
    return index;
  },

  sequence: function(element) {
    element = $(element);
    var options = Object.extend(this.options(element), arguments[1] || { });

    return $(this.findElements(element, options) || []).map( function(item) {
      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
    });
  },

  setSequence: function(element, new_sequence) {
    element = $(element);
    var options = Object.extend(this.options(element), arguments[2] || { });

    var nodeMap = { };
    this.findElements(element, options).each( function(n) {
        if (n.id.match(options.format))
            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
        n.parentNode.removeChild(n);
    });

    new_sequence.each(function(ident) {
      var n = nodeMap[ident];
      if (n) {
        n[1].appendChild(n[0]);
        delete nodeMap[ident];
      }
    });
  },

  serialize: function(element) {
    element = $(element);
    var options = Object.extend(Sortable.options(element), arguments[1] || { });
    var name = encodeURIComponent(
      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);

    if (options.tree) {
      return Sortable.tree(element, arguments[1]).children.map( function (item) {
        return [name + Sortable._constructIndex(item) + "[id]=" +
                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
      }).flatten().join('&');
    } else {
      return Sortable.sequence(element, arguments[1]).map( function(item) {
        return name + "[]=" + encodeURIComponent(item);
      }).join('&');
    }
  }
};

// Returns true if child is contained within element
Element.isParent = function(child, element) {
  if (!child.parentNode || child == element) return false;
  if (child.parentNode == element) return true;
  return Element.isParent(child.parentNode, element);
};

Element.findChildren = function(element, only, recursive, tagName) {
  if(!element.hasChildNodes()) return null;
  tagName = tagName.toUpperCase();
  if(only) only = [only].flatten();
  var elements = [];
  $A(element.childNodes).each( function(e) {
    if(e.tagName && e.tagName.toUpperCase()==tagName &&
      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))
        elements.push(e);
    if(recursive) {
      var grandchildren = Element.findChildren(e, only, recursive, tagName);
      if(grandchildren) elements.push(grandchildren);
    }
  });

  return (elements.length>0 ? elements.flatten() : []);
};

Element.offsetSize = function (element, type) {
  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
};
// script.aculo.us controls.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//           (c) 2005-2008 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
//           (c) 2005-2008 Jon Tirsen (http://www.tirsen.com)
// Contributors:
//  Richard Livsey
//  Rahul Bhargava
//  Rob Wills
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

// Autocompleter.Base handles all the autocompletion functionality
// that's independent of the data source for autocompletion. This
// includes drawing the autocompletion menu, observing keyboard
// and mouse events, and similar.
//
// Specific autocompleters need to provide, at the very least,
// a getUpdatedChoices function that will be invoked every time
// the text inside the monitored textbox changes. This method
// should get the text for which to provide autocompletion by
// invoking this.getToken(), NOT by directly accessing
// this.element.value. This is to allow incremental tokenized
// autocompletion. Specific auto-completion logic (AJAX, etc)
// belongs in getUpdatedChoices.
//
// Tokenized incremental autocompletion is enabled automatically
// when an autocompleter is instantiated with the 'tokens' option
// in the options parameter, e.g.:
// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
// will incrementally autocomplete with a comma as the token.
// Additionally, ',' in the above example can be replaced with
// a token array, e.g. { tokens: [',', '\n'] } which
// enables autocompletion on multiple tokens. This is most
// useful when one of the tokens is \n (a newline), as it
// allows smart autocompletion after linebreaks.

if(typeof Effect == 'undefined')
  throw("controls.js requires including script.aculo.us' effects.js library");

var Autocompleter = { };
Autocompleter.Base = Class.create({
  baseInitialize: function(element, update, options) {
    element          = $(element);
    this.element     = element;
    this.update      = $(update);
    this.hasFocus    = false;
    this.changed     = false;
    this.active      = false;
    this.index       = 0;
    this.entryCount  = 0;
    this.oldElementValue = this.element.value;

    if(this.setOptions)
      this.setOptions(options);
    else
      this.options = options || { };

    this.options.paramName    = this.options.paramName || this.element.name;
    this.options.tokens       = this.options.tokens || [];
    this.options.frequency    = this.options.frequency || 0.4;
    this.options.minChars     = this.options.minChars || 1;
    this.options.onShow       = this.options.onShow ||
      function(element, update){
        if(!update.style.position || update.style.position=='absolute') {
          update.style.position = 'absolute';
          Position.clone(element, update, {
            setHeight: false,
            offsetTop: element.offsetHeight
          });
        }
        Effect.Appear(update,{duration:0.15});
      };
    this.options.onHide = this.options.onHide ||
      function(element, update){ new Effect.Fade(update,{duration:0.15}) };

    if(typeof(this.options.tokens) == 'string')
      this.options.tokens = new Array(this.options.tokens);
    // Force carriage returns as token delimiters anyway
    if (!this.options.tokens.include('\n'))
      this.options.tokens.push('\n');

    this.observer = null;

    this.element.setAttribute('autocomplete','off');

    Element.hide(this.update);

    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
  },

  show: function() {
    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
    if(!this.iefix &&
      (Prototype.Browser.IE) &&
      (Element.getStyle(this.update, 'position')=='absolute')) {
      new Insertion.After(this.update,
       '<iframe id="' + this.update.id + '_iefix" '+
       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
      this.iefix = $(this.update.id+'_iefix');
    }
    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
  },

  fixIEOverlapping: function() {
    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
    this.iefix.style.zIndex = 1;
    this.update.style.zIndex = 2;
    Element.show(this.iefix);
  },

  hide: function() {
    this.stopIndicator();
    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
    if(this.iefix) Element.hide(this.iefix);
  },

  startIndicator: function() {
    if(this.options.indicator) Element.show(this.options.indicator);
  },

  stopIndicator: function() {
    if(this.options.indicator) Element.hide(this.options.indicator);
  },

  onKeyPress: function(event) {
    if(this.active)
      switch(event.keyCode) {
       case Event.KEY_TAB:
       case Event.KEY_RETURN:
         this.selectEntry();
         Event.stop(event);
       case Event.KEY_ESC:
         this.hide();
         this.active = false;
         Event.stop(event);
         return;
       case Event.KEY_LEFT:
       case Event.KEY_RIGHT:
         return;
       case Event.KEY_UP:
         this.markPrevious();
         this.render();
         Event.stop(event);
         return;
       case Event.KEY_DOWN:
         this.markNext();
         this.render();
         Event.stop(event);
         return;
      }
     else
       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;

    this.changed = true;
    this.hasFocus = true;

    if(this.observer) clearTimeout(this.observer);
      this.observer =
        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
  },

  activate: function() {
    this.changed = false;
    this.hasFocus = true;
    this.getUpdatedChoices();
  },

  onHover: function(event) {
    var element = Event.findElement(event, 'LI');
    if(this.index != element.autocompleteIndex)
    {
        this.index = element.autocompleteIndex;
        this.render();
    }
    Event.stop(event);
  },

  onClick: function(event) {
    var element = Event.findElement(event, 'LI');
    this.index = element.autocompleteIndex;
    this.selectEntry();
    this.hide();
  },

  onBlur: function(event) {
    // needed to make click events working
    setTimeout(this.hide.bind(this), 250);
    this.hasFocus = false;
    this.active = false;
  },

  render: function() {
    if(this.entryCount > 0) {
      for (var i = 0; i < this.entryCount; i++)
        this.index==i ?
          Element.addClassName(this.getEntry(i),"selected") :
          Element.removeClassName(this.getEntry(i),"selected");
      if(this.hasFocus) {
        this.show();
        this.active = true;
      }
    } else {
      this.active = false;
      this.hide();
    }
  },

  markPrevious: function() {
    if(this.index > 0) this.index--;
      else this.index = this.entryCount-1;
    //this.getEntry(this.index).scrollIntoView(true); useless
  },

  markNext: function() {
    if(this.index < this.entryCount-1) this.index++;
      else this.index = 0;
    this.getEntry(this.index).scrollIntoView(false);
  },

  getEntry: function(index) {
    return this.update.firstChild.childNodes[index];
  },

  getCurrentEntry: function() {
    return this.getEntry(this.index);
  },

  selectEntry: function() {
    this.active = false;
    this.updateElement(this.getCurrentEntry());
  },

  updateElement: function(selectedElement) {
    if (this.options.updateElement) {
      this.options.updateElement(selectedElement);
      return;
    }
    var value = '';
    if (this.options.select) {
      var nodes = $(selectedElement).select('.' + this.options.select) || [];
      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
    } else
      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');

    var bounds = this.getTokenBounds();
    if (bounds[0] != -1) {
      var newValue = this.element.value.substr(0, bounds[0]);
      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
      if (whitespace)
        newValue += whitespace[0];
      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
    } else {
      this.element.value = value;
    }
    this.oldElementValue = this.element.value;
    this.element.focus();

    if (this.options.afterUpdateElement)
      this.options.afterUpdateElement(this.element, selectedElement);
  },

  updateChoices: function(choices) {
    if(!this.changed && this.hasFocus) {
      this.update.innerHTML = choices;
      Element.cleanWhitespace(this.update);
      Element.cleanWhitespace(this.update.down());

      if(this.update.firstChild && this.update.down().childNodes) {
        this.entryCount =
          this.update.down().childNodes.length;
        for (var i = 0; i < this.entryCount; i++) {
          var entry = this.getEntry(i);
          entry.autocompleteIndex = i;
          this.addObservers(entry);
        }
      } else {
        this.entryCount = 0;
      }

      this.stopIndicator();
      this.index = 0;

      if(this.entryCount==1 && this.options.autoSelect) {
        this.selectEntry();
        this.hide();
      } else {
        this.render();
      }
    }
  },

  addObservers: function(element) {
    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
  },

  onObserverEvent: function() {
    this.changed = false;
    this.tokenBounds = null;
    if(this.getToken().length>=this.options.minChars) {
      this.getUpdatedChoices();
    } else {
      this.active = false;
      this.hide();
    }
    this.oldElementValue = this.element.value;
  },

  getToken: function() {
    var bounds = this.getTokenBounds();
    return this.element.value.substring(bounds[0], bounds[1]).strip();
  },

  getTokenBounds: function() {
    if (null != this.tokenBounds) return this.tokenBounds;
    var value = this.element.value;
    if (value.strip().empty()) return [-1, 0];
    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
    var offset = (diff == this.oldElementValue.length ? 1 : 0);
    var prevTokenPos = -1, nextTokenPos = value.length;
    var tp;
    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
      if (tp > prevTokenPos) prevTokenPos = tp;
      tp = value.indexOf(this.options.tokens[index], diff + offset);
      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
    }
    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
  }
});

Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
  var boundary = Math.min(newS.length, oldS.length);
  for (var index = 0; index < boundary; ++index)
    if (newS[index] != oldS[index])
      return index;
  return boundary;
};

Ajax.Autocompleter = Class.create(Autocompleter.Base, {
  initialize: function(element, update, url, options) {
    this.baseInitialize(element, update, options);
    this.options.asynchronous  = true;
    this.options.onComplete    = this.onComplete.bind(this);
    this.options.defaultParams = this.options.parameters || null;
    this.url                   = url;
  },

  getUpdatedChoices: function() {
    this.startIndicator();

    var entry = encodeURIComponent(this.options.paramName) + '=' +
      encodeURIComponent(this.getToken());

    this.options.parameters = this.options.callback ?
      this.options.callback(this.element, entry) : entry;

    if(this.options.defaultParams)
      this.options.parameters += '&' + this.options.defaultParams;

    new Ajax.Request(this.url, this.options);
  },

  onComplete: function(request) {
    this.updateChoices(request.responseText);
  }
});

// The local array autocompleter. Used when you'd prefer to
// inject an array of autocompletion options into the page, rather
// than sending out Ajax queries, which can be quite slow sometimes.
//
// The constructor takes four parameters. The first two are, as usual,
// the id of the monitored textbox, and id of the autocompletion menu.
// The third is the array you want to autocomplete from, and the fourth
// is the options block.
//
// Extra local autocompletion options:
// - choices - How many autocompletion choices to offer
//
// - partialSearch - If false, the autocompleter will match entered
//                    text only at the beginning of strings in the
//                    autocomplete array. Defaults to true, which will
//                    match text at the beginning of any *word* in the
//                    strings in the autocomplete array. If you want to
//                    search anywhere in the string, additionally set
//                    the option fullSearch to true (default: off).
//
// - fullSsearch - Search anywhere in autocomplete array strings.
//
// - partialChars - How many characters to enter before triggering
//                   a partial match (unlike minChars, which defines
//                   how many characters are required to do any match
//                   at all). Defaults to 2.
//
// - ignoreCase - Whether to ignore case when autocompleting.
//                 Defaults to true.
//
// It's possible to pass in a custom function as the 'selector'
// option, if you prefer to write your own autocompletion logic.
// In that case, the other options above will not apply unless
// you support them.

Autocompleter.Local = Class.create(Autocompleter.Base, {
  initialize: function(element, update, array, options) {
    this.baseInitialize(element, update, options);
    this.options.array = array;
  },

  getUpdatedChoices: function() {
    this.updateChoices(this.options.selector(this));
  },

  setOptions: function(options) {
    this.options = Object.extend({
      choices: 10,
      partialSearch: true,
      partialChars: 2,
      ignoreCase: true,
      fullSearch: false,
      selector: function(instance) {
        var ret       = []; // Beginning matches
        var partial   = []; // Inside matches
        var entry     = instance.getToken();
        var count     = 0;

        for (var i = 0; i < instance.options.array.length &&
          ret.length < instance.options.choices ; i++) {

          var elem = instance.options.array[i];
          var foundPos = instance.options.ignoreCase ?
            elem.toLowerCase().indexOf(entry.toLowerCase()) :
            elem.indexOf(entry);

          while (foundPos != -1) {
            if (foundPos == 0 && elem.length != entry.length) {
              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
                elem.substr(entry.length) + "</li>");
              break;
            } else if (entry.length >= instance.options.partialChars &&
              instance.options.partialSearch && foundPos != -1) {
              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
                  foundPos + entry.length) + "</li>");
                break;
              }
            }

            foundPos = instance.options.ignoreCase ?
              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
              elem.indexOf(entry, foundPos + 1);

          }
        }
        if (partial.length)
          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
        return "<ul>" + ret.join('') + "</ul>";
      }
    }, options || { });
  }
});

// AJAX in-place editor and collection editor
// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).

// Use this if you notice weird scrolling problems on some browsers,
// the DOM might be a bit confused when this gets called so do this
// waits 1 ms (with setTimeout) until it does the activation
Field.scrollFreeActivate = function(field) {
  setTimeout(function() {
    Field.activate(field);
  }, 1);
};

Ajax.InPlaceEditor = Class.create({
  initialize: function(element, url, options) {
    this.url = url;
    this.element = element = $(element);
    this.prepareOptions();
    this._controls = { };
    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
    Object.extend(this.options, options || { });
    if (!this.options.formId && this.element.id) {
      this.options.formId = this.element.id + '-inplaceeditor';
      if ($(this.options.formId))
        this.options.formId = '';
    }
    if (this.options.externalControl)
      this.options.externalControl = $(this.options.externalControl);
    if (!this.options.externalControl)
      this.options.externalControlOnly = false;
    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
    this.element.title = this.options.clickToEditText;
    this._boundCancelHandler = this.handleFormCancellation.bind(this);
    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
    this._boundWrapperHandler = this.wrapUp.bind(this);
    this.registerListeners();
  },
  checkForEscapeOrReturn: function(e) {
    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
    if (Event.KEY_ESC == e.keyCode)
      this.handleFormCancellation(e);
    else if (Event.KEY_RETURN == e.keyCode)
      this.handleFormSubmission(e);
  },
  createControl: function(mode, handler, extraClasses) {
    var control = this.options[mode + 'Control'];
    var text = this.options[mode + 'Text'];
    if ('button' == control) {
      var btn = document.createElement('input');
      btn.type = 'submit';
      btn.value = text;
      btn.className = 'editor_' + mode + '_button';
      if ('cancel' == mode)
        btn.onclick = this._boundCancelHandler;
      this._form.appendChild(btn);
      this._controls[mode] = btn;
    } else if ('link' == control) {
      var link = document.createElement('a');
      link.href = '#';
      link.appendChild(document.createTextNode(text));
      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
      link.className = 'editor_' + mode + '_link';
      if (extraClasses)
        link.className += ' ' + extraClasses;
      this._form.appendChild(link);
      this._controls[mode] = link;
    }
  },
  createEditField: function() {
    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
    var fld;
    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
      fld = document.createElement('input');
      fld.type = 'text';
      var size = this.options.size || this.options.cols || 0;
      if (0 < size) fld.size = size;
    } else {
      fld = document.createElement('textarea');
      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
      fld.cols = this.options.cols || 40;
    }
    fld.name = this.options.paramName;
    fld.value = text; // No HTML breaks conversion anymore
    fld.className = 'editor_field';
    if (this.options.submitOnBlur)
      fld.onblur = this._boundSubmitHandler;
    this._controls.editor = fld;
    if (this.options.loadTextURL)
      this.loadExternalText();
    this._form.appendChild(this._controls.editor);
  },
  createForm: function() {
    var ipe = this;
    function addText(mode, condition) {
      var text = ipe.options['text' + mode + 'Controls'];
      if (!text || condition === false) return;
      ipe._form.appendChild(document.createTextNode(text));
    };
    this._form = $(document.createElement('form'));
    this._form.id = this.options.formId;
    this._form.addClassName(this.options.formClassName);
    this._form.onsubmit = this._boundSubmitHandler;
    this.createEditField();
    if ('textarea' == this._controls.editor.tagName.toLowerCase())
      this._form.appendChild(document.createElement('br'));
    if (this.options.onFormCustomization)
      this.options.onFormCustomization(this, this._form);
    addText('Before', this.options.okControl || this.options.cancelControl);
    this.createControl('ok', this._boundSubmitHandler);
    addText('Between', this.options.okControl && this.options.cancelControl);
    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
    addText('After', this.options.okControl || this.options.cancelControl);
  },
  destroy: function() {
    if (this._oldInnerHTML)
      this.element.innerHTML = this._oldInnerHTML;
    this.leaveEditMode();
    this.unregisterListeners();
  },
  enterEditMode: function(e) {
    if (this._saving || this._editing) return;
    this._editing = true;
    this.triggerCallback('onEnterEditMode');
    if (this.options.externalControl)
      this.options.externalControl.hide();
    this.element.hide();
    this.createForm();
    this.element.parentNode.insertBefore(this._form, this.element);
    if (!this.options.loadTextURL)
      this.postProcessEditField();
    if (e) Event.stop(e);
  },
  enterHover: function(e) {
    if (this.options.hoverClassName)
      this.element.addClassName(this.options.hoverClassName);
    if (this._saving) return;
    this.triggerCallback('onEnterHover');
  },
  getText: function() {
    return this.element.innerHTML.unescapeHTML();
  },
  handleAJAXFailure: function(transport) {
    this.triggerCallback('onFailure', transport);
    if (this._oldInnerHTML) {
      this.element.innerHTML = this._oldInnerHTML;
      this._oldInnerHTML = null;
    }
  },
  handleFormCancellation: function(e) {
    this.wrapUp();
    if (e) Event.stop(e);
  },
  handleFormSubmission: function(e) {
    var form = this._form;
    var value = $F(this._controls.editor);
    this.prepareSubmission();
    var params = this.options.callback(form, value) || '';
    if (Object.isString(params))
      params = params.toQueryParams();
    params.editorId = this.element.id;
    if (this.options.htmlResponse) {
      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
      Object.extend(options, {
        parameters: params,
        onComplete: this._boundWrapperHandler,
        onFailure: this._boundFailureHandler
      });
      new Ajax.Updater({ success: this.element }, this.url, options);
    } else {
      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
      Object.extend(options, {
        parameters: params,
        onComplete: this._boundWrapperHandler,
        onFailure: this._boundFailureHandler
      });
      new Ajax.Request(this.url, options);
    }
    if (e) Event.stop(e);
  },
  leaveEditMode: function() {
    this.element.removeClassName(this.options.savingClassName);
    this.removeForm();
    this.leaveHover();
    this.element.style.backgroundColor = this._originalBackground;
    this.element.show();
    if (this.options.externalControl)
      this.options.externalControl.show();
    this._saving = false;
    this._editing = false;
    this._oldInnerHTML = null;
    this.triggerCallback('onLeaveEditMode');
  },
  leaveHover: function(e) {
    if (this.options.hoverClassName)
      this.element.removeClassName(this.options.hoverClassName);
    if (this._saving) return;
    this.triggerCallback('onLeaveHover');
  },
  loadExternalText: function() {
    this._form.addClassName(this.options.loadingClassName);
    this._controls.editor.disabled = true;
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        this._form.removeClassName(this.options.loadingClassName);
        var text = transport.responseText;
        if (this.options.stripLoadedTextTags)
          text = text.stripTags();
        this._controls.editor.value = text;
        this._controls.editor.disabled = false;
        this.postProcessEditField();
      }.bind(this),
      onFailure: this._boundFailureHandler
    });
    new Ajax.Request(this.options.loadTextURL, options);
  },
  postProcessEditField: function() {
    var fpc = this.options.fieldPostCreation;
    if (fpc)
      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
  },
  prepareOptions: function() {
    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
      Object.extend(this.options, defs);
    }.bind(this));
  },
  prepareSubmission: function() {
    this._saving = true;
    this.removeForm();
    this.leaveHover();
    this.showSaving();
  },
  registerListeners: function() {
    this._listeners = { };
    var listener;
    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
      listener = this[pair.value].bind(this);
      this._listeners[pair.key] = listener;
      if (!this.options.externalControlOnly)
        this.element.observe(pair.key, listener);
      if (this.options.externalControl)
        this.options.externalControl.observe(pair.key, listener);
    }.bind(this));
  },
  removeForm: function() {
    if (!this._form) return;
    this._form.remove();
    this._form = null;
    this._controls = { };
  },
  showSaving: function() {
    this._oldInnerHTML = this.element.innerHTML;
    this.element.innerHTML = this.options.savingText;
    this.element.addClassName(this.options.savingClassName);
    this.element.style.backgroundColor = this._originalBackground;
    this.element.show();
  },
  triggerCallback: function(cbName, arg) {
    if ('function' == typeof this.options[cbName]) {
      this.options[cbName](this, arg);
    }
  },
  unregisterListeners: function() {
    $H(this._listeners).each(function(pair) {
      if (!this.options.externalControlOnly)
        this.element.stopObserving(pair.key, pair.value);
      if (this.options.externalControl)
        this.options.externalControl.stopObserving(pair.key, pair.value);
    }.bind(this));
  },
  wrapUp: function(transport) {
    this.leaveEditMode();
    // Can't use triggerCallback due to backward compatibility: requires
    // binding + direct element
    this._boundComplete(transport, this.element);
  }
});

Object.extend(Ajax.InPlaceEditor.prototype, {
  dispose: Ajax.InPlaceEditor.prototype.destroy
});

Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
  initialize: function($super, element, url, options) {
    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
    $super(element, url, options);
  },

  createEditField: function() {
    var list = document.createElement('select');
    list.name = this.options.paramName;
    list.size = 1;
    this._controls.editor = list;
    this._collection = this.options.collection || [];
    if (this.options.loadCollectionURL)
      this.loadCollection();
    else
      this.checkForExternalText();
    this._form.appendChild(this._controls.editor);
  },

  loadCollection: function() {
    this._form.addClassName(this.options.loadingClassName);
    this.showLoadingText(this.options.loadingCollectionText);
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        var js = transport.responseText.strip();
        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
          throw('Server returned an invalid collection representation.');
        this._collection = eval(js);
        this.checkForExternalText();
      }.bind(this),
      onFailure: this.onFailure
    });
    new Ajax.Request(this.options.loadCollectionURL, options);
  },

  showLoadingText: function(text) {
    this._controls.editor.disabled = true;
    var tempOption = this._controls.editor.firstChild;
    if (!tempOption) {
      tempOption = document.createElement('option');
      tempOption.value = '';
      this._controls.editor.appendChild(tempOption);
      tempOption.selected = true;
    }
    tempOption.update((text || '').stripScripts().stripTags());
  },

  checkForExternalText: function() {
    this._text = this.getText();
    if (this.options.loadTextURL)
      this.loadExternalText();
    else
      this.buildOptionList();
  },

  loadExternalText: function() {
    this.showLoadingText(this.options.loadingText);
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        this._text = transport.responseText.strip();
        this.buildOptionList();
      }.bind(this),
      onFailure: this.onFailure
    });
    new Ajax.Request(this.options.loadTextURL, options);
  },

  buildOptionList: function() {
    this._form.removeClassName(this.options.loadingClassName);
    this._collection = this._collection.map(function(entry) {
      return 2 === entry.length ? entry : [entry, entry].flatten();
    });
    var marker = ('value' in this.options) ? this.options.value : this._text;
    var textFound = this._collection.any(function(entry) {
      return entry[0] == marker;
    }.bind(this));
    this._controls.editor.update('');
    var option;
    this._collection.each(function(entry, index) {
      option = document.createElement('option');
      option.value = entry[0];
      option.selected = textFound ? entry[0] == marker : 0 == index;
      option.appendChild(document.createTextNode(entry[1]));
      this._controls.editor.appendChild(option);
    }.bind(this));
    this._controls.editor.disabled = false;
    Field.scrollFreeActivate(this._controls.editor);
  }
});

//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
//**** This only  exists for a while,  in order to  let ****
//**** users adapt to  the new API.  Read up on the new ****
//**** API and convert your code to it ASAP!            ****

Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
  if (!options) return;
  function fallback(name, expr) {
    if (name in options || expr === undefined) return;
    options[name] = expr;
  };
  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
    options.cancelLink == options.cancelButton == false ? false : undefined)));
  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
    options.okLink == options.okButton == false ? false : undefined)));
  fallback('highlightColor', options.highlightcolor);
  fallback('highlightEndColor', options.highlightendcolor);
};

Object.extend(Ajax.InPlaceEditor, {
  DefaultOptions: {
    ajaxOptions: { },
    autoRows: 3,                                // Use when multi-line w/ rows == 1
    cancelControl: 'link',                      // 'link'|'button'|false
    cancelText: 'cancel',
    clickToEditText: 'Click to edit',
    externalControl: null,                      // id|elt
    externalControlOnly: false,
    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
    formClassName: 'inplaceeditor-form',
    formId: null,                               // id|elt
    highlightColor: '#ffff99',
    highlightEndColor: '#ffffff',
    hoverClassName: '',
    htmlResponse: true,
    loadingClassName: 'inplaceeditor-loading',
    loadingText: 'Loading...',
    okControl: 'button',                        // 'link'|'button'|false
    okText: 'ok',
    paramName: 'value',
    rows: 1,                                    // If 1 and multi-line, uses autoRows
    savingClassName: 'inplaceeditor-saving',
    savingText: 'Saving...',
    size: 0,
    stripLoadedTextTags: false,
    submitOnBlur: false,
    textAfterControls: '',
    textBeforeControls: '',
    textBetweenControls: ''
  },
  DefaultCallbacks: {
    callback: function(form) {
      return Form.serialize(form);
    },
    onComplete: function(transport, element) {
      // For backward compatibility, this one is bound to the IPE, and passes
      // the element directly.  It was too often customized, so we don't break it.
      new Effect.Highlight(element, {
        startcolor: this.options.highlightColor, keepBackgroundImage: true });
    },
    onEnterEditMode: null,
    onEnterHover: function(ipe) {
      ipe.element.style.backgroundColor = ipe.options.highlightColor;
      if (ipe._effect)
        ipe._effect.cancel();
    },
    onFailure: function(transport, ipe) {
      alert('Error communication with the server: ' + transport.responseText.stripTags());
    },
    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
    onLeaveEditMode: null,
    onLeaveHover: function(ipe) {
      ipe._effect = new Effect.Highlight(ipe.element, {
        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
        restorecolor: ipe._originalBackground, keepBackgroundImage: true
      });
    }
  },
  Listeners: {
    click: 'enterEditMode',
    keydown: 'checkForEscapeOrReturn',
    mouseover: 'enterHover',
    mouseout: 'leaveHover'
  }
});

Ajax.InPlaceCollectionEditor.DefaultOptions = {
  loadingCollectionText: 'Loading options...'
};

// Delayed observer, like Form.Element.Observer,
// but waits for delay after last key input
// Ideal for live-search fields

Form.Element.DelayedObserver = Class.create({
  initialize: function(element, delay, callback) {
    this.delay     = delay || 0.5;
    this.element   = $(element);
    this.callback  = callback;
    this.timer     = null;
    this.lastValue = $F(this.element);
    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
  },
  delayedListener: function(event) {
    if(this.lastValue == $F(this.element)) return;
    if(this.timer) clearTimeout(this.timer);
    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
    this.lastValue = $F(this.element);
  },
  onTimerEvent: function() {
    this.timer = null;
    this.callback(this.element, $F(this.element));
  }
});
// script.aculo.us slider.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Marty Haught, Thomas Fuchs
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

if (!Control) var Control = { };

// options:
//  axis: 'vertical', or 'horizontal' (default)
//
// callbacks:
//  onChange(value)
//  onSlide(value)
Control.Slider = Class.create({
  initialize: function(handle, track, options) {
    var slider = this;

    if (Object.isArray(handle)) {
      this.handles = handle.collect( function(e) { return $(e) });
    } else {
      this.handles = [$(handle)];
    }

    this.track   = $(track);
    this.options = options || { };

    this.axis      = this.options.axis || 'horizontal';
    this.increment = this.options.increment || 1;
    this.step      = parseInt(this.options.step || '1');
    this.range     = this.options.range || $R(0,1);

    this.value     = 0; // assure backwards compat
    this.values    = this.handles.map( function() { return 0 });
    this.spans     = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;
    this.options.startSpan = $(this.options.startSpan || null);
    this.options.endSpan   = $(this.options.endSpan || null);

    this.restricted = this.options.restricted || false;

    this.maximum   = this.options.maximum || this.range.end;
    this.minimum   = this.options.minimum || this.range.start;

    // Will be used to align the handle onto the track, if necessary
    this.alignX = parseInt(this.options.alignX || '0');
    this.alignY = parseInt(this.options.alignY || '0');

    this.trackLength = this.maximumOffset() - this.minimumOffset();

    this.handleLength = this.isVertical() ?
      (this.handles[0].offsetHeight != 0 ?
        this.handles[0].offsetHeight : this.handles[0].style.height.replace(/px$/,"")) :
      (this.handles[0].offsetWidth != 0 ? this.handles[0].offsetWidth :
        this.handles[0].style.width.replace(/px$/,""));

    this.active   = false;
    this.dragging = false;
    this.disabled = false;

    if (this.options.disabled) this.setDisabled();

    // Allowed values array
    this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
    if (this.allowedValues) {
      this.minimum = this.allowedValues.min();
      this.maximum = this.allowedValues.max();
    }

    this.eventMouseDown = this.startDrag.bindAsEventListener(this);
    this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
    this.eventMouseMove = this.update.bindAsEventListener(this);

    // Initialize handles in reverse (make sure first handle is active)
    this.handles.each( function(h,i) {
      i = slider.handles.length-1-i;
      slider.setValue(parseFloat(
        (Object.isArray(slider.options.sliderValue) ?
          slider.options.sliderValue[i] : slider.options.sliderValue) ||
         slider.range.start), i);
      h.makePositioned().observe("mousedown", slider.eventMouseDown);
    });

    this.track.observe("mousedown", this.eventMouseDown);
    document.observe("mouseup", this.eventMouseUp);
    $(this.track.parentNode.parentNode).observe("mousemove", this.eventMouseMove);


    this.initialized = true;
  },
  dispose: function() {
    var slider = this;
    Event.stopObserving(this.track, "mousedown", this.eventMouseDown);
    Event.stopObserving(document, "mouseup", this.eventMouseUp);
    Event.stopObserving(this.track.parentNode.parentNode, "mousemove", this.eventMouseMove);
    this.handles.each( function(h) {
      Event.stopObserving(h, "mousedown", slider.eventMouseDown);
    });
  },
  setDisabled: function(){
    this.disabled = true;
    this.track.parentNode.className = this.track.parentNode.className + ' disabled';
  },
  setEnabled: function(){
    this.disabled = false;
  },
  getNearestValue: function(value){
    if (this.allowedValues){
      if (value >= this.allowedValues.max()) return(this.allowedValues.max());
      if (value <= this.allowedValues.min()) return(this.allowedValues.min());

      var offset = Math.abs(this.allowedValues[0] - value);
      var newValue = this.allowedValues[0];
      this.allowedValues.each( function(v) {
        var currentOffset = Math.abs(v - value);
        if (currentOffset <= offset){
          newValue = v;
          offset = currentOffset;
        }
      });
      return newValue;
    }
    if (value > this.range.end) return this.range.end;
    if (value < this.range.start) return this.range.start;
    return value;
  },
  setValue: function(sliderValue, handleIdx){
    if (!this.active) {
      this.activeHandleIdx = handleIdx || 0;
      this.activeHandle    = this.handles[this.activeHandleIdx];
      this.updateStyles();
    }
    handleIdx = handleIdx || this.activeHandleIdx || 0;
    if (this.initialized && this.restricted) {
      if ((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
        sliderValue = this.values[handleIdx-1];
      if ((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
        sliderValue = this.values[handleIdx+1];
    }
    sliderValue = this.getNearestValue(sliderValue);
    this.values[handleIdx] = sliderValue;
    this.value = this.values[0]; // assure backwards compat

    this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] =
      this.translateToPx(sliderValue);

    this.drawSpans();
    if (!this.dragging || !this.event) this.updateFinished();
  },
  setValueBy: function(delta, handleIdx) {
    this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
      handleIdx || this.activeHandleIdx || 0);
  },
  translateToPx: function(value) {
    return Math.round(
      ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) *
      (value - this.range.start)) + "px";
  },
  translateToValue: function(offset) {
    return ((offset/(this.trackLength-this.handleLength) *
      (this.range.end-this.range.start)) + this.range.start);
  },
  getRange: function(range) {
    var v = this.values.sortBy(Prototype.K);
    range = range || 0;
    return $R(v[range],v[range+1]);
  },
  minimumOffset: function(){
    return(this.isVertical() ? this.alignY : this.alignX);
  },
  maximumOffset: function(){
    return(this.isVertical() ?
      (this.track.offsetHeight != 0 ? this.track.offsetHeight :
        this.track.style.height.replace(/px$/,"")) - this.alignY :
      (this.track.offsetWidth != 0 ? this.track.offsetWidth :
        this.track.style.width.replace(/px$/,"")) - this.alignX);
  },
  isVertical:  function(){
    return (this.axis == 'vertical');
  },
  drawSpans: function() {
    var slider = this;
    if (this.spans)
      $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
    if (this.options.startSpan)
      this.setSpan(this.options.startSpan,
        $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
    if (this.options.endSpan)
      this.setSpan(this.options.endSpan,
        $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
  },
  setSpan: function(span, range) {
    if (this.isVertical()) {
      span.style.top = this.translateToPx(range.start);
      span.style.height = this.translateToPx(range.end - range.start + this.range.start);
    } else {
      span.style.left = this.translateToPx(range.start);
      span.style.width = this.translateToPx(range.end - range.start + this.range.start);
    }
  },
  updateStyles: function() {
    this.handles.each( function(h){ Element.removeClassName(h, 'selected') });
    Element.addClassName(this.activeHandle, 'selected');
  },
  startDrag: function(event) {
    if (Event.isLeftClick(event)) {
      if (!this.disabled){
        this.active = true;

        var handle = Event.element(event);
        var pointer  = [Event.pointerX(event), Event.pointerY(event)];
        var track = handle;
        if (track==this.track) {
          var offsets  = Position.cumulativeOffset(this.track);
          this.event = event;
          this.setValue(this.translateToValue(
           (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)
          ));
          var offsets  = Position.cumulativeOffset(this.activeHandle);
          this.offsetX = (pointer[0] - offsets[0]);
          this.offsetY = (pointer[1] - offsets[1]);
        } else {
          // find the handle (prevents issues with Safari)
          while((this.handles.indexOf(handle) == -1) && handle.parentNode)
            handle = handle.parentNode;

          if (this.handles.indexOf(handle)!=-1) {
            this.activeHandle    = handle;
            this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
            this.updateStyles();

            var offsets  = Position.cumulativeOffset(this.activeHandle);
            this.offsetX = (pointer[0] - offsets[0]);
            this.offsetY = (pointer[1] - offsets[1]);
          }
        }
      }
      Event.stop(event);
    }
  },
  update: function(event) {
   if (this.active) {
      if (!this.dragging) this.dragging = true;
      this.draw(event);
      if (Prototype.Browser.WebKit) window.scrollBy(0,0);
      Event.stop(event);
   }
  },
  draw: function(event) {
    var pointer = [Event.pointerX(event), Event.pointerY(event)];
    var offsets = Position.cumulativeOffset(this.track);
    pointer[0] -= this.offsetX + offsets[0];
    pointer[1] -= this.offsetY + offsets[1];
    this.event = event;
    this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
    if (this.initialized && this.options.onSlide)
      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
  },
  endDrag: function(event) {
    if (this.active && this.dragging) {
      this.finishDrag(event, true);
      Event.stop(event);
    }
    this.active = false;
    this.dragging = false;
  },
  finishDrag: function(event, success) {
    this.active = false;
    this.dragging = false;
    this.updateFinished();
  },
  updateFinished: function() {
    if (this.initialized && this.options.onChange)
      this.options.onChange(this.values.length>1 ? this.values : this.value, this);
    this.event = null;
  }
});
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
function popWin(url,win,para) {
    var win = window.open(url,win,para);
    win.focus();
}

function setLocation(url){
    window.location.href = url;
}

function setPLocation(url, setFocus){
    if( setFocus ) {
        window.opener.focus();
    }
    window.opener.location.href = url;
}

function setLanguageCode(code, fromCode){
    //TODO: javascript cookies have different domain and path than php cookies
    var href = window.location.href;
    var after = '', dash;
    if (dash = href.match(/\#(.*)$/)) {
        href = href.replace(/\#(.*)$/, '');
        after = dash[0];
    }

    if (href.match(/[?]/)) {
        var re = /([?&]store=)[a-z0-9_]*/;
        if (href.match(re)) {
            href = href.replace(re, '$1'+code);
        } else {
            href += '&store='+code;
        }

        var re = /([?&]from_store=)[a-z0-9_]*/;
        if (href.match(re)) {
            href = href.replace(re, '');
        }
    } else {
        href += '?store='+code;
    }
    if (typeof(fromCode) != 'undefined') {
        href += '&from_store='+fromCode;
    }
    href += after;

    setLocation(href);
}

/**
 * Add classes to specified elements.
 * Supported classes are: 'odd', 'even', 'first', 'last'
 *
 * @param elements - array of elements to be decorated
 * [@param decorateParams] - array of classes to be set. If omitted, all available will be used
 */
function decorateGeneric(elements, decorateParams)
{
    var allSupportedParams = ['odd', 'even', 'first', 'last'];
    var _decorateParams = {};
    var total = elements.length;

    if (total) {
        // determine params called
        if (typeof(decorateParams) == 'undefined') {
            decorateParams = allSupportedParams;
        }
        if (!decorateParams.length) {
            return;
        }
        for (var k in allSupportedParams) {
            _decorateParams[allSupportedParams[k]] = false;
        }
        for (var k in decorateParams) {
            _decorateParams[decorateParams[k]] = true;
        }

        // decorate elements
        // elements[0].addClassName('first'); // will cause bug in IE (#5587)
        if (_decorateParams.first) {
            Element.addClassName(elements[0], 'first');
        }
        if (_decorateParams.last) {
            Element.addClassName(elements[total-1], 'last');
        }
        for (var i = 0; i < total; i++) {
            if ((i + 1) % 2 == 0) {
                if (_decorateParams.even) {
                    Element.addClassName(elements[i], 'even');
                }
            }
            else {
                if (_decorateParams.odd) {
                    Element.addClassName(elements[i], 'odd');
                }
            }
        }
    }
}

/**
 * Decorate table rows and cells, tbody etc
 * @see decorateGeneric()
 */
function decorateTable(table, options) {
    var table = $(table);
    if (table) {
        // set default options
        var _options = {
            'tbody'    : false,
            'tbody tr' : ['odd', 'even', 'first', 'last'],
            'thead tr' : ['first', 'last'],
            'tfoot tr' : ['first', 'last'],
            'tr td'    : ['last']
        };
        // overload options
        if (typeof(options) != 'undefined') {
            for (var k in options) {
                _options[k] = options[k];
            }
        }
        // decorate
        if (_options['tbody']) {
            decorateGeneric(table.select('tbody'), _options['tbody']);
        }
        if (_options['tbody tr']) {
            decorateGeneric(table.select('tbody tr'), _options['tbody tr']);
        }
        if (_options['thead tr']) {
            decorateGeneric(table.select('thead tr'), _options['thead tr']);
        }
        if (_options['tfoot tr']) {
            decorateGeneric(table.select('tfoot tr'), _options['tfoot tr']);
        }
        if (_options['tr td']) {
            var allRows = table.select('tr');
            if (allRows.length) {
                for (var i = 0; i < allRows.length; i++) {
                    decorateGeneric(allRows[i].getElementsByTagName('TD'), _options['tr td']);
                }
            }
        }
    }
}

/**
 * Set "odd", "even" and "last" CSS classes for list items
 * @see decorateGeneric()
 */
function decorateList(list, nonRecursive) {
    if ($(list)) {
        if (typeof(nonRecursive) == 'undefined') {
            var items = $(list).select('li')
        }
        else {
            var items = $(list).childElements();
        }
        decorateGeneric(items, ['odd', 'even', 'last']);
    }
}

/**
 * Set "odd", "even" and "last" CSS classes for list items
 * @see decorateGeneric()
 */
function decorateDataList(list) {
    list = $(list);
    if (list) {
        decorateGeneric(list.select('dt'), ['odd', 'even', 'last']);
        decorateGeneric(list.select('dd'), ['odd', 'even', 'last']);
    }
}

/**
 * Parse SID and produces the correct URL
 */
function parseSidUrl(baseUrl, urlExt) {
    sidPos = baseUrl.indexOf('/?SID=');
    sid = '';
    urlExt = (urlExt != undefined) ? urlExt : '';

    if(sidPos > -1) {
        sid = '?' + baseUrl.substring(sidPos + 2);
        baseUrl = baseUrl.substring(0, sidPos + 1);
    }

    return baseUrl+urlExt+sid;
}

/**
 * Formats currency using patern
 * format - JSON (pattern, decimal, decimalsDelimeter, groupsDelimeter)
 * showPlus - true (always show '+'or '-'),
 *      false (never show '-' even if number is negative)
 *      null (show '-' if number is negative)
 */

function formatCurrency(price, format, showPlus){
    precision = isNaN(format.precision = Math.abs(format.precision)) ? 2 : format.precision;
    requiredPrecision = isNaN(format.requiredPrecision = Math.abs(format.requiredPrecision)) ? 2 : format.requiredPrecision;

    //precision = (precision > requiredPrecision) ? precision : requiredPrecision;
    //for now we don't need this difference so precision is requiredPrecision
    precision = requiredPrecision;

    integerRequired = isNaN(format.integerRequired = Math.abs(format.integerRequired)) ? 1 : format.integerRequired;

    decimalSymbol = format.decimalSymbol == undefined ? "," : format.decimalSymbol;
    groupSymbol = format.groupSymbol == undefined ? "." : format.groupSymbol;
    groupLength = format.groupLength == undefined ? 3 : format.groupLength;

    if (showPlus == undefined || showPlus == true) {
        s = price < 0 ? "-" : ( showPlus ? "+" : "");
    } else if (showPlus == false) {
        s = '';
    }

    i = parseInt(price = Math.abs(+price || 0).toFixed(precision)) + "";
    pad = (i.length < integerRequired) ? (integerRequired - i.length) : 0;
    while (pad) { i = '0' + i; pad--; }

    j = (j = i.length) > groupLength ? j % groupLength : 0;
    re = new RegExp("(\\d{" + groupLength + "})(?=\\d)", "g");

    /**
     * replace(/-/, 0) is only for fixing Safari bug which appears
     * when Math.abs(0).toFixed() executed on "0" number.
     * Result is "0.-0" :(
     */
    r = (j ? i.substr(0, j) + groupSymbol : "") + i.substr(j).replace(re, "$1" + groupSymbol) + (precision ? decimalSymbol + Math.abs(price - i).toFixed(precision).replace(/-/, 0).slice(2) : "")

    if (format.pattern.indexOf('{sign}') == -1) {
        pattern = s + format.pattern;
    } else {
        pattern = format.pattern.replace('{sign}', s);
    }

    return pattern.replace('%s', r).replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};

function expandDetails(el, childClass) {
    if (Element.hasClassName(el,'show-details')) {
        $$(childClass).each(function(item){item.hide()});
        Element.removeClassName(el,'show-details');
    }
    else {
        $$(childClass).each(function(item){item.show()});
        Element.addClassName(el,'show-details');
    }
}

// Version 1.0
var isIE = navigator.appVersion.match(/MSIE/) == "MSIE";

if (!window.Varien)
    var Varien = new Object();

Varien.showLoading = function(){
    Element.show('loading-process');
}
Varien.hideLoading = function(){
    Element.hide('loading-process');
}
Varien.GlobalHandlers = {
    onCreate: function() {
        Varien.showLoading();
    },

    onComplete: function() {
        if(Ajax.activeRequestCount == 0) {
            Varien.hideLoading();
        }
    }
};

Ajax.Responders.register(Varien.GlobalHandlers);

/**
 * Quick Search form client model
 */
Varien.searchForm = Class.create();
Varien.searchForm.prototype = {
    initialize : function(form, field, emptyText){
        this.form   = $(form);
        this.field  = $(field);
        this.emptyText = emptyText;

        Event.observe(this.form,  'submit', this.submit.bind(this));
        Event.observe(this.field, 'focus', this.focus.bind(this));
        Event.observe(this.field, 'blur', this.blur.bind(this));
        this.blur();
    },

    submit : function(event){
        if (this.field.value == this.emptyText || this.field.value == ''){
            Event.stop(event);
            return false;
        }
        return true;
    },

    focus : function(event){
        if(this.field.value==this.emptyText){
            this.field.value='';
        }

    },

    blur : function(event){
        if(this.field.value==''){
            this.field.value=this.emptyText;
        }
    },

    initAutocomplete : function(url, destinationElement){
        new Ajax.Autocompleter(
            this.field,
            destinationElement,
            url,
            {
                paramName: this.field.name,
                method: 'get',
                minChars: 2,
                updateElement: this._selectAutocompleteItem.bind(this),
                onShow : function(element, update) {
                    if(!update.style.position || update.style.position=='absolute') {
                        update.style.position = 'absolute';
                        Position.clone(element, update, {
                            setHeight: false,
                            offsetTop: element.offsetHeight
                        });
                    }
                    Effect.Appear(update,{duration:0});
                }

            }
        );
    },

    _selectAutocompleteItem : function(element){
        if(element.title){
            this.field.value = element.title;
        }
        this.form.submit();
    }
}

Varien.Tabs = Class.create();
Varien.Tabs.prototype = {
  initialize: function(selector) {
    var self=this;
    $$(selector+' a').each(this.initTab.bind(this));
  },

  initTab: function(el) {
      el.href = 'javascript:void(0)';
      if ($(el.parentNode).hasClassName('active')) {
        this.showContent(el);
      }
      el.observe('click', this.showContent.bind(this, el));
  },

  showContent: function(a) {
    var li = $(a.parentNode), ul = $(li.parentNode);
    ul.getElementsBySelector('li', 'ol').each(function(el){
      var contents = $(el.id+'_contents');
      if (el==li) {
        el.addClassName('active');
        contents.show();
      } else {
        el.removeClassName('active');
        contents.hide();
      }
    });
  }
}

Varien.DOB = Class.create();
Varien.DOB.prototype = {
    initialize: function(selector, required, format) {
        var el        = $$(selector)[0];
        this.day      = Element.select($(el), '.dob-day input')[0];
        this.month    = Element.select($(el), '.dob-month input')[0];
        this.year     = Element.select($(el), '.dob-year input')[0];
        this.dob      = Element.select($(el), '.dob-full input')[0];
        this.advice   = Element.select($(el), '.validation-advice')[0];
        this.required = required;
        this.format   = format;

        this.day.validate = this.validate.bind(this);
        this.month.validate = this.validate.bind(this);
        this.year.validate = this.validate.bind(this);
        
        this.year.setAttribute('autocomplete','off');

        this.advice.hide();
    },

    validate: function() {
        var error = false;

        if (this.day.value=='' && this.month.value=='' && this.year.value=='') {
            if (this.required) {
                error = 'This date is a required value.';
            } else {
                this.dob.value = '';
            }
        } else if (this.day.value=='' || this.month.value=='' || this.year.value=='') {
            error = 'Please enter a valid full date.';
        } else {
            var date = new Date();
            if (this.day.value<1 || this.day.value>31) {
                error = 'Please enter a valid day (1-31).';
            } else if (this.month.value<1 || this.month.value>12) {
                error = 'Please enter a valid month (1-12).';
            } else if (this.year.value<1900 || this.year.value>date.getFullYear()) {
                error = 'Please enter a valid year (1900-'+date.getFullYear()+').';
            } else {
                this.dob.value = this.format.replace(/(%m|%b)/i, this.month.value).replace(/(%d|%e)/i, this.day.value).replace(/%y/i, this.year.value);
                var testDOB = this.month.value + '/' + this.day.value + '/'+ this.year.value;
                var test = new Date(testDOB);
                if (isNaN(test)) {
                    error = 'Please enter a valid date.';
                }
            }
        }

        if (error !== false) {
            try {
                this.advice.innerHTML = Translator.translate(error);
            }
            catch (e) {
                this.advice.innerHTML = error;
            }
            this.advice.show();
            return false;
        }

        this.advice.hide();
        return true;
    }
}

Validation.addAllThese([
    ['validate-custom', ' ', function(v,elm) {
        return elm.validate();
    }]
]);

function truncateOptions() {
    $$('.truncated').each(function(element){
        Event.observe(element, 'mouseover', function(){
            if (element.down('div.truncated_full_value')) {
                element.down('div.truncated_full_value').addClassName('show')
            }
        });
        Event.observe(element, 'mouseout', function(){
            if (element.down('div.truncated_full_value')) {
                element.down('div.truncated_full_value').removeClassName('show')
            }
        });

    });
}
Event.observe(window, 'load', function(){
   truncateOptions();
});

Element.addMethods({
    getInnerText: function(element)
    {
        element = $(element);
        if(element.innerText && !Prototype.Browser.Opera) {
            return element.innerText
        }
        return element.innerHTML.stripScripts().unescapeHTML().replace(/[\n\r\s]+/g, ' ').strip();
    }
});

if (!("console" in window) || !("firebug" in console))
{
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {}
}

/**
 * Executes event handler on the element. Works with event handlers attached by Prototype,
 * in a browser-agnostic fashion.
 * @param element The element object
 * @param event Event name, like 'change'
 *
 * @example fireEvent($('my-input', 'click'));
 */
function fireEvent(element, event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
VarienForm = Class.create();
VarienForm.prototype = {
    initialize: function(formId, firstFieldFocus){
        this.form       = $(formId);
        if (!this.form) {
            return;
        }
        this.cache      = $A();
        this.currLoader = false;
        this.currDataIndex = false;
        this.validator  = new Validation(this.form);
        this.elementFocus   = this.elementOnFocus.bindAsEventListener(this);
        this.elementBlur    = this.elementOnBlur.bindAsEventListener(this);
        this.childLoader    = this.onChangeChildLoad.bindAsEventListener(this);
        this.highlightClass = 'highlight';
        this.extraChildParams = '';
        this.firstFieldFocus= firstFieldFocus || false;
        this.bindElements();
        if(this.firstFieldFocus){
            try{
                Form.Element.focus(Form.findFirstElement(this.form))
            }
            catch(e){}
        }
    },

    submit : function(url){
        if(this.validator && this.validator.validate()){
             this.form.submit();
        }
        return false;
    },

    bindElements:function (){
        var elements = Form.getElements(this.form);
        for (var row in elements) {
            if (elements[row].id) {
                Event.observe(elements[row],'focus',this.elementFocus);
                Event.observe(elements[row],'blur',this.elementBlur);
            }
        }
    },

    elementOnFocus: function(event){
        var element = Event.findElement(event, 'fieldset');
        if(element){
            Element.addClassName(element, this.highlightClass);
        }
    },

    elementOnBlur: function(event){
        var element = Event.findElement(event, 'fieldset');
        if(element){
            Element.removeClassName(element, this.highlightClass);
        }
    },

    setElementsRelation: function(parent, child, dataUrl, first){
        if (parent=$(parent)) {
            // TODO: array of relation and caching
            if (!this.cache[parent.id]){
                this.cache[parent.id] = $A();
                this.cache[parent.id]['child']     = child;
                this.cache[parent.id]['dataUrl']   = dataUrl;
                this.cache[parent.id]['data']      = $A();
                this.cache[parent.id]['first']      = first || false;
            }
            Event.observe(parent,'change',this.childLoader);
        }
    },

    onChangeChildLoad: function(event){
        element = Event.element(event);
        this.elementChildLoad(element);
    },

    elementChildLoad: function(element, callback){
        this.callback = callback || false;
        if (element.value) {
            this.currLoader = element.id;
            this.currDataIndex = element.value;
            if (this.cache[element.id]['data'][element.value]) {
                this.setDataToChild(this.cache[element.id]['data'][element.value]);
            }
            else{
                new Ajax.Request(this.cache[this.currLoader]['dataUrl'],{
                        method: 'post',
                        parameters: {"parent":element.value},
                        onComplete: this.reloadChildren.bind(this)
                });
            }
        }
    },

    reloadChildren: function(transport){
        var data = eval('(' + transport.responseText + ')');
        this.cache[this.currLoader]['data'][this.currDataIndex] = data;
        this.setDataToChild(data);
    },

    setDataToChild: function(data){
        if (data.length) {
            var child = $(this.cache[this.currLoader]['child']);
            if (child){
                var html = '<select name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';
                if(this.cache[this.currLoader]['first']){
                    html+= '<option value="">'+this.cache[this.currLoader]['first']+'</option>';
                }
                for (var i in data){
                    if(data[i].value) {
                        html+= '<option value="'+data[i].value+'"';
                        if(child.value && (child.value == data[i].value || child.value == data[i].label)){
                            html+= ' selected';
                        }
                        html+='>'+data[i].label+'</option>';
                    }
                }
                html+= '</select>';
                Element.insert(child, {before: html});
                Element.remove(child);
            }
        }
        else{
            var child = $(this.cache[this.currLoader]['child']);
            if (child){
                var html = '<input type="text" name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';
                Element.insert(child, {before: html});
                Element.remove(child);
            }
        }

        this.bindElements();
        if (this.callback) {
            this.callback();
        }
    }
}

RegionUpdater = Class.create();
RegionUpdater.prototype = {
    initialize: function (countryEl, regionTextEl, regionSelectEl, regions, disableAction, zipEl)
    {
        this.countryEl = $(countryEl);
        this.regionTextEl = $(regionTextEl);
        this.regionSelectEl = $(regionSelectEl);
        this.zipEl = $(zipEl);
        this.regions = regions;

        this.disableAction = (typeof disableAction=='undefined') ? 'hide' : disableAction;
        this.zipOptions = (typeof zipOptions=='undefined') ? false : zipOptions;

        if (this.regionSelectEl.options.length<=1) {
            this.update();
        }

        Event.observe(this.countryEl, 'change', this.update.bind(this));
    },

    update: function()
    {
        if (this.regions[this.countryEl.value]) {
            var i, option, region, def;

            if (this.regionTextEl) {
                def = this.regionTextEl.value.toLowerCase();
                this.regionTextEl.value = '';
            }
            if (!def) {
                def = this.regionSelectEl.getAttribute('defaultValue');
            }

            this.regionSelectEl.options.length = 1;
            for (regionId in this.regions[this.countryEl.value]) {
                region = this.regions[this.countryEl.value][regionId];

                option = document.createElement('OPTION');
                option.value = regionId;
                option.text = region.name;

                if (this.regionSelectEl.options.add) {
                    this.regionSelectEl.options.add(option);
                } else {
                    this.regionSelectEl.appendChild(option);
                }

                if (regionId==def || region.name.toLowerCase()==def || region.code.toLowerCase()==def) {
                    this.regionSelectEl.value = regionId;
                }
            }

            if (this.disableAction=='hide') {
                if (this.regionTextEl) {
                    this.regionTextEl.style.display = 'none';
                }

                this.regionSelectEl.style.display = '';
            } else if (this.disableAction=='disable') {
                if (this.regionTextEl) {
                    this.regionTextEl.disabled = true;
                }
                this.regionSelectEl.disabled = false;
            }
            this.setMarkDisplay(this.regionSelectEl, true);
        } else {
            if (this.disableAction=='hide') {
                if (this.regionTextEl) {
                    this.regionTextEl.style.display = '';
                }
                this.regionSelectEl.style.display = 'none';
                Validation.reset(this.regionSelectEl);
            } else if (this.disableAction=='disable') {
                if (this.regionTextEl) {
                    this.regionTextEl.disabled = false;
                }
                this.regionSelectEl.disabled = true;
            } else if (this.disableAction=='nullify') {
                this.regionSelectEl.options.length = 1;
                this.regionSelectEl.value = '';
                this.regionSelectEl.selectedIndex = 0;
                this.lastCountryId = '';
            }
            this.setMarkDisplay(this.regionSelectEl, false);
        }

        // Make Zip and its label required/optional
        var zipUpdater = new ZipUpdater(this.countryEl.value, this.zipEl);
        zipUpdater.update();
    },

    setMarkDisplay: function(elem, display){
        elem = $(elem);
        var labelElement = elem.up(0).down('label > span.required') ||
                           elem.up(1).down('label > span.required') ||
                           elem.up(0).down('label.required > em') ||
                           elem.up(1).down('label.required > em');
        if(labelElement) {
            inputElement = labelElement.up().next('input');
            if (display) {
                labelElement.show();
                if (inputElement) {
                    inputElement.addClassName('required-entry');
                }
            } else {
                labelElement.hide();
                if (inputElement) {
                    inputElement.removeClassName('required-entry');
                }
            }
        }
    }
}

ZipUpdater = Class.create();
ZipUpdater.prototype = {
    initialize: function(country, zipElement)
    {
        this.country = country;
        this.zipElement = $(zipElement);
    },

    update: function()
    {
        // Country ISO 2-letter codes must be pre-defined
        if (typeof optionalZipCountries == 'undefined') {
            return false;
        }

        // Ajax-request and normal content load compatibility
        if (this.zipElement != undefined) {
            this._setPostcodeOptional();
        } else {
            Event.observe(window, "load", this._setPostcodeOptional.bind(this));
        }
    },

    _setPostcodeOptional: function()
    {
        this.zipElement = $(this.zipElement);
        if (this.zipElement == undefined) {
            return false;
        }

        // find label
        var label = $$('label[for="' + this.zipElement.id + '"]')[0];
        if (label != undefined) {
            var wildCard = label.down('em') || label.down('span.required');
        }

        // Make Zip and its label required/optional
        if (optionalZipCountries.indexOf(this.country) != -1) {
            while (this.zipElement.hasClassName('required-entry')) {
                this.zipElement.removeClassName('required-entry');
            }
            if (wildCard != undefined) {
                wildCard.hide();
            }
        } else {
            this.zipElement.addClassName('required-entry');
            if (wildCard != undefined) {
                wildCard.show();
            }
        }
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

/**
 * @classDescription simple Navigation with replacing old handlers
 * @param {String} id id of ul element with navigation lists
 * @param {Object} settings object with settings
 */
var mainNav = function() {

    var main = {
        obj_nav :   $(arguments[0]) || $("nav"),

        settings :  {
            show_delay      :   0,
            hide_delay      :   0,
            _ie6            :   /MSIE 6.+Win/.test(navigator.userAgent),
            _ie7            :   /MSIE 7.+Win/.test(navigator.userAgent)
        },

        init :  function(obj, level) {
            obj.lists = obj.childElements();
            obj.lists.each(function(el,ind){
                main.handlNavElement(el);
                if((main.settings._ie6 || main.settings._ie7) && level){
                    main.ieFixZIndex(el, ind, obj.lists.size());
                }
            });
            if(main.settings._ie6 && !level){
                document.execCommand("BackgroundImageCache", false, true);
            }
        },

        handlNavElement :   function(list) {
            if(list !== undefined){
                list.onmouseover = function(){
                    main.fireNavEvent(this,true);
                };
                list.onmouseout = function(){
                    main.fireNavEvent(this,false);
                };
                if(list.down("ul")){
                    main.init(list.down("ul"), true);
                }
            }
        },

        ieFixZIndex : function(el, i, l) {
            if(el.tagName.toString().toLowerCase().indexOf("iframe") == -1){
                el.style.zIndex = l - i;
            } else {
                el.onmouseover = "null";
                el.onmouseout = "null";
            }
        },

        fireNavEvent :  function(elm,ev) {
            if(ev){
                elm.addClassName("over");
                elm.down("a").addClassName("over");
                if (elm.childElements()[1]) {
                    main.show(elm.childElements()[1]);
                }
            } else {
                elm.removeClassName("over");
                elm.down("a").removeClassName("over");
                if (elm.childElements()[1]) {
                    main.hide(elm.childElements()[1]);
                }
            }
        },

        show : function (sub_elm) {
            if (sub_elm.hide_time_id) {
                clearTimeout(sub_elm.hide_time_id);
            }
            sub_elm.show_time_id = setTimeout(function() {
                if (!sub_elm.hasClassName("shown-sub")) {
                    sub_elm.addClassName("shown-sub");
                }
            }, main.settings.show_delay);
        },

        hide : function (sub_elm) {
            if (sub_elm.show_time_id) {
                clearTimeout(sub_elm.show_time_id);
            }
            sub_elm.hide_time_id = setTimeout(function(){
                if (sub_elm.hasClassName("shown-sub")) {
                    sub_elm.removeClassName("shown-sub");
                }
            }, main.settings.hide_delay);
        }

    };
    if (arguments[1]) {
        main.settings = Object.extend(main.settings, arguments[1]);
    }
    if (main.obj_nav) {
        main.init(main.obj_nav, false);
    }
};

document.observe("dom:loaded", function() {
    //run navigation without delays and with default id="#nav"
    //mainNav();

    //run navigation with delays
    mainNav("nav", {"show_delay":"100","hide_delay":"100"});
});

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

var Translate = Class.create();
Translate.prototype = {
    initialize: function(data){
        this.data = $H(data);
    },

    translate : function(){
        var args = arguments;
        var text = arguments[0];

        if(this.data.get(text)){
            return this.data.get(text);
        }
        return text;
    },
    add : function() {
        if (arguments.length > 1) {
            this.data.set(arguments[0], arguments[1]);
        } else if (typeof arguments[0] =='object') {
            $H(arguments[0]).each(function (pair){
                this.data.set(pair.key, pair.value);
            }.bind(this));
        }
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
// old school cookie functions grabbed off the web

if (!window.Mage) var Mage = {};

Mage.Cookies = {};
Mage.Cookies.expires  = null;
Mage.Cookies.path     = '/';
Mage.Cookies.domain   = null;
Mage.Cookies.secure   = false;
Mage.Cookies.set = function(name, value){
     var argv = arguments;
     var argc = arguments.length;
     var expires = (argc > 2) ? argv[2] : Mage.Cookies.expires;
     var path = (argc > 3) ? argv[3] : Mage.Cookies.path;
     var domain = (argc > 4) ? argv[4] : Mage.Cookies.domain;
     var secure = (argc > 5) ? argv[5] : Mage.Cookies.secure;
     document.cookie = name + "=" + escape (value) +
       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
       ((path == null) ? "" : ("; path=" + path)) +
       ((domain == null) ? "" : ("; domain=" + domain)) +
       ((secure == true) ? "; secure" : "");
};

Mage.Cookies.get = function(name){
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var j = 0;
    while(i < clen){
        j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return Mage.Cookies.getCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if(i == 0)
            break;
    }
    return null;
};

Mage.Cookies.clear = function(name) {
  if(Mage.Cookies.get(name)){
    document.cookie = name + "=" +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
};

Mage.Cookies.getCookieVal = function(offset){
   var endstr = document.cookie.indexOf(";", offset);
   if(endstr == -1){
       endstr = document.cookie.length;
   }
   return unescape(document.cookie.substring(offset, endstr));
};

/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

jQuery.noConflict();




function layeredNavRemoveIcon(){

    var container = jQuery('#narrow-by-list')
	.find('ul.nav')
	.find('.filter_selected');

    var remove_image = '<div class="lista-x"><img src="/skin/frontend/default/shoezoo/images/ico-close.png" style="cursor:pointer" /></div>';
    
    container.css('position','relative')
	.append(remove_image)
    
    container.each(function(pos,item){
	var href = jQuery(this).find('a').attr('href');
	jQuery(this).find('img').attr('href',href)
	    .click(function(){
		window.location.href = jQuery(this).attr('href');
	    });
    });
    
    container.find('img')
	.css('float','right')
	.css('margin-top','0px');

    container = jQuery('#narrow-by-list')
	.find('table.size-table')
	.find('.filter_selected');
    
    if ( container.size()>0){
	var td_width = parseInt(container.css('width'));
	container = container
	    .find('div')
	    .css('position','relative')
	    .append(remove_image);

	container.each(function(pos,item){
	    var href = jQuery(this).find('a').attr('href');
	jQuery(this).find('img').attr('href',href)
	    .click(function(){
		window.location.href = jQuery(this).attr('href');
	    });


	});
	
	container.find('img')
	    .css('position','absolute')
    	    .css('top','2px')
	    .css('left',td_width-25);
	
    }

    
    
    
}



window.functions_register = new Array();

jQuery(document).ready(function(){
	if (jQuery('button.btn-international').size()>0){
	    
	    jQuery('button.btn-international').click(function(){
		    jQuery('#icForm').submit();
		});
	}
});

function registerHoverGallery(){
    
    var media = jQuery('.more-views  li');
    if (media.size()){
	media.hover(hoverMediaGallery);
    }
    
}

function hoverMediaGallery(){
    var src=jQuery(this).find('input[type=hidden].product-image-gallery').attr('value');
    jQuery('.product-img-box').find('.product-image > img').attr('src',src);
}



function oneClickCheckout(url,event){
 //    |-[-] _POST[4]                         
 // |  |-    product                          1164
 // |  |-    related_product                  
 // |  |-[-] super_attribute[1]               
 // |  |  `-    182                              354
 // |  `-    qty                              3
 // |-[-] _REQUEST[4]                      
 // |  |-    product                          1164
 // |  |-    related_product                  
 // |  |-[-] super_attribute[1]               
 // |  |  `-    182                              354
 // |  `-    qty                              3
    // var select = jQuery(event.currentTarget).parents('li.item').find('select[name^=shoe_size]');
    //var select=event.parents('li.item').find('select[name^=shoe_size]');
    var select = Event.element(event).up('li').select('select[name^=shoe_size]')[0];
    var productid = select.productid || select.readAttribute('productid');
    var myform = new Element('form', {action: '/checkout/cart/add', method: 'post', id: 'add_to_cart'});
    /*myform.action = '/checkout/cart/add';
    myform.method = 'post';
    myform.id = 'add_to_cart';*/
        // alert( 'product id: '+productid);
    if ( /^[0-9]+$/.test(productid) ){
	var attrid = select.attrid || select.readAttribute('attrid');
        var selectedOption = $A(select.options).find(function(n){if(n.selected)return true;});
	var option_value = selectedOption.shoe_size_display || selectedOption.readAttribute('shoe_size_display');
	var sp_id = selectedOption.productid || selectedOption.readAttribute('productid');
        /*var inputs = '<input name="product" value="'+productid+'" />';
	inputs += '<input name="qty" value="1" />';
	inputs += '<input name="super_attribute['+attrid+']" value="'+option_value+'" />';*/
        var paramProd = new Element('input', {type: 'hidden', name: 'product', value: productid});
        var paramQty = new Element('input', {type: 'hidden', name: 'qty', value: 1});
        var paramSuper = new Element('input', {type: 'hidden', name: 'super_attribute['+attrid+']', value: option_value});
        myform.appendChild(paramProd);
        myform.appendChild(paramQty);
        myform.appendChild(paramSuper);
        document.body.appendChild(myform);
        myform.submit();
	// inputs += '<input type="hidden" name="related_product" id="related-products-field" value="'+sp_id+'" />';
	/*jQuery(myform).html(inputs);
	jQuery('body').append(myform);
	jQuery('#add_to_cart').submit();*/

    }else{
	window.location.href = url;
    }
}

/*
<form 
action="http://shoezoo.summa.net/index.php/checkout/cart/add/uenc/aHR0cDovL3Nob2V6b28uc3VtbWEubmV0L2luZGV4LnBocC9rLXN3aXNzLWtpZHMtay1zd2lzcy10aGljay1jbGFzc2ljLWtpZHMuaHRtbA,,/product/1164/" 
method="post" 
id="product_addtocart_form">
    
    <input type="hidden" name="product" value="1164" />
    
    <input type="hidden" name="related_product" id="related-products-field" value="" />
    <select name="super_attribute[182]" id="attribute182" class="required-entry super-attribute-select">
    </select>
    <script type="text/javascript">
    var spConfig = new Product.Config({"attributes":{"182":{"id":"182","code":"shoe_size_display","label":"Shoe Size","options":[{"id":"354","label":"3.5 Kids US","price":"0","products":["6819"]},{"id":"357","label":"4 Kids US","price":"0","products":["6820"]},{"id":"360","label":"4.5 Kids US","price":"0","products":["6817"]},{"id":"364","label":"5 Kids US","price":"0","products":["6816"]},{"id":"368","label":"5.5 Kids US","price":"0","products":["6818"]},{"id":"372","label":"6 Kids US","price":"0","products":["6821"]}]}},"template":"$#{price}","basePrice":"29.9","oldPrice":"29.9","productId":"1164","chooseText":"Choose an Option...","taxCck to decrease 
*/



function preselectSize(){

    // for catalog list 
    var match_regexp = /.*(shoe_size_[a-z]+)=(\d+)/;
    var matches;
    if ((matches = match_regexp.exec(window.location.href)) !== null) {
//        var size_type = window.location.href.replace(match_regexp,'$1');
//        var size_value = window.location.href.replace(match_regexp,'$2');
        var size_type = matches[1];
        var size_value = matches[2];
    
        var selects = jQuery('select[name='+size_type+']');
        if (selects.size() )
            selects.attr('value',size_value);
        }


    
    if (typeof window.spConfig == 'undefined') 
	return ;
    
    var sps = window.spConfig.config.simpleProducts;
    var cAttrs = window.spConfig.config.customAttributes;
    var spo;
    var select = jQuery('#attribute182');
    var href = window.location.href;
    var attr_query;
    for (var i=0; i<sps.length; i++){
	spo = sps[i];
	
	for(var j=0; j<cAttrs.length; j++){
	    
	    if (typeof spo.attrs[j] != 'undefined'){
		attr_query = cAttrs[j]+'='+spo.attrs[j];
		if (href.indexOf(attr_query)>0){
		    select.val(spo.shoe_size_display);
		    return;
		}
	    }
	    
	}
	
    }
}

function productListSetLocation(url,event){
    var select_value = '';
    //var li_container = jQuery(event.currentTarget).parents('li.item');
    var li_container = Event.element(event).up('li');
    var select_container = Event.element(event).up('li').select('select[name^=shoe_size]')[0];
    /*if( li_container.size() ){
    	select_container = li_container.find('select');
    	if ( select_container.size() )
    	    select_value = select_container.attr('value');
    }*/
    select_value = select_container.value;
    if ( /^[0-9]+(\.[0-9]{1})?/.test(select_value) ){
    	url = url.replace(/(.*)\?options=.+&(.*)/,"$1?$2");
    	url += '?'+(select_container.name || select_container.readAttribute('name'))+'='+select_value;
    }
    
    setLocation(url);
}


function get_hash(){
    var h = new Object();
    h.keys = new Array();
    h.values = new Array();
    return h;
}

function find_index_by_code(code){
    var f = window.filters;
    var filter_index = -1;
    for (var i=0; i<f.values.length; i++){
	if (f.values[i].code == code ){
	     filter_index = i;
	    break;
	}
    }
    return filter_index;
}

function shop_your_size_select(){
    var cat_size_id = jQuery('[name=shop_size_radio]:checked').attr('value');    
    
    if (this.value == 'radio' && cat_size_id != this.value) return ;
    
    var f = window.filters;
    cat_size_index = find_index_by_code(cat_size_id);
    
    var default_sizes = {shoe_size_kids:"6",shoe_size_infants:"10",shoe_size_men:"11",shoe_size_women:"8"};
    
    jQuery('#shop_your_size_select').empty();
    
    if (cat_size_index == -1 || f.values[cat_size_index].values.length == 0  ) return ;
    
    var sizes = f.values[cat_size_index].values[0];
    var selected = '';
    var ob ;
    for (var i=0; i< sizes.length; i++){
	ob = sizes[i];    
	if (ob.name == default_sizes[cat_size_id]){
	    selected = 'selected';
	}else{
	    selected = '';
	}
	jQuery('#shop_your_size_select').append('<option value="'+ob.url+'" '+selected+'>'+ob.name+'</option>');
    }
     
    
}

function shop_your_size_go(){      
    var url = jQuery('#shop_your_size_select').find('option:selected').attr('value');
    if ( url.length)
	window.location = url;
	
}

function shop_your_size_init(){
    
    jQuery('#shop_your_size_go').click(shop_your_size_go);
    jQuery('[name=shop_size_radio]').click(shop_your_size_select);
    shop_your_size_select();
}

function parse_filters(){

    if ( typeof window.filters == 'undefined')	window.filters = get_hash();
    
    if ( typeof window.suckerfish_divs == 'undefined' ) return ;
    
    for(var i=0; i< window.suckerfish_divs.categories.length;i++){
	
    	var cat_id = window.suckerfish_divs.categories[i];
    	var cat_content = cat_div = window.suckerfish_divs.categories_divs[i];
    	var div_tag = document.createElement('div');
	
    	var cat_name = jQuery(div_tag).html(cat_content).find('.category_name').attr('name');
    	var f = jQuery(div_tag).html(cat_content).find('.filter_name');
    	//if ( f.length > 0 && jQuery(div_tag).html(cat_content).find('.filter_name:not([code$=size])').size() > 0)
	    
    	for (var j=0 ; j < f.length ; j++ ){
	    
    	    var filter_name = jQuery(f[j]).attr('name');
    	    var filter_code = jQuery(f[j]).attr('code');
	    
    	    if ( window.filters.keys.indexOf(filter_name) < 0 ){
    		window.filters.keys.push(filter_name);		
    		window.filters.values.push( get_hash() );
    	    }
    	    var f_index = window.filters.keys.indexOf(filter_name);
    	    window.filters.values[f_index].code = filter_code;
	    
    	    if ( window.filters.values[f_index].keys.indexOf(cat_name) < 0 ){
    		window.filters.values[f_index].keys.push(cat_name);
    		window.filters.values[f_index].values.push(new Array());
    	    }

    	    var cat_index = window.filters.values[f_index].keys.indexOf(cat_name);
    	    var f_vals = jQuery(div_tag).html(cat_content).find('[filter_name='+filter_name+']');

    	    for (var t = 0; t < f_vals.length ; t++){
    		var o = new Object();
    		o.url = jQuery(f_vals[t]).attr('url');
    		o.name = jQuery(f_vals[t]).attr('name'); 
    		window.filters.values[f_index].values[cat_index].push(o);
    	    }
    	}
    }
}

function fill_footer_categories(){
    var categories_index = find_index_by_code('shoe_type');
    var f = window.filters;
    
    if (categories_index < 0 ) return; 
    
    var categories_cats = f.values[categories_index]; 
    var cat_index;
    var cat;
    
    //adds men categories (col3)
    cat_index = categories_cats.keys.indexOf('Men'); 
    if( cat_index>= 0){
	cat = categories_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col3');
	ul.append('<li class="tit"><strong>Men\'s Categories</strong></5Dli>');
	
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }
    //adds woman categories (col4)
    cat_index = categories_cats.keys.indexOf('Women'); 
    if( cat_index>= 0){
	cat = categories_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col4');
	ul.append('<li class="tit"><strong>Women\'s Categories</strong></li>');
	
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }
    //adds kids categories (col4)
    cat_index = categories_cats.keys.indexOf('Kids'); 
    if( cat_index>= 0){
	cat = categories_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col4');
	ul.append('<li class="tit"><strong>Kids Categories</strong></li>');
	
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }

}
function fill_footer_brands(){
    
    var brand_index = find_index_by_code('manufacturer');
    var f = window.filters;
    
    if (brand_index < 0 ) return; 
    
    var brand_cats = f.values[brand_index]; 
    var cat_index;
    var cat;
    
    //adds men brands (col1)
    cat_index = brand_cats.keys.indexOf('Men'); 
    if( cat_index>= 0){
	cat = brand_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col1');
	ul.append('<li class="tit"><strong>Men\'s Brands</strong></li>');
	
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }
    //adds women brands (col2)
    cat_index = brand_cats.keys.indexOf('Women'); 
    if( cat_index>= 0){
	cat = brand_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col2');			
	ul.append('<li class="tit"><strong>Women\'s Brands</strong></li>');
			   
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }
    //adds kids brands (col2)
    cat_index = brand_cats.keys.indexOf('Kids'); 
    if( cat_index>= 0){
	cat = brand_cats.values[cat_index];
	
	var ul = jQuery('<ul class="f13pt">').appendTo('#footer-content-col2');			
	ul.append('<li class="tit"><strong>Kids Brands</strong></li>');
			   
	for (var i=0; i< cat.length; i++){
	    var o = cat[i];	    
	    ul.append('<li><a href="'+o.url+'">'+o.name+'</a></li>');
	}
    }
}

function adjustAbsolutePositions(){
    var left = jQuery('.header-container').position().left;
    var top = jQuery('.header-container').position().top;
    
    jQuery('.header-logo').css('display','inline')
	.css('position','absolute')
	.css('left',left-50)
	.css('top',top)
	.css('z-index','-1');

    
    if (jQuery('#shop-size').size()){
	left = jQuery('.col-right').position().left;
	top = jQuery('.col-right').position().top;
    
	//hago el lugar para el blocke shop_your_size
	jQuery('.col-right').css('padding-top','227px');
	
	jQuery('#shop-size').css('display','inline')
	    .css('position','absolute')
	    .css('left',left-75)
	    .css('top',top)
	    .css('z-index','100');
    }
    
    if (jQuery('#suckerfish_floating').css('display') != 'none'){
	
	top = jQuery('.nav-container').position().top -4 ; // '104px'
	left = jQuery('.nav-container').position().left -5; //'386px';//jQuery('#nav').position().left-7;
	jQuery('#suckerfish_floating')
	    //.css('left',left)
	    //.css('top',top)
	    .css('z-index','200');

    }
    // top = jQuery('#footer').position().top;
    // jQuery('body').css('background-position','0px '+top+'px');
}

window.functions_register.push('parse_filters');
window.functions_register.push('shop_your_size_init');
//window.functions_register.push('fill_footer_brands');
//window.functions_register.push('fill_footer_categories');
window.functions_register.push('registerHoverGallery');
//window.functions_register.push('layeredNavRemoveIcon');

jQuery(document).ready(function(){
	
//	adjustAbsolutePositions();
	
	preselectSize();	
	
	jQuery(window).resize(adjustAbsolutePositions);
	
//	jQuery('.header-container').click(function(){
//		var f=jQuery('.header-logo').attr('onclick');
//		f();
//	});
    
//	jQuery.getJSON('/shoezoocatalog/category/suckerfish',{},function(data){
//		
//		window.suckerfish_divs = new Object();
//		window.suckerfish_divs.categories = data[0];
//		window.suckerfish_divs.categories_divs = data[1];
//		
//		// parse_filters();	
//		// shop_your_size_init();
//		// fill_footer_brands();
//		// fill_footer_categories();
//		// categoriesPage();
//		//brandsPage();
		for(var i=0; i< window.functions_register.length; i++){
		    var f = window.functions_register[i];
		    eval(f+'()');
		}
//		
//	    });
//    jQuery('[id^=suckerfish_floating_]').mouseleave(function(){
// 	jQuery(this).hide();		
//	    });
    
//    jQuery('#nav > li[class^=nav-]').each(function(pos,item){
//	
//	jQuery(item).mouseenter(function(){
//	    var cat = jQuery(this).attr('category');
//		if (cat){
//		    var d = jQuery('#suckerfish_floating_'+cat)
//		    var cat_index = window.suckerfish_divs.categories.indexOf(cat);
//		    var cat_div = window.suckerfish_divs.categories_divs[cat_index];
//		    var top = jQuery('.nav-container').position().top -4 ; // '104px'
//		    var left = jQuery('.nav-container').position().left -5; //'386px';//jQuery('#nav').position().left-7;   
//		    
//		    if (!d.html().length){
//			d.html(cat_div);
//		    }
//            jQuery('[class^=nav-'+cat+'-filler-]').unbind().mouseenter(function(){
//                jQuery('#suckerfish_floating_'+cat).hide();       
//            }); 		    		    			    
//		     
//            jQuery('#nav > li[class^=nav-]').each(function(pos,item){
//                var cat1 = jQuery(this).attr('category');
//                if (cat1){
//                    var d = jQuery('#suckerfish_floating_'+cat1)
//                    d.hide();
//                }
//            });
//
//            d.css('position','absolute')
//			//.css('left',left)
//			//.css('top',top)
//			.css('z-index','200')
//			.show();
//		    
//		}
//	    });
//		    
//		
//	    });	
//	
    });

/**
 * Magento Enterprise Edition
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Magento Enterprise Edition License
 * that is bundled with this package in the file LICENSE_EE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.magentocommerce.com/license/enterprise-edition
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    design
 * @package     enterprise_default
 * @copyright   Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license     http://www.magentocommerce.com/license/enterprise-edition
 */

// Add validation hints
Validation.defaultOptions.immediate = true;
Validation.defaultOptions.addClassNameToContainer = true;

Event.observe(document, 'dom:loaded', function() {
    var inputs = $$('ul.options-list input');
    for (var i = 0, l = inputs.length; i < l; i ++) {
        inputs[i].addClassName('change-container-classname');
    }
})

if (!window.Enterprise) {
    window.Enterprise = {};
}
Enterprise.templatesPattern =  /(^|.|\r|\n)(\{\{(.*?)\}\})/;

Enterprise.TopCart= {
    initialize: function (container) {
        this.container = $(container);
        this.element = this.container.up(0);
        this.elementHeader = this.container.previous(0);
        this.intervalDuration = 4000;
        this.interval = null;
        this.onElementMouseOut = this.handleMouseOut.bindAsEventListener(this);
        this.onElementMouseOver = this.handleMouseOver.bindAsEventListener(this);
        this.onElementMouseClick = this.handleMouseClick.bindAsEventListener(this);

        this.element.observe('mouseout', this.onElementMouseOut);
        this.element.observe('mouseover', this.onElementMouseOver);
        this.elementHeader.observe('click', this.onElementMouseClick);

    },

    handleMouseOut: function (evt) {
        if($(this.elementHeader).hasClassName('expanded')) {
            this.interval = setTimeout(this.hideCart.bind(this), this.intervalDuration);
        }
    },

    handleMouseOver: function (evt) {
        if (this.interval !== null) {
             clearTimeout(this.interval);
             this.interval = null;
        }
    },

    handleMouseClick: function (evt) {
        if (!$(this.elementHeader).hasClassName('expanded') && !$(this.container.id).hasClassName('process') )  {
            this.showCart();
        }
        else {
            this.hideCart();
        }
    },

    showCart: function (timePeriod) {
        this.container.parentNode.style.zIndex=992;
        new Effect.SlideDown(this.container.id, { duration: 0.5,
            beforeStart: function(effect) {$( effect.element.id ).addClassName('process');},
            afterFinish: function(effect) {$( effect.element.id ).removeClassName('process'); }
            });
        $(this.elementHeader).addClassName('expanded');
        if(timePeriod) {
            this.timePeriod = timePeriod*1000;
            this.interval = setTimeout(this.hideCart.bind(this), this.timePeriod);
        }
    },

    hideCart: function () {

        if (!$(this.container.id).hasClassName('process') && $(this.elementHeader).hasClassName('expanded')) {
            new Effect.SlideUp(this.container.id, { duration: 0.5,
                beforeStart: function(effect) {$( effect.element.id ).addClassName('process');},
                afterFinish: function(effect) {
                    $( effect.element.id ).removeClassName('process');
                    effect.element.parentNode.style.zIndex=1;
                    }
                });
        }
        if (this.interval !== null) {
            clearTimeout(this.interval);
            this.interval = null;
        }
        $(this.elementHeader).removeClassName('expanded');
    }
};


Enterprise.Bundle = {
     oldReloadPrice: false,
     initialize: function () {
        this.slider = $('bundleProduct');
     },
     swapReloadPrice: function () {
         Enterprise.Bundle.oldReloadPrice = Product.Bundle.prototype.reloadPrice;
         Product.Bundle.prototype.reloadPrice = Enterprise.Bundle.reloadPrice;
         Product.Bundle.prototype.selection = Enterprise.Bundle.selection;
     },
     reloadPrice: function () {
         var result = Enterprise.Bundle.oldReloadPrice.bind(this)();
         var priceContainer, duplicateContainer = null
         if (priceContainer = $('bundle-product-wrapper').down('.price-box .price-as-configured')) {
            if (duplicateContainer = $('bundle-product-wrapper').down('.duplicate-price-box .price-as-configured')) {
                duplicateContainer.down('.price').update(
                    priceContainer.down('.price').innerHTML
                );
            }
         }
         if (!this.summaryTemplate && $('bundle-summary-template')) {
             this.summaryTemplate = new Template($('bundle-summary-template').innerHTML, Enterprise.templatesPattern);
             this.optionTemplate = new Template($('bundle-summary-option-template').innerHTML, Enterprise.templatesPattern);
             this.optionMultiTemplate = new Template($('bundle-summary-option-multi-template').innerHTML, Enterprise.templatesPattern);
         }

         if (this.summaryTemplate && $('bundle-summary')) {
             var summaryHTML = '';
             for (var option in this.config.options) {
                if (typeof (this.config.selected[option]) !== 'undefined') {
                    var optionHTML = '';
                    for (var i = 0, l = this.config.selected[option].length; i < l; i ++) {
                        var selection = this.selection(option, this.config.selected[option][i]);
                        if (selection && this.config.options[option].isMulti) {
                            optionHTML += this.optionMultiTemplate.evaluate(selection);
                        } else if (selection) {
                            optionHTML += this.optionTemplate.evaluate(selection);
                        }
                    }

                    if (optionHTML.length > 0) {
                        summaryHTML += this.summaryTemplate.evaluate({label:this.config.options[option].title.escapeHTML(), options: optionHTML});
                    }
                }
             }

             $('bundle-summary').update(summaryHTML)
         }
         return result;
     },
     selection: function(optionId, selectionId) {
        if (selectionId == '' || selectionId == 'none') {
            return false;
        }
        var qty = null;
        if (this.config.options[optionId].selections[selectionId].customQty == 1 && !this.config['options'][optionId].isMulti) {
            if ($('bundle-option-' + optionId + '-qty-input')) {
                qty = $('bundle-option-' + optionId + '-qty-input').value;
            } else {
                qty = 1;
            }
        } else {
            qty = this.config.options[optionId].selections[selectionId].qty;
        }

        return {qty: qty, name: this.config.options[optionId].selections[selectionId].name.escapeHTML()};
     },
     start: function () {
        if (!$('bundle-product-wrapper').hasClassName('moving-now')) {
            new Effect.Move(this.slider, {
                x: -939, y: 0, mode: 'relative', duration: 1.5,
                beforeStart: function (effect) {
                    $('bundle-product-wrapper').setStyle({height: $('productView').getHeight() + 'px'});
                    $('options-container').show();
                    Enterprise.BundleSummary.initialize();
                    $('bundle-product-wrapper').addClassName('moving-now');
                },
                afterFinish: function (effect) {
                    $('bundle-product-wrapper').setStyle({height: 'auto'});
                    $('productView').hide();
                    $('bundle-product-wrapper').removeClassName('moving-now');
                }
            });
         }
     },
     end: function () {
        if (!$('bundle-product-wrapper').hasClassName('moving-now')) {
            new Effect.Move(this.slider, {
                    x: 939, y: 0, mode: 'relative', duration: 1.5,
                    beforeStart: function (effect) {
                        $('bundle-product-wrapper').setStyle({height: $('options-container').getHeight() + 'px'});
                        $('productView').show();
                        $('bundle-product-wrapper').addClassName('moving-now');
                    },
                    afterFinish: function (effect) {
                        $('bundle-product-wrapper').setStyle({height: 'auto'});
                        $('options-container').hide();
                        Enterprise.BundleSummary.exitSummary();
                        $('bundle-product-wrapper').removeClassName('moving-now');
                    }
                });
        }
     }
};

Enterprise.BundleSummary = {
    initialize: function () {
        this.summary = $('bundleSummary');
        this.summaryContainer = this.summary.up(0);
        this.doNotCheck = false;
        this.summaryStartY = this.summary.positionedOffset().top;
        this.summaryStartY = 61;
        this.summaryStartX = this.summary.positionedOffset().left;
        this.onDocScroll = this.handleDocScroll.bindAsEventListener(this);
        this.GetScroll = setInterval(this.onDocScroll, 50);
        this.onEffectEnds = this.effectEnds.bind(this);
    },

    handleDocScroll: function () {
        if (this.currentOffsetTop == document.viewport.getScrollOffsets().top
            && (this.checkOffset(null) == null)) {
            return;
        } else {
            if (this.currentOffsetTop == document.viewport.getScrollOffsets().top) {
                this.doNotCheck = true;
            }
            this.currentOffsetTop = document.viewport.getScrollOffsets().top;
        }

        if (this.currentEffect) {
            this.currentEffect.cancel();
            var topOffset = 0;
            if (this.summaryContainer.viewportOffset().top < -60) {
               topOffset =  -(this.summaryContainer.viewportOffset().top);
            } else {
               topOffset = this.summaryStartY;
            }
            
            topOffset = this.checkOffset(topOffset);
            if (topOffset === null) {
                this.currentEffect = false;
                return;
            }
            
            this.currentEffect.start({
                x: this.summaryStartX,
                y: topOffset,
                mode: 'absolute',
                duration: 0.3,
                afterFinish: this.onEffectEnds
            });
            
            
            
            return;
        }

        
        this.currentEffect = new Effect.Move(this.summary);
    },
    
    effectEnds: function () {
        if (this.doNotCheck == true) {
            this.doNotCheck = false;
        }
    },
    
    checkOffset: function (offset) {
        if (this.doNotCheck && offset === null) {
            return null;
        }
        var dimensions = this.summary.getDimensions();
        var parentDimensions = this.summary.up().getDimensions();
        if ((offset !== null ? offset : this.summary.offsetTop) + dimensions.height >= parentDimensions.height) {
            offset = parentDimensions.height - dimensions.height;
        } else if (offset === null &&
            this.currentOffsetTop > (this.summaryContainer.viewportOffset().top) &&
            (this.currentOffsetTop - this.summaryContainer.viewportOffset().top) > this.summary.offsetTop) {
            offset = this.currentOffsetTop - this.summaryContainer.viewportOffset().top;
        }
        
        
        return offset;
    },

    exitSummary: function () {
        clearInterval(this.GetScroll);
    }
};

Enterprise.Tabs = Class.create();
Object.extend(Enterprise.Tabs.prototype, {
    initialize: function (container) {
        this.container = $(container);
        this.container.addClassName('tab-list');
        this.tabs = this.container.select('dt.tab');
        this.activeTab = this.tabs.first();
        this.tabs.first().addClassName('first');
        this.tabs.last().addClassName('last');
        this.onTabClick = this.handleTabClick.bindAsEventListener(this);
        for (var i = 0, l = this.tabs.length; i < l; i ++) {
            this.tabs[i].observe('click', this.onTabClick);
        }
        this.select();
    },
    handleTabClick: function (evt) {
        this.activeTab = Event.findElement(evt, 'dt');
        this.select();
    },
    select: function () {
        for (var i = 0, l = this.tabs.length; i < l; i ++) {
            if (this.tabs[i] == this.activeTab) {
                this.tabs[i].addClassName('active');
                this.tabs[i].style.zIndex = this.tabs.length + 2;
                /*this.tabs[i].next('dd').show();*/
                new Effect.Appear (this.tabs[i].next('dd'), { duration:0.5 });
                this.tabs[i].parentNode.style.height=this.tabs[i].next('dd').getHeight() + 15 + 'px';
            } else {
                this.tabs[i].removeClassName('active');
                this.tabs[i].style.zIndex = this.tabs.length + 1 - i;
                this.tabs[i].next('dd').hide();
            }
        }
    }
});


Enterprise.Slider = Class.create();

Object.extend(Enterprise.Slider.prototype, {
    initialize: function (container, config) {
        this.container = $(container);
        this.config = {
            panelCss: 'slider-panel',
            sliderCss: 'slider',
            itemCss: 'slider-item',
            slideButtonCss: 'slide-button',
            slideButtonInactiveCss: 'inactive',
            forwardButtonCss: 'forward',
            backwardButtonCss: 'backward',
            pageSize: 6,
            scrollSize: 2,
            slideDuration: 1.0,
            slideDirection: 'horizontal',
            fadeEffect: true
        };

        Object.extend(this.config, config || {});

        this.items = this.container.select('.' + this.config.itemCss);
        this.isPlaying = false;
        this.isAbsolutized = false;
        this.offset = 0;
        this.onClick = this.handleClick.bindAsEventListener(this);
        this.sliderPanel = this.container.down('.' + this.config.panelCss);
        this.slider =  this.sliderPanel.down('.' + this.config.sliderCss);
        this.container.select('.' + this.config.slideButtonCss).each(
            this.initializeHandlers.bind(this)
        );
        this.updateButtons();
        
        Event.observe(window, 'load', this.initializeDimensions.bind(this));
    },
    initializeHandlers: function (element) {
        if (element.hasClassName(this.config.forwardButtonCss) ||
            element.hasClassName(this.config.backwardButtonCss)) {
            element.observe('click', this.onClick);
        }
    },
    handleClick: function (evt) {
        var element = Event.element(evt);
        if (!element.hasClassName(this.config.slideButtonCss)) {
            element = element.up('.' + this.config.slideButtonCss);
        }

        if (!element.hasClassName(this.config.slideButtonInactiveCss)) {
           element.hasClassName(this.config.forwardButtonCss) || this.backward();
           element.hasClassName(this.config.backwardButtonCss) || this.forward();
        }
        Event.stop(evt);
    },
    updateButtons: function () {
        var buttons = this.container.select('.' + this.config.slideButtonCss);
        for (var i = 0, l = buttons.length; i < l; i++) {
            if (buttons[i].hasClassName(this.config.backwardButtonCss)) {
                if (this.offset <= 0) {
                    buttons[i].addClassName(this.config.slideButtonInactiveCss);
                }
                else {
                    buttons[i].removeClassName(this.config.slideButtonInactiveCss);
                }
            } else if (buttons[i].hasClassName(this.config.forwardButtonCss)) {
                if (this.offset >= this.items.length - this.config.pageSize) {
                    buttons[i].addClassName(this.config.slideButtonInactiveCss);
                }
                else {
                    buttons[i].removeClassName(this.config.slideButtonInactiveCss);
                }
            }
        }
    },
    initializeDimensions: function () {
        if ((this.config.slideDirection == 'horizontal' && this.sliderPanel.style.width) ||
            (this.config.slideDirection != 'horizontal' && this.sliderPanel.style.height)) {
            return this;
        }
        var firstItem = this.items.first();
        var offset = 0;
        if (this.config.slideDirection == 'horizontal') {
            offset = (parseInt(firstItem.getStyle('margin-left')) + parseInt(firstItem.getStyle('margin-right'))) * (this.config.pageSize - 1);
            this.sliderPanel.setStyle({width: (firstItem.getDimensions().width * this.config.pageSize + offset) + 'px'});
        } else {
            offset = (parseInt(firstItem.getStyle('margin-bottom')) + parseInt(firstItem.getStyle('margin-top'))) * (this.config.pageSize - 1);
            this.sliderPanel.setStyle({height: (firstItem.getDimensions().height * this.config.pageSize + offset) + 'px'});
        }
        
        var dimensions = this.sliderPanel.getDimensions();
        
        var sliderParent = this.sliderPanel.up();
        /*
        dimensions.height += parseInt(sliderParent.getStyle('padding-top'));
        dimensions.height += parseInt(sliderParent.getStyle('padding-bottom'));
        dimensions.width += parseInt(sliderParent.getStyle('padding-left'));
        dimensions.width += parseInt(sliderParent.getStyle('padding-right'));
    
        if (sliderParent.down('.slide-button')) {
            var buttonDimensions = sliderParent.down('.slide-button').getDimensions();
            if (this.config.slideDirection == 'horizontal') {
                dimensions.width += 2 * buttonDimensions.width;
            } else {
                dimensions.height += 2 * buttonDimensions.height;
            }
        }
        */
        sliderParent.setStyle({
            width: dimensions.width + 'px',
            height: dimensions.height + 'px'
        });
        return this;
    },
    absolutize: function () {
        if (!this.isAbsolutized) {
            this.isAbsolutized = true;
            var dimensions = this.sliderPanel.getDimensions();
            this.sliderPanel.setStyle({
                height: dimensions.height + 'px',
                width: dimensions.width + 'px'
            });
            
            this.slider.absolutize();
        }
    },
    
    forward: function () {
        if (this.offset + this.config.pageSize <= this.items.length - 1) {
            this.slide(true);
        }
    },
    backward: function () {
        if (this.offset > 0) {
            this.slide(false);
        }
    },
    slide: function (isForward) {

        if (this.isPlaying) {
            return;
        }
        this.absolutize();
        this.effectConfig = {
            duration: this.config.slideDuration
        };
        if (this.config.slideDirection == 'horizontal') {
            this.effectConfig.x = this.getSlidePosition(isForward).left;
        } else {
            this.effectConfig.y = this.getSlidePosition(isForward).top;
        }
        this.start();

    },
    start: function ()
    {
        if (this.config.fadeEffect) {
            this.fadeIn();
        } else {
            this.move();
        }
    },
    fadeIn: function ()
    {
        new Effect.Fade(this.slider.up('div.slider-panel'), {
            from: 1.0,
            to:0.5,
            afterFinish: this.move.bind(this),
            beforeStart: this.effectStarts.bind(this),
            duration: 0.3
        });
    },
    fadeOut: function ()
    {
        new Effect.Fade(this.slider.up('div.slider-panel'), {
                from: 0.5,
                to:1.0,
                afterFinish: this.effectEnds.bind(this),
                duration: 0.3
        });
    },
    move: function ()
    {
        if (this.config.fadeEffect) {
            this.effectConfig.afterFinish = this.fadeOut.bind(this);
        } else {
            this.effectConfig.afterFinish = this.effectEnds.bind(this);
            this.effectConfig.beforeStart = this.effectStarts.bind(this);
        }

        new Effect.Move(this.slider, this.effectConfig);
    },
    effectStarts: function () {
        this.isPlaying = true;
    },
    effectEnds: function () {
        this.isPlaying = false;
        this.updateButtons();
    },
    getSlidePosition: function (isForward) {
        var targetOffset;
        if (isForward) {
            targetOffset = Math.min(this.items.length - this.config.pageSize, this.offset + this.config.scrollSize)
        }
        else {
            targetOffset = Math.max(this.offset - this.config.scrollSize, 0);
        }
        this.offset = targetOffset;
        var item = this.items[targetOffset];
        var itemOffset = {left:0, top:0};

        itemOffset.left = -(item.cumulativeOffset().left
                       -  this.slider.cumulativeOffset().left + this.slider.offsetLeft);
        itemOffset.top = -(item.cumulativeOffset().top
                       -  this.slider.cumulativeOffset().top + this.slider.offsetTop);
        return itemOffset;
    }
});

Enterprise.PopUpMenu = {
    currentPopUp: null,
    documentHandlerInitialized: false,
    popUpZIndex: 994,
    hideDelay: 2000,
    hideOnClick: true,
    hideInterval: null,
    //
    initializeDocumentHandler: function () {
        if (!this.documentHandlerInitialized) {
            this.documentHandlerInitialized = true;
            Event.observe(
                document.body,
                'click',
                this.handleDocumentClick.bindAsEventListener(this)
            );
        }
    },
    handleDocumentClick: function (evt) {
        if (this.currentPopUp !== null) {
            var element = Event.element(evt);
            if (!this.currentPopUp.onlyShowed && this.hideOnClick) {
                this.hide();
            } else {
                this.currentPopUp.onlyShowed = false;
            }
        }
    },
    handlePopUpOver: function (evt) {
        if (this.currentPopUp !== null) {
            this.currentPopUp.removeClassName('faded');
            this.resetTimeout(0);
        }
    },
    handlePopUpOut: function (evt) {
        if (this.currentPopUp !== null) {
            this.currentPopUp.addClassName('faded');
            this.resetTimeout(1);
        }
    },
    show: function (trigger) {
        this.initializeDocumentHandler();

        var container = $(trigger).up('.switch-wrapper');
        if (!$('popId-' + container.id)) {
            return;
        }

        if (this.currentPopUp !== null && $('popId-' + container.id) !== this.currentPopUp) {
            this.hide(true);
        } else if (this.currentPopUp !== null && this.currentPopUp === $('popId-' + container.id)) {
            this.hide();
            return;
        }

        this.currentPopUp = $('popId-' + container.id);
        this.currentPopUp.container = container;
        this.currentPopUp.container.oldZIndex = this.currentPopUp.container.style.zIndex;
        this.currentPopUp.container.style.zIndex = this.popUpZIndex;
        new Effect.Appear(this.currentPopUp, { duration:0.3 });


        if (!this.currentPopUp.isHandled) {
            this.currentPopUp.observe('mouseover', this.handlePopUpOver.bindAsEventListener(this));
            this.currentPopUp.observe('mouseout', this.handlePopUpOut.bindAsEventListener(this));
            this.currentPopUp.isHandled = true;
        }
        this.currentPopUp.onlyShowed = true;
        this.currentPopUp.container.down('.switcher').addClassName('list-opened');
        this.resetTimeout(2);
    },
    hide: function () {
        if (this.currentPopUp !== null) {
            if (arguments.length == 0) {
                new Effect.Fade(this.currentPopUp, {duration: 0.3});
            } else {
                this.currentPopUp.hide();
            }
            this.currentPopUp.container.style.zIndex = this.currentPopUp.container.oldZIndex;
            this.resetTimeout(0);
            this.currentPopUp.container.down('.switcher').removeClassName('list-opened');
            this.currentPopUp = null;
        }
    },
    resetTimeout: function (delay) {
        if (this.hideTimeout !== null) {
            clearTimeout(this.hideTimeout);
            this.hideTimeout = null;
        }
        if (delay) {
            this.hideTimeout = setTimeout(
                this.hide.bind(this),
                this.hideDelay * delay
            );
        }
    }
};


function popUpMenu(element) {
   Enterprise.PopUpMenu.show(element);
}
/*
function popUpMenu(element,trigger) {
        var iDelay = 2000;
        var new_popup = 0;
        var sTempId = 'popUped';
        if (document.getElementById(sTempId)) {
            var eTemp = document.getElementById(sTempId);
            $(sTempId).previous(0).down('.switcher').removeClassName('list-opened');
            new Effect.Fade (eTemp, { duration:0.3 });
            eTemp.id = sNativeId;
            clearTimeout(tId);
            document.onclick = null;
        }

        sNativeId = 'popId-'+$(element).up(1).id;
        var el = $(sNativeId);
        el.id = sTempId;

        if (eTemp && el == eTemp) {
            hideElement();
        } else {
            $(element).addClassName('list-opened');
            $(sTempId).getOffsetParent().style.zIndex = 994;
            new Effect.Appear (el, { duration:0.3 });
            tId=setTimeout("hideElement()",2*iDelay);
        }
        new_popup = 1;
        document.onclick = function() {
            if (!new_popup) {
                hideElement();
                document.onclick = null;
            }
            new_popup = 0;
        }

        el.onmouseout = function() {
            if ($(sTempId)) {
                $(sTempId).addClassName('faded');
                tId=setTimeout("hideElement()",iDelay);
            }
        }

        el.onmouseover = function() {
            if ($(sTempId)) {
                $(sTempId).removeClassName('faded');
                clearTimeout(tId);
            }
        }

        hideElement = function() {
            //el.hide();
            new Effect.Fade (el, { duration:0.3 });
            $(element).removeClassName('list-opened');
            el.getOffsetParent().style.zIndex = 1;
            el.id = sNativeId;
            if (tId) {clearTimeout(tId);}
        }
} */

/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09i
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/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}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2011 The Monotype Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Arial is a trademark of The Monotype Corporation.
 * 
 * Manufacturer:
 * The Monotype Corporation
 * 
 * Designer:
 * Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"16,-84r33,-3v2,13,5,25,11,33v6,8,14,15,26,20v12,5,25,8,40,8v13,0,25,-2,35,-6v10,-4,17,-9,22,-16v5,-7,8,-15,8,-23v0,-8,-3,-15,-8,-21v-5,-6,-12,-12,-23,-16v-7,-3,-22,-6,-46,-12v-24,-6,-41,-11,-51,-16v-12,-7,-22,-15,-28,-25v-6,-10,-9,-20,-9,-32v0,-13,5,-26,12,-37v7,-11,18,-20,32,-26v14,-6,30,-9,48,-9v19,0,36,3,51,9v15,6,26,16,34,28v8,12,12,26,13,41r-33,2v-2,-16,-8,-29,-18,-37v-10,-8,-26,-13,-46,-13v-21,0,-35,4,-45,12v-10,8,-14,16,-14,27v0,9,3,18,10,24v7,6,24,12,52,18v28,6,47,12,57,17v15,7,27,15,34,26v7,11,11,23,11,37v0,14,-4,28,-12,40v-8,12,-19,21,-34,28v-15,7,-32,10,-51,10v-24,0,-43,-3,-59,-10v-16,-7,-28,-17,-37,-31v-9,-14,-15,-30,-15,-47","w":242},{"d":"153,-61r33,4v-5,19,-15,34,-29,45v-14,11,-32,16,-54,16v-28,0,-49,-8,-65,-25v-16,-17,-25,-41,-25,-72v0,-32,9,-56,25,-74v16,-18,37,-26,63,-26v25,0,46,9,62,26v16,17,24,41,24,72r0,9r-141,0v1,21,7,36,18,47v11,11,23,17,39,17v12,0,22,-3,30,-9v8,-6,15,-16,20,-30xm48,-113r106,0v-1,-16,-6,-27,-13,-35v-10,-12,-23,-19,-39,-19v-15,0,-27,5,-37,15v-10,10,-16,23,-17,39"},{"d":"-6,72r0,-23r213,0r0,23r-213,0"},{"d":"76,4r-76,-269r26,0r75,269r-25,0","w":101},{"d":"15,-68r34,-3v2,16,8,29,17,37v9,8,20,12,33,12v15,0,28,-5,39,-17v11,-12,16,-27,16,-46v0,-18,-5,-33,-15,-44v-10,-11,-24,-15,-41,-15v-10,0,-20,2,-28,7v-8,5,-14,11,-19,18r-30,-4r25,-134r130,0r0,31r-104,0r-14,70v16,-11,32,-17,49,-17v23,0,41,8,57,24v16,16,24,36,24,61v0,24,-7,44,-21,61v-17,21,-39,31,-68,31v-24,0,-43,-6,-58,-19v-15,-13,-24,-31,-26,-53"},{"d":"91,38r0,-32v-16,-2,-29,-6,-39,-11v-10,-5,-19,-14,-26,-25v-7,-11,-12,-25,-13,-42r32,-6v2,17,7,29,13,37v9,11,20,18,33,19r0,-101v-13,-2,-27,-8,-41,-16v-10,-6,-17,-13,-23,-23v-6,-10,-9,-22,-9,-35v0,-23,9,-41,25,-55v11,-9,27,-15,48,-17r0,-16r18,0r0,16v19,2,34,7,45,16v14,12,22,28,25,48r-33,5v-2,-13,-6,-22,-12,-29v-6,-7,-15,-11,-25,-13r0,92v16,4,27,7,32,9v10,4,19,10,25,16v6,6,11,14,14,23v3,9,5,18,5,28v0,22,-7,40,-21,55v-14,15,-33,23,-55,24r0,33r-18,0xm91,-243v-12,2,-23,7,-30,15v-7,8,-11,18,-11,29v0,11,4,20,10,27v6,7,16,14,31,18r0,-89xm109,-22v12,-2,23,-7,31,-16v8,-9,12,-20,12,-34v0,-12,-2,-21,-8,-28v-6,-7,-18,-13,-35,-19r0,97"},{"d":"23,0r0,-261r32,0r0,261r-32,0","w":80},{"d":"18,16r31,4v1,10,5,17,11,21v8,6,19,9,33,9v15,0,26,-3,34,-9v8,-6,13,-14,16,-25v2,-7,3,-20,3,-41v-14,16,-32,25,-53,25v-26,0,-46,-9,-60,-28v-14,-19,-21,-41,-21,-67v0,-18,3,-35,10,-50v7,-15,16,-28,28,-36v12,-8,26,-12,43,-12v22,0,42,9,56,27r0,-23r29,0r0,163v0,29,-3,51,-9,63v-6,12,-15,22,-28,29v-13,7,-29,11,-48,11v-23,0,-41,-6,-55,-16v-14,-10,-20,-25,-20,-45xm45,-98v0,25,4,43,14,54v10,11,22,18,37,18v15,0,27,-6,37,-17v10,-11,15,-30,15,-54v0,-23,-5,-40,-15,-52v-10,-12,-23,-18,-37,-18v-14,0,-26,6,-36,18v-10,12,-15,28,-15,51"},{"d":"146,0r0,-24v-12,19,-29,28,-52,28v-15,0,-29,-4,-42,-12v-13,-8,-22,-20,-29,-35v-7,-15,-11,-32,-11,-51v0,-19,4,-36,10,-51v6,-15,15,-28,28,-36v13,-8,26,-12,42,-12v11,0,22,2,31,7v9,5,15,11,21,19r0,-94r32,0r0,261r-30,0xm45,-94v0,24,6,42,16,54v10,12,22,18,36,18v14,0,25,-6,35,-17v10,-11,15,-30,15,-53v0,-26,-5,-44,-15,-56v-10,-12,-22,-19,-37,-19v-14,0,-25,6,-35,18v-10,12,-15,30,-15,55"},{"d":"199,-261r35,0r0,151v0,26,-3,47,-9,62v-6,15,-17,28,-32,38v-15,10,-36,14,-61,14v-24,0,-44,-4,-60,-12v-16,-8,-26,-21,-33,-37v-7,-16,-10,-37,-10,-65r0,-151r34,0r0,151v0,23,2,39,6,50v4,11,12,19,22,25v10,6,23,8,38,8v25,0,43,-6,54,-17v11,-11,16,-33,16,-66r0,-151","w":262},{"d":"18,-127v0,-43,11,-77,34,-101v23,-24,53,-37,90,-37v24,0,46,6,65,17v19,11,35,27,45,48v10,21,15,44,15,70v0,26,-5,50,-16,71v-11,21,-26,36,-46,47v-20,11,-40,16,-63,16v-25,0,-47,-5,-66,-17v-19,-12,-33,-29,-43,-49v-10,-20,-15,-42,-15,-65xm53,-126v0,31,8,56,25,74v17,18,39,27,64,27v26,0,47,-9,64,-27v17,-18,25,-44,25,-78v0,-21,-4,-40,-11,-56v-7,-16,-17,-27,-31,-36v-14,-9,-29,-13,-46,-13v-24,0,-45,8,-63,25v-18,17,-27,45,-27,84","w":283},{"d":"101,0r0,-110r-100,-151r42,0r51,79v9,15,19,29,27,44v8,-14,17,-29,28,-46r51,-77r40,0r-104,151r0,110r-35,0","w":242,"k":{"v":20,"u":20,"q":33,"p":27,"o":33,"i":14,"e":33,"a":27,"A":27,";":24,":":20,".":47,"-":33,",":47," ":7}},{"d":"24,-223r0,-38r32,0r0,38r-32,0xm-17,73r6,-27v6,2,11,3,15,3v7,0,12,-3,15,-7v3,-4,5,-15,5,-32r0,-199r32,0r0,199v0,23,-3,40,-9,49v-8,12,-21,18,-39,18v-9,0,-17,-2,-25,-4","w":80},{"w":101,"k":{"Y":7,"T":7,"A":20}},{"d":"24,-224r0,-37r32,0r0,37r-32,0xm24,0r0,-189r32,0r0,189r-32,0","w":80},{"d":"27,0r0,-261r34,0r0,130r130,-130r46,0r-109,106r114,155r-45,0r-93,-132r-43,42r0,90r-34,0","w":242},{"d":"7,0r0,-26r120,-138v-14,1,-26,1,-36,1r-77,0r0,-26r154,0r0,21r-102,120r-19,22v14,-1,27,-2,40,-2r87,0r0,28r-167,0","w":182},{"d":"94,0r0,-230r-85,0r0,-31r206,0r0,31r-86,0r0,230r-35,0","w":222,"k":{"y":20,"w":20,"u":14,"s":40,"r":14,"o":40,"i":14,"e":40,"c":40,"a":40,"O":7,"A":27,";":40,":":40,".":40,"-":20,",":40," ":7}},{"d":"45,77r-23,0v35,-57,53,-114,53,-171v0,-22,-2,-44,-7,-66v-4,-18,-10,-36,-17,-52v-5,-11,-15,-28,-29,-53r23,0v22,30,38,60,49,90v9,26,14,53,14,81v0,32,-6,62,-18,92v-12,30,-27,57,-45,79","w":121},{"d":"2,0r100,-136r-88,-125r41,0r47,67v10,14,17,25,21,32v6,-9,12,-19,20,-29r53,-70r37,0r-91,123r98,138r-42,0r-66,-93v-4,-5,-7,-11,-11,-17v-6,9,-11,15,-13,19r-65,91r-41,0","w":242},{"d":"94,-29r4,29v-9,2,-17,2,-24,2v-12,0,-21,-1,-27,-5v-6,-4,-10,-9,-13,-15v-3,-6,-4,-18,-4,-37r0,-109r-24,0r0,-25r24,0r0,-46r32,-20r0,66r32,0r0,25r-32,0r0,111v0,9,0,14,1,17v1,3,3,4,6,6v3,2,6,3,11,3v4,0,8,-1,14,-2","w":101},{"d":"74,0r-70,-261r36,0r39,171v4,18,8,36,11,54r12,-49r50,-176r41,0r38,132v9,33,16,64,20,93v3,-16,8,-36,13,-57r41,-168r34,0r-71,261r-33,0r-55,-199v-5,-17,-7,-26,-8,-30v-3,12,-6,22,-8,30r-55,199r-35,0","w":343,"k":{"y":3,"u":7,"r":7,"o":7,"e":7,"a":14,"A":14,";":7,":":7,".":20,"-":7,",":20}},{"d":"25,72r0,-333r70,0r0,27r-38,0r0,280r38,0r0,26r-70,0","w":101},{"d":"24,0r0,-261r32,0r0,149r76,-77r41,0r-72,70r80,119r-40,0r-62,-97r-23,22r0,75r-32,0","w":182},{"d":"11,-56r32,-5v2,13,7,22,15,29v8,7,19,10,34,10v15,0,25,-3,32,-9v7,-6,11,-13,11,-21v0,-7,-3,-13,-9,-17v-4,-3,-16,-7,-33,-11v-23,-6,-40,-11,-49,-15v-9,-4,-15,-10,-20,-18v-5,-8,-7,-17,-7,-26v0,-8,1,-16,5,-23v4,-7,9,-13,16,-18v5,-4,11,-6,20,-9v9,-3,18,-4,28,-4v15,0,28,2,39,6v11,4,20,11,25,18v5,7,9,17,11,29r-31,4v-1,-10,-6,-18,-13,-23v-7,-5,-17,-8,-29,-8v-15,0,-25,3,-31,8v-6,5,-10,10,-10,17v0,4,1,8,4,11v3,3,7,6,13,8v3,1,12,5,28,9v23,6,38,10,47,14v9,4,16,10,21,17v5,7,8,17,8,28v0,11,-3,21,-9,30v-6,9,-15,17,-27,22v-12,5,-25,7,-40,7v-25,0,-43,-5,-56,-15v-13,-10,-21,-25,-25,-45","w":182},{"d":"15,-99r0,-36v13,-14,30,-22,50,-22v7,0,14,1,22,3v8,2,20,7,34,13v8,3,14,5,18,6v4,1,8,2,12,2v8,0,16,-2,24,-7v8,-5,16,-10,22,-17r0,37v-8,7,-15,13,-23,16v-8,3,-16,5,-26,5v-7,0,-14,-1,-20,-3v-6,-2,-17,-6,-31,-12v-14,-6,-26,-9,-35,-9v-8,0,-15,2,-22,5v-7,3,-15,9,-25,19","w":212},{"d":"103,0r-101,-261r37,0r68,190v5,15,9,29,13,42v4,-14,9,-28,14,-42r71,-190r35,0r-102,261r-35,0","w":242,"k":{"y":14,"u":14,"r":14,"o":20,"i":7,"e":20,"a":27,"A":27,";":14,":":14,".":33,"-":20,",":33}},{"d":"77,72r-70,0r0,-26r39,0r0,-280r-39,0r0,-27r70,0r0,333","w":101},{"d":"11,-213r9,-25v19,7,32,12,41,17v-2,-21,-4,-36,-4,-44r26,0v0,12,-2,26,-4,44v12,-6,26,-12,42,-17r8,25v-15,5,-30,8,-44,10v7,6,17,18,30,34r-21,15v-7,-9,-16,-22,-25,-38v-9,17,-16,29,-23,38r-21,-15v14,-17,24,-29,30,-34v-15,-3,-30,-6,-44,-10","w":141},{"d":"24,0r0,-189r28,0r0,29v7,-13,15,-23,21,-27v6,-4,13,-6,20,-6v11,0,22,3,33,10r-11,30v-8,-5,-15,-7,-23,-7v-7,0,-13,2,-19,6v-6,4,-10,11,-12,18v-4,11,-5,23,-5,37r0,99r-32,0","w":121,"k":{".":20,",":20}},{"d":"42,-123r-32,0r62,-142r26,0r63,142r-32,0r-44,-106","w":170},{"d":"33,77r0,-342r28,0r0,342r-28,0","w":94},{"d":"10,-109v9,0,16,-2,22,-7v6,-5,10,-11,12,-19v2,-8,3,-22,3,-42v0,-20,0,-33,1,-39v1,-10,3,-18,6,-24v3,-6,7,-11,11,-15v4,-4,9,-6,16,-8v5,-1,12,-2,22,-2r10,0r0,28r-5,0v-12,0,-21,3,-25,7v-4,4,-6,14,-6,29v0,31,-1,51,-2,59v-2,13,-6,22,-11,29v-5,7,-13,14,-24,19v13,5,22,14,28,25v6,11,9,30,9,55v0,23,1,37,1,41v1,8,3,14,7,17v4,3,12,5,23,5r5,0r0,28r-10,0v-12,0,-20,-1,-25,-3v-8,-3,-14,-7,-19,-13v-5,-6,-9,-15,-10,-24v-1,-9,-2,-25,-2,-46v0,-21,-1,-36,-3,-44v-2,-8,-6,-14,-12,-19v-6,-5,-13,-8,-22,-8r0,-29","w":121},{"d":"206,-29v-8,9,-16,16,-26,21v-10,5,-18,9,-28,9v-11,0,-21,-4,-31,-10v-10,-6,-18,-15,-24,-28v-6,-13,-10,-27,-10,-42v0,-19,5,-38,15,-57v10,-19,22,-33,36,-42v14,-9,28,-15,42,-15v10,0,20,3,29,8v9,5,17,14,24,25r6,-28r32,0r-25,120v-4,17,-6,25,-6,27v0,3,2,7,4,9v2,2,6,3,9,3v6,0,14,-4,24,-11v14,-9,25,-22,33,-38v8,-16,11,-32,11,-49v0,-20,-5,-39,-15,-56v-10,-17,-25,-31,-45,-41v-20,-10,-43,-15,-67,-15v-28,0,-53,6,-76,19v-23,13,-40,32,-53,56v-13,24,-19,50,-19,78v0,29,6,54,19,75v13,21,31,36,55,46v24,10,50,15,79,15v31,0,57,-5,78,-15v21,-10,37,-23,47,-38r32,0v-6,12,-16,25,-31,38v-15,13,-32,22,-52,30v-20,8,-44,12,-73,12v-26,0,-51,-4,-73,-11v-22,-7,-41,-16,-57,-30v-16,-14,-27,-29,-35,-47v-10,-22,-15,-46,-15,-72v0,-29,6,-57,18,-83v14,-32,34,-57,61,-74v27,-17,59,-25,97,-25v29,0,56,6,79,18v23,12,41,29,55,53v11,20,18,43,18,67v0,34,-13,65,-37,92v-22,24,-44,36,-70,36v-8,0,-15,-2,-20,-4v-5,-2,-9,-6,-11,-11v-2,-3,-3,-8,-4,-15xm120,-77v0,16,4,29,12,38v8,9,16,13,26,13v7,0,14,-2,21,-6v7,-4,14,-9,21,-17v7,-8,13,-18,17,-30v4,-12,6,-24,6,-36v0,-16,-4,-29,-12,-38v-8,-9,-18,-13,-29,-13v-8,0,-14,2,-21,6v-7,4,-14,9,-20,18v-6,9,-11,19,-15,31v-4,12,-6,24,-6,34","w":369},{"d":"59,0r-58,-189r33,0r30,109r11,41v0,-2,4,-15,10,-39r30,-111r33,0r28,110r10,36r11,-37r32,-109r31,0r-59,189r-33,0r-30,-113r-8,-32r-38,145r-33,0","w":262,"k":{".":20,",":20}},{"d":"12,-78r0,-32r98,0r0,32r-98,0","w":121},{"d":"28,0r0,-261r35,0r137,205r0,-205r33,0r0,261r-35,0r-137,-205r0,205r-33,0","w":262},{"d":"12,-94v0,-35,10,-61,29,-78v16,-14,37,-21,60,-21v26,0,47,8,63,25v16,17,25,41,25,71v0,24,-4,43,-11,57v-7,14,-18,25,-32,33v-14,8,-29,11,-45,11v-26,0,-48,-8,-64,-25v-16,-17,-25,-41,-25,-73xm45,-94v0,24,5,42,16,54v11,12,24,18,40,18v16,0,28,-6,39,-18v11,-12,16,-30,16,-55v0,-23,-5,-41,-16,-53v-11,-12,-23,-19,-39,-19v-16,0,-29,6,-40,18v-11,12,-16,31,-16,55"},{"d":"33,0r0,-36r36,0r0,36r-36,0","w":101},{"d":"226,-28v16,11,30,19,44,24r-10,24v-19,-7,-37,-17,-56,-32v-19,11,-41,16,-64,16v-24,0,-45,-6,-64,-17v-19,-11,-35,-27,-45,-48v-10,-21,-15,-43,-15,-69v0,-26,5,-49,15,-70v10,-21,26,-38,45,-49v19,-11,40,-16,64,-16v24,0,46,6,65,17v19,11,35,27,45,48v10,21,15,44,15,70v0,21,-3,40,-10,57v-7,17,-16,32,-29,45xm150,-72v20,6,36,14,49,25v20,-18,30,-46,30,-83v0,-21,-3,-40,-10,-56v-7,-16,-18,-27,-32,-36v-14,-9,-29,-13,-46,-13v-26,0,-47,8,-64,26v-17,18,-26,44,-26,79v0,34,8,60,25,78v17,18,39,27,65,27v12,0,23,-2,34,-7v-11,-7,-22,-12,-34,-15","w":283},{"d":"183,-31r0,31r-172,0v0,-8,1,-15,4,-22v4,-12,11,-24,21,-35v10,-11,24,-24,42,-39v28,-23,47,-42,57,-56v10,-14,15,-26,15,-38v0,-13,-5,-23,-14,-32v-9,-9,-20,-13,-35,-13v-15,0,-28,5,-37,14v-9,9,-14,22,-14,38r-33,-3v2,-25,10,-43,25,-56v15,-13,35,-20,60,-20v25,0,44,7,59,21v15,14,22,32,22,52v0,10,-3,20,-7,30v-4,10,-11,21,-21,32v-10,11,-26,27,-49,46v-19,16,-32,27,-37,33v-5,6,-10,11,-14,17r128,0"},{"d":"32,0r0,-36r37,0r0,36v0,13,-2,24,-7,32v-5,8,-13,15,-23,20r-9,-14v7,-3,12,-7,15,-13v3,-6,5,-14,5,-25r-18,0","w":101},{"d":"24,0r0,-261r32,0r0,94v15,-17,34,-26,57,-26v14,0,26,2,36,8v10,6,18,13,22,23v4,10,7,24,7,42r0,120r-32,0r0,-120v0,-16,-4,-28,-11,-35v-7,-7,-16,-10,-29,-10v-9,0,-19,2,-27,7v-8,5,-14,12,-18,20v-4,8,-5,20,-5,35r0,103r-32,0"},{"d":"24,72r0,-261r29,0r0,25v7,-10,14,-17,23,-22v9,-5,20,-7,32,-7v16,0,31,4,43,12v12,8,21,21,27,36v6,15,10,31,10,49v0,19,-4,37,-11,52v-7,15,-17,28,-30,36v-13,8,-26,12,-41,12v-11,0,-21,-1,-29,-6v-8,-5,-16,-11,-21,-18r0,92r-32,0xm53,-93v0,24,5,42,15,54v10,12,21,17,35,17v14,0,27,-6,37,-18v10,-12,15,-31,15,-56v0,-24,-5,-42,-15,-54v-10,-12,-21,-18,-35,-18v-14,0,-26,6,-36,19v-10,13,-16,32,-16,56"},{"d":"23,73r-4,-30v7,2,13,3,18,3v7,0,13,-2,17,-4v4,-2,8,-6,11,-10v2,-3,5,-11,10,-24v1,-2,1,-5,2,-8r-71,-189r34,0r40,110v5,14,9,28,13,43v4,-15,8,-29,13,-43r41,-110r32,0r-72,192v-8,21,-14,35,-18,43v-6,11,-13,18,-20,23v-7,5,-16,8,-26,8v-6,0,-12,-1,-20,-4","w":182,"k":{".":27,",":27}},{"d":"29,0r0,-261r188,0r0,31r-154,0r0,80r144,0r0,31r-144,0r0,88r160,0r0,31r-194,0","w":242},{"d":"24,0r0,-189r29,0r0,27v14,-21,34,-31,60,-31v11,0,21,2,31,6v10,4,17,9,22,16v5,7,8,15,10,24v1,6,1,16,1,31r0,116r-32,0r0,-115v0,-13,-1,-23,-3,-29v-2,-6,-8,-12,-14,-16v-6,-4,-13,-5,-22,-5v-14,0,-25,4,-35,13v-10,9,-15,25,-15,49r0,103r-32,0"},{"d":"53,0r-29,0r0,-261r32,0r0,93v14,-17,31,-25,52,-25v12,0,22,2,32,7v10,5,19,12,26,20v7,8,12,18,16,30v4,12,6,25,6,39v0,32,-8,57,-24,75v-16,18,-36,26,-58,26v-22,0,-40,-9,-53,-28r0,24xm53,-96v0,23,3,39,9,49v10,16,24,25,41,25v14,0,27,-6,37,-18v10,-12,15,-31,15,-55v0,-25,-5,-42,-15,-54v-10,-12,-21,-18,-35,-18v-14,0,-27,7,-37,19v-10,12,-15,29,-15,52"},{"d":"85,77v-18,-22,-33,-49,-45,-79v-12,-30,-18,-60,-18,-92v0,-28,5,-55,14,-81v11,-30,27,-60,49,-90r23,0v-14,25,-23,42,-28,53v-7,16,-13,33,-17,51v-5,22,-8,45,-8,67v0,57,18,114,53,171r-23,0","w":121},{"d":"3,0r69,-98r-64,-91r40,0r29,45v5,8,10,15,13,21v8,-12,7,-12,14,-21r32,-45r38,0r-65,89r70,100r-39,0r-39,-59r-10,-15r-50,74r-38,0","w":182},{"d":"27,0r0,-261r52,0r62,185v6,17,9,29,12,38r14,-41r62,-182r47,0r0,261r-34,0r0,-218r-75,218r-31,0r-76,-222r0,222r-33,0","w":303},{"d":"15,-69r32,-4v4,18,10,31,19,39v9,8,19,12,32,12v15,0,28,-6,38,-16v10,-10,16,-23,16,-38v0,-15,-4,-27,-14,-37v-10,-10,-22,-14,-37,-14v-6,0,-14,2,-23,4r4,-28r5,0v14,0,26,-4,37,-11v11,-7,16,-18,16,-33v0,-12,-4,-21,-12,-29v-8,-8,-17,-11,-30,-11v-12,0,-24,3,-32,11v-8,8,-14,20,-16,36r-32,-6v4,-21,13,-38,27,-50v14,-12,31,-18,52,-18v14,0,27,4,39,10v12,6,22,13,28,24v6,11,9,22,9,34v0,11,-3,22,-9,31v-6,9,-15,17,-27,22v15,4,27,11,36,22v9,11,13,25,13,42v0,23,-8,42,-25,58v-17,16,-38,24,-63,24v-23,0,-42,-7,-57,-21v-15,-14,-24,-31,-26,-53"},{"d":"20,-60r31,-3v3,14,8,24,15,31v7,7,17,10,28,10v10,0,19,-2,26,-7v7,-5,13,-10,18,-18v5,-8,9,-17,12,-30v3,-13,5,-26,5,-39v0,-1,-1,-4,-1,-7v-6,10,-15,19,-26,25v-11,6,-23,10,-36,10v-22,0,-39,-8,-54,-24v-15,-16,-23,-36,-23,-62v0,-26,7,-47,23,-63v16,-16,36,-25,59,-25v17,0,33,5,47,14v14,9,25,22,32,39v7,17,10,41,10,73v0,33,-3,60,-10,80v-7,20,-19,35,-33,45v-14,10,-31,15,-50,15v-20,0,-37,-6,-50,-17v-13,-11,-20,-27,-23,-47xm151,-175v0,-18,-5,-33,-15,-44v-10,-11,-21,-16,-35,-16v-14,0,-26,5,-37,17v-11,12,-16,27,-16,45v0,17,5,31,15,41v10,10,22,15,37,15v15,0,27,-5,37,-15v10,-10,14,-25,14,-43"},{"d":"29,0r0,-261r115,0v23,0,41,2,53,7v12,5,22,13,29,25v7,12,11,26,11,40v0,18,-6,33,-18,46v-12,13,-30,21,-55,24v9,4,15,9,20,13v10,9,20,21,29,35r45,71r-43,0r-35,-54v-10,-16,-17,-28,-24,-36v-7,-8,-13,-15,-18,-18v-5,-3,-11,-5,-16,-6v-4,-1,-10,-2,-19,-2r-40,0r0,116r-34,0xm63,-146r74,0v16,0,28,-1,37,-4v9,-3,15,-9,20,-16v5,-7,7,-15,7,-23v0,-12,-4,-23,-13,-31v-9,-8,-23,-12,-42,-12r-83,0r0,86","w":262,"k":{"Y":7,"W":7,"V":7,"T":7}},{"d":"28,0r0,-261r98,0v17,0,31,1,40,3v13,2,23,6,32,12v9,6,16,14,21,25v5,11,8,23,8,36v0,22,-7,41,-21,56v-14,15,-40,23,-77,23r-66,0r0,106r-35,0xm63,-137r67,0v22,0,38,-4,47,-12v9,-8,14,-20,14,-35v0,-11,-2,-20,-8,-28v-6,-8,-13,-14,-22,-16v-6,-2,-16,-2,-32,-2r-66,0r0,93","w":242,"k":{"A":27,".":47,",":47," ":7}},{"d":"24,0r0,-189r29,0r0,27v6,-9,13,-17,23,-23v10,-6,21,-8,34,-8v14,0,25,3,34,9v9,6,15,14,19,24v15,-22,34,-33,58,-33v19,0,34,6,44,16v10,10,15,25,15,47r0,130r-32,0r0,-119v0,-13,-1,-22,-3,-28v-2,-6,-6,-10,-11,-13v-5,-3,-13,-5,-20,-5v-13,0,-24,4,-33,13v-9,9,-13,23,-13,42r0,110r-32,0r0,-123v0,-14,-3,-25,-8,-32v-5,-7,-13,-10,-25,-10v-9,0,-17,2,-25,7v-8,5,-14,12,-17,21v-3,9,-5,22,-5,39r0,98r-32,0","w":303},{"d":"17,-226r0,-31r169,0r0,25v-17,18,-33,41,-49,70v-16,29,-29,59,-38,90v-6,22,-10,46,-12,72r-33,0v0,-20,4,-45,12,-74v8,-29,19,-57,33,-84v14,-27,30,-50,46,-68r-128,0"},{"d":"0,4r76,-269r25,0r-75,269r-26,0","w":101},{"d":"84,-64r0,-10v0,-13,1,-23,5,-32v3,-7,7,-14,13,-21v4,-5,12,-12,23,-22v11,-10,18,-18,21,-24v3,-6,5,-12,5,-19v0,-12,-4,-24,-14,-33v-10,-9,-22,-14,-36,-14v-14,0,-25,4,-34,13v-9,9,-15,22,-18,40r-33,-4v3,-24,11,-43,26,-56v15,-13,34,-19,58,-19v25,0,46,7,61,21v15,14,23,30,23,50v0,11,-3,22,-8,32v-5,10,-15,21,-31,35v-10,9,-18,16,-21,20v-3,4,-5,9,-7,15v-2,6,-2,15,-2,28r-31,0xm82,0r0,-36r36,0r0,36r-36,0"},{"d":"32,0r0,-164r-29,0r0,-25r29,0r0,-20v0,-13,1,-22,3,-28v3,-8,8,-15,16,-20v8,-5,19,-8,33,-8v9,0,19,1,30,3r-5,28v-7,-1,-13,-2,-19,-2v-10,0,-17,3,-21,7v-4,4,-6,12,-6,23r0,17r37,0r0,25r-37,0r0,164r-31,0","w":101,"k":{"f":7}},{"d":"147,-23v-12,10,-23,17,-34,21v-11,4,-22,6,-35,6v-21,0,-37,-5,-48,-15v-11,-10,-17,-23,-17,-39v0,-9,2,-17,6,-25v4,-8,10,-13,17,-18v7,-5,14,-9,23,-11v6,-2,15,-3,28,-5v26,-3,45,-7,57,-11v0,-4,1,-7,1,-8v0,-13,-3,-23,-9,-28v-8,-7,-21,-11,-37,-11v-15,0,-26,3,-33,8v-7,5,-13,15,-16,28r-31,-4v3,-13,7,-24,14,-32v7,-8,16,-15,28,-19v12,-4,27,-7,43,-7v16,0,29,2,39,6v10,4,17,8,22,14v5,6,8,13,10,22v1,5,2,15,2,29r0,43v0,30,1,48,2,56v1,8,4,16,8,23r-33,0v-3,-7,-6,-14,-7,-23xm144,-95v-12,5,-29,9,-52,12v-13,2,-23,5,-28,7v-5,2,-9,5,-12,10v-3,5,-5,9,-5,15v0,9,4,16,10,22v6,6,16,8,28,8v12,0,23,-3,33,-8v10,-5,16,-13,21,-22v3,-7,5,-18,5,-32r0,-12"},{"d":"91,-42r0,-72r-71,0r0,-29r71,0r0,-71r30,0r0,71r71,0r0,29r-71,0r0,72r-30,0","w":212},{"d":"148,0r0,-28v-15,21,-35,32,-60,32v-11,0,-21,-2,-31,-6v-10,-4,-17,-10,-22,-16v-5,-6,-8,-15,-10,-24v-1,-6,-2,-16,-2,-30r0,-117r32,0r0,105v0,17,1,28,2,34v2,8,6,15,13,20v7,5,14,7,24,7v10,0,19,-3,27,-8v8,-5,15,-12,18,-20v3,-8,5,-21,5,-37r0,-101r32,0r0,189r-28,0"},{"w":101},{"d":"32,-152r0,-37r37,0r0,37r-37,0xm32,0r0,-36r37,0r0,36v0,13,-2,24,-7,32v-5,8,-13,15,-23,20r-9,-14v7,-3,12,-7,15,-13v3,-6,5,-14,5,-25r-18,0","w":101},{"d":"34,0r0,-261r34,0r0,261r-34,0","w":101},{"d":"136,0r-32,0r0,-204v-8,7,-18,15,-31,22v-13,7,-23,13,-33,17r0,-31v18,-8,34,-19,47,-31v13,-12,22,-24,28,-35r21,0r0,262","k":{"1":27}},{"d":"173,-31v-11,12,-23,21,-35,27v-12,6,-26,8,-40,8v-27,0,-47,-9,-63,-27v-13,-15,-19,-31,-19,-49v0,-16,5,-30,15,-43v10,-13,26,-25,47,-35v-12,-14,-20,-25,-24,-33v-4,-8,-6,-16,-6,-24v0,-16,7,-29,19,-41v12,-12,27,-17,46,-17v18,0,33,5,44,16v11,11,17,25,17,40v0,25,-17,45,-50,63r47,60v5,-10,10,-23,13,-37r33,7v-6,23,-13,42,-23,57v12,16,25,29,40,40r-21,25v-13,-8,-26,-21,-40,-37xm108,-167v14,-8,23,-15,27,-21v4,-6,6,-13,6,-20v0,-9,-2,-16,-8,-22v-6,-6,-14,-9,-22,-9v-9,0,-15,3,-21,9v-6,6,-9,12,-9,20v0,4,1,9,3,13v2,4,6,9,10,14xm153,-56r-59,-73v-17,10,-29,20,-35,29v-6,9,-9,17,-9,26v0,11,5,22,13,33v8,11,20,17,35,17v10,0,20,-3,30,-9v10,-6,19,-14,25,-23","w":242},{"d":"192,-114r-172,74r0,-32r137,-57r-137,-56r0,-32r172,73r0,30","w":212},{"d":"76,0r-71,-189r33,0r41,113v4,12,8,25,12,38v3,-10,7,-22,12,-36r42,-115r33,0r-72,189r-30,0","w":182,"k":{".":27,",":27}},{"d":"111,-109r0,29v-9,0,-16,3,-22,8v-6,5,-10,11,-12,19v-2,8,-3,22,-3,42v0,20,0,33,-1,39v-1,10,-3,18,-6,24v-3,6,-6,10,-10,14v-4,4,-10,7,-17,9v-5,1,-12,2,-22,2r-10,0r0,-28r6,0v12,0,20,-3,24,-7v4,-4,6,-14,6,-30v0,-30,1,-48,2,-56v2,-13,5,-24,11,-32v6,-8,15,-14,25,-18v-14,-7,-23,-15,-29,-26v-6,-11,-9,-29,-9,-54v0,-23,1,-37,0,-42v-1,-8,-3,-13,-7,-16v-4,-3,-12,-5,-23,-5r-6,0r0,-28r10,0v12,0,21,1,26,3v8,3,13,7,18,13v5,6,9,14,10,23v1,9,2,25,2,46v0,21,1,36,3,44v2,8,6,15,12,20v6,5,13,7,22,7","w":121},{"d":"26,-168r-9,-50r0,-43r36,0r0,43r-8,50r-19,0xm84,-168r-8,-50r0,-43r36,0r0,43r-8,50r-20,0","w":129},{"d":"24,-168r-8,-49r0,-44r36,0r0,44r-8,49r-20,0","w":69},{"d":"33,-152r0,-37r36,0r0,37r-36,0xm33,0r0,-36r36,0r0,36r-36,0","w":101},{"d":"18,4r16,-75r-30,0r0,-27r35,0r13,-64r-48,0r0,-27r54,0r15,-76r27,0r-16,76r56,0r16,-76r27,0r-16,76r31,0r0,27r-36,0r-14,64r50,0r0,27r-55,0r-15,75r-27,0r15,-75r-56,0r-15,75r-27,0xm66,-98r56,0r13,-64r-56,0"},{"d":"144,72r0,-92v-5,7,-12,12,-21,17v-9,5,-18,7,-28,7v-22,0,-42,-9,-58,-27v-16,-18,-24,-42,-24,-73v0,-19,3,-36,10,-51v7,-15,15,-26,28,-34v13,-8,26,-12,41,-12v23,0,43,9,56,29r0,-25r28,0r0,261r-32,0xm46,-95v0,24,5,43,15,55v10,12,23,18,37,18v14,0,25,-5,35,-17v10,-12,15,-29,15,-53v0,-25,-6,-44,-16,-57v-10,-13,-23,-19,-37,-19v-14,0,-25,6,-35,18v-10,12,-14,30,-14,55"},{"d":"7,0r0,-32r134,-167v9,-12,18,-22,27,-31r-146,0r0,-31r187,0r0,31r-146,181r-16,18r166,0r0,31r-206,0","w":222},{"d":"29,0r0,-261r35,0r0,107r135,0r0,-107r35,0r0,261r-35,0r0,-123r-135,0r0,123r-35,0","w":262},{"d":"181,-197r-32,3v-3,-13,-7,-22,-12,-28v-9,-9,-19,-13,-32,-13v-10,0,-19,2,-27,8v-10,7,-17,18,-23,32v-6,14,-9,35,-9,61v8,-12,17,-20,28,-26v11,-6,23,-9,35,-9v21,0,39,8,54,24v15,16,23,35,23,60v0,16,-4,32,-11,46v-7,14,-17,25,-29,32v-12,7,-26,11,-42,11v-27,0,-48,-9,-65,-29v-17,-20,-25,-52,-25,-97v0,-50,9,-87,28,-110v16,-20,38,-30,65,-30v20,0,38,7,51,18v13,11,20,27,23,47xm50,-84v0,11,2,21,7,31v5,10,12,18,20,23v8,5,18,8,27,8v14,0,24,-5,34,-16v10,-11,15,-26,15,-45v0,-18,-4,-32,-14,-42v-10,-10,-22,-16,-37,-16v-14,0,-26,6,-36,16v-10,10,-16,24,-16,41"},{"d":"41,-65r-10,-138r0,-58r40,0r0,58r-9,138r-21,0xm33,0r0,-36r36,0r0,36r-36,0","w":101},{"d":"214,-91r34,8v-7,28,-20,50,-39,65v-19,15,-41,22,-68,22v-28,0,-51,-6,-69,-17v-18,-11,-31,-27,-40,-49v-9,-22,-14,-45,-14,-70v0,-27,6,-51,16,-71v10,-20,25,-36,44,-46v19,-10,40,-16,63,-16v26,0,48,7,66,20v18,13,30,32,37,56r-34,8v-6,-19,-15,-33,-26,-42v-11,-9,-27,-12,-44,-12v-20,0,-37,4,-50,14v-13,10,-23,23,-28,39v-5,16,-8,33,-8,50v0,22,3,41,9,58v6,17,16,29,30,37v14,8,29,12,45,12v19,0,36,-6,49,-17v13,-11,22,-27,27,-49","w":262},{"d":"28,0r0,-261r90,0v20,0,35,2,46,4v15,3,27,10,38,19v14,12,24,26,31,44v7,18,10,39,10,62v0,20,-1,38,-6,53v-5,15,-11,28,-18,38v-7,10,-15,17,-24,23v-9,6,-19,11,-31,14v-12,3,-26,4,-42,4r-94,0xm63,-31r55,0v17,0,31,-2,41,-5v10,-3,17,-7,23,-13v8,-8,14,-19,19,-33v5,-14,7,-30,7,-50v0,-27,-4,-48,-13,-63v-9,-15,-20,-24,-33,-29v-9,-4,-25,-6,-45,-6r-54,0r0,199","w":262},{"d":"20,-114r0,-30r172,-73r0,32r-136,56r136,57r0,32","w":212},{"d":"27,0r0,-261r34,0r0,230r128,0r0,31r-162,0","k":{"y":14,"Y":27,"W":27,"V":27,"T":27," ":14}},{"d":"12,-78r0,-32r98,0r0,32r-98,0","w":121},{"d":"27,0r0,-261r97,0v20,0,36,3,48,8v12,5,22,14,29,25v7,11,10,22,10,34v0,11,-3,22,-9,32v-6,10,-16,17,-28,23v16,5,29,13,37,24v8,11,12,24,12,39v0,12,-2,24,-7,34v-5,10,-11,19,-19,25v-8,6,-18,10,-29,13v-11,3,-25,4,-42,4r-99,0xm61,-151r56,0v15,0,26,-1,33,-3v9,-3,16,-7,20,-13v4,-6,7,-14,7,-23v0,-9,-2,-16,-6,-23v-4,-7,-10,-11,-18,-13v-8,-2,-21,-4,-40,-4r-52,0r0,79xm61,-31r65,0v11,0,18,0,23,-1v8,-1,15,-4,20,-7v5,-3,11,-9,14,-15v3,-6,5,-14,5,-22v0,-10,-3,-18,-8,-25v-5,-7,-11,-12,-20,-15v-9,-3,-22,-4,-39,-4r-60,0r0,89","w":242},{"d":"83,-212r-26,0r-41,-50r43,0","w":121},{"d":"118,0r0,-62r-113,0r0,-30r119,-169r26,0r0,169r35,0r0,30r-35,0r0,62r-32,0xm118,-92r0,-117r-82,117r82,0"},{"d":"15,-129v0,-31,4,-55,10,-74v6,-19,15,-33,28,-43v13,-10,28,-16,47,-16v14,0,26,3,37,9v11,6,19,13,26,24v7,11,12,24,16,39v4,15,6,35,6,61v0,31,-3,56,-9,75v-6,19,-16,33,-29,43v-13,10,-28,15,-47,15v-25,0,-45,-9,-59,-27v-17,-22,-26,-57,-26,-106xm48,-129v0,43,5,72,15,86v10,14,22,21,37,21v15,0,27,-7,37,-21v10,-14,15,-43,15,-86v0,-43,-5,-71,-15,-85v-10,-14,-22,-21,-37,-21v-15,0,-26,7,-35,19v-11,16,-17,44,-17,87"},{"d":"10,-74r32,-4v1,20,4,34,11,41v7,7,15,11,27,11v9,0,17,-2,23,-6v6,-4,11,-9,13,-16v2,-7,3,-18,3,-33r0,-180r35,0r0,178v0,22,-3,39,-8,51v-5,12,-14,21,-25,27v-11,6,-25,9,-40,9v-23,0,-41,-6,-53,-19v-12,-13,-18,-33,-18,-59","w":182},{"d":"64,-141v-13,-5,-23,-12,-29,-21v-6,-9,-10,-19,-10,-32v0,-19,7,-35,21,-48v14,-13,31,-20,54,-20v23,0,41,7,55,20v14,13,21,29,21,48v0,12,-4,23,-10,32v-6,9,-16,16,-29,21v16,5,29,13,37,25v8,12,12,26,12,42v0,22,-7,41,-23,56v-16,15,-36,22,-62,22v-26,0,-47,-7,-63,-22v-16,-15,-23,-34,-23,-57v0,-17,4,-32,13,-43v9,-11,20,-19,36,-23xm58,-196v0,12,4,23,12,31v8,8,18,11,31,11v12,0,22,-3,30,-11v8,-8,12,-18,12,-29v0,-12,-4,-21,-12,-29v-8,-8,-19,-12,-31,-12v-12,0,-22,3,-30,11v-8,8,-12,17,-12,28xm48,-75v0,9,2,17,6,26v4,9,10,15,19,20v9,5,18,7,28,7v15,0,28,-5,38,-15v10,-10,15,-22,15,-37v0,-15,-6,-28,-16,-38v-10,-10,-23,-15,-38,-15v-15,0,-28,4,-38,14v-10,10,-14,23,-14,38"},{"d":"21,-198v0,-19,5,-34,14,-47v9,-13,23,-20,41,-20v16,0,30,6,41,18v11,12,16,28,16,51v0,22,-6,39,-17,51v-11,12,-24,18,-40,18v-16,0,-29,-6,-39,-18v-10,-12,-16,-29,-16,-53xm77,-243v-8,0,-15,3,-20,10v-5,7,-8,20,-8,38v0,17,3,28,8,35v5,7,12,11,20,11v8,0,15,-4,20,-11v5,-7,8,-19,8,-37v0,-17,-3,-29,-8,-36v-5,-7,-12,-10,-20,-10xm77,10r143,-275r25,0r-142,275r-26,0xm190,-61v0,-19,5,-35,14,-48v9,-13,23,-19,41,-19v16,0,29,5,40,17v11,12,16,29,16,52v0,22,-5,39,-16,51v-11,12,-24,18,-40,18v-16,0,-30,-6,-40,-18v-10,-12,-15,-29,-15,-53xm245,-106v-8,0,-15,3,-20,10v-5,7,-7,20,-7,38v0,17,3,28,8,35v5,7,11,11,19,11v8,0,15,-4,20,-11v5,-7,8,-19,8,-37v0,-17,-3,-29,-8,-36v-5,-7,-12,-10,-20,-10","w":323},{"d":"150,-102r0,-31r110,0r0,97v-17,14,-34,23,-52,30v-18,7,-37,10,-56,10v-26,0,-48,-5,-69,-16v-21,-11,-37,-27,-48,-48v-11,-21,-16,-43,-16,-69v0,-25,5,-49,16,-71v11,-22,26,-38,46,-49v20,-11,43,-16,69,-16v19,0,36,3,51,9v15,6,27,15,36,26v9,11,14,24,19,42r-31,9v-4,-13,-8,-23,-14,-31v-6,-8,-14,-14,-25,-19v-11,-5,-23,-6,-36,-6v-16,0,-30,2,-41,7v-11,5,-21,11,-28,19v-7,8,-12,16,-16,25v-7,16,-10,34,-10,53v0,23,4,42,12,58v8,16,20,27,35,35v15,8,32,11,49,11v15,0,29,-2,43,-8v14,-6,26,-12,33,-19r0,-48r-77,0","w":283},{"d":"147,-69r32,4v-3,22,-13,39,-27,51v-14,12,-31,18,-52,18v-26,0,-46,-8,-62,-25v-16,-17,-24,-41,-24,-73v0,-20,3,-38,10,-53v7,-15,17,-27,31,-35v14,-8,29,-11,45,-11v20,0,38,6,51,16v13,10,21,25,25,44r-32,4v-3,-13,-7,-22,-15,-28v-8,-6,-17,-10,-28,-10v-16,0,-29,6,-39,18v-10,12,-15,29,-15,54v0,25,5,45,15,56v10,11,22,17,38,17v13,0,23,-4,31,-12v8,-8,14,-19,16,-35","w":182},{"d":"-1,0r101,-261r37,0r106,261r-39,0r-30,-79r-109,0r-29,79r-37,0xm75,-107r88,0r-27,-72v-8,-22,-15,-40,-19,-54v-3,17,-8,34,-14,50","w":242,"k":{"y":7,"w":7,"v":7,"Y":27,"W":14,"V":27,"T":27," ":20}},{"d":"192,-153r-172,0r0,-30r172,0r0,30xm192,-74r-172,0r0,-30r172,0r0,30","w":212},{"d":"30,0r0,-261r176,0r0,31r-142,0r0,81r123,0r0,31r-123,0r0,118r-34,0","w":222,"k":{"A":20,".":40,",":40}},{"d":"32,-152r0,-37r37,0r0,37r-37,0xm32,0r0,-36r37,0r0,36v0,13,-2,24,-7,32v-5,8,-13,15,-23,20r-9,-14v7,-3,12,-7,15,-13v3,-6,5,-14,5,-25r-18,0","w":101}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+388-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("1qBY;[?7N5x_1z>k8[|O&q&xvu?YB[x_vuKON5C^BpfwWG7bIupyv|0YKqE^B|pD55RPNI.}pz>W8|8;Ns?Hp>7a3>=fA7VsrI=]r>TOrqg0AIp_WbgnQQ9=I>V.?Y0]DuBg1sp38Q-0WQ-khQT[D^Bxvz&^#b?E5UPu&I?TDTE38Q-0W5CzW%(0h2P>Cu?VDIB38Q-G?uIbr^?0;q>71z&b1hE$DQ-w3%Ybr^-w;%Y0r[E>;[87NzE^D5&_Bb=^;*>0N*9xAs7kN5WRWb=]NG7]vbP)#^8s8Y0_1QfRDG$GNqx>A[x]vz=2;uYf3ug]Bv$];Y0_Bux]Bq|RB5|Uvz=]3[8f;qx2W5E3r^?R;up};ux3r[?];hUUruU_8qpG8zg-Vz%T|q*&K1r9?#D(ChQIp5vWBN;38AyPgb2U>[^R$atw._]0EOG7Yusn=}kfxH)w;u?g8q>];b=R;s?7;[|.BhU$B[xO1%.$Dq0k1O.$158;WY.$vp7x3|.$vv7$1zUP")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":202,"face":{"font-family":"Arial","font-weight":400,"font-stretch":"normal","units-per-em":"364","panose-1":"2 11 6 4 2 2 2 2 2 4","ascent":"291","descent":"-73","x-height":"4","bbox":"-17 -285 356 77","underline-thickness":"26.6602","underline-position":"-25.2383","unicode-range":"U+0020-U+007E"}}));
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2011 The Monotype Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Arial is a trademark of The Monotype Corporation.
 * 
 * Manufacturer:
 * The Monotype Corporation
 * 
 * Designer:
 * Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"24,0r0,-261r50,0r0,94v15,-18,34,-26,55,-26v23,0,42,8,57,25v15,17,22,41,22,72v0,32,-8,57,-23,74v-15,17,-34,26,-56,26v-11,0,-22,-3,-32,-8v-10,-5,-19,-13,-27,-24r0,28r-46,0xm74,-98v0,20,3,34,9,43v9,13,20,20,34,20v11,0,20,-5,28,-14v8,-9,12,-25,12,-45v0,-22,-4,-36,-12,-46v-8,-10,-18,-15,-30,-15v-12,0,-22,5,-30,14v-8,9,-11,24,-11,43","w":222},{"d":"88,-212r-31,0r-50,-53r56,0","w":121},{"d":"27,0r0,-261r110,0v28,0,48,2,61,7v13,5,22,13,30,25v8,12,12,26,12,41v0,20,-6,36,-17,49v-11,13,-29,21,-52,24v11,7,21,14,28,22v7,8,17,22,30,42r32,51r-63,0r-38,-57v-14,-20,-23,-33,-28,-38v-5,-5,-10,-9,-16,-11v-6,-2,-14,-3,-26,-3r-11,0r0,109r-52,0xm79,-150r39,0v25,0,41,-2,47,-4v6,-2,11,-6,15,-11v4,-5,6,-11,6,-19v0,-9,-2,-16,-7,-21v-5,-5,-11,-10,-20,-11v-4,-1,-18,0,-39,0r-41,0r0,66","w":262,"k":{"Y":14,"W":7,"V":7}},{"d":"-1,-265r37,0r65,269r-37,0","w":101},{"d":"100,-262v25,0,45,9,59,27v17,21,25,57,25,106v0,49,-8,85,-25,107v-14,18,-34,26,-59,26v-25,0,-45,-10,-61,-29v-16,-19,-24,-54,-24,-104v0,-49,9,-84,26,-106v14,-18,34,-27,59,-27xm100,-220v-6,0,-11,2,-16,6v-5,4,-8,10,-11,20v-3,13,-5,34,-5,65v0,31,1,53,4,64v3,11,7,18,12,22v5,4,10,6,16,6v6,0,11,-2,16,-6v5,-4,8,-10,11,-20v3,-13,5,-35,5,-66v0,-31,-1,-52,-4,-63v-3,-11,-7,-18,-12,-22v-5,-4,-10,-6,-16,-6"},{"d":"26,73r0,-334r88,0r0,40r-41,0r0,255r41,0r0,39r-88,0","w":121},{"d":"236,-33v13,9,27,17,42,22r-19,37v-8,-2,-15,-6,-23,-10v-2,-1,-13,-8,-35,-23v-17,7,-36,11,-57,11v-40,0,-71,-11,-94,-35v-23,-24,-34,-56,-34,-99v0,-43,11,-76,34,-100v23,-24,54,-35,93,-35v39,0,68,11,91,35v23,24,34,57,34,100v0,23,-3,42,-9,59v-5,13,-13,26,-23,38xm194,-63v7,-8,12,-18,15,-29v3,-11,5,-23,5,-38v0,-30,-7,-53,-20,-68v-13,-15,-31,-22,-52,-22v-21,0,-39,7,-52,22v-13,15,-20,38,-20,68v0,30,7,53,20,68v13,15,31,23,51,23v8,0,14,-2,21,-4v-11,-7,-21,-12,-32,-16r14,-30v17,6,34,14,50,26","w":283},{"w":101,"k":{"Y":7,"A":14}},{"d":"25,0r0,-261r52,0r0,261r-52,0","w":101},{"d":"130,-73v-9,0,-16,2,-20,4v-4,2,-8,6,-11,11v-3,5,-6,11,-7,19v-1,6,-1,15,-1,29v0,23,-1,39,-3,48v-2,9,-6,16,-12,22v-6,6,-13,10,-24,13v-7,2,-19,4,-35,4r-9,0r0,-43v13,0,21,0,25,-2v4,-2,7,-4,9,-7v2,-3,2,-9,2,-16v0,-7,1,-21,2,-41v1,-12,2,-23,5,-30v3,-7,6,-14,10,-19v4,-5,10,-9,17,-13v-9,-6,-16,-12,-20,-17v-6,-8,-9,-18,-11,-30v-1,-8,-2,-27,-3,-55v0,-9,-1,-14,-2,-17v-1,-3,-4,-5,-8,-7v-4,-2,-13,-3,-26,-3r0,-42r9,0v16,0,28,2,37,4v9,2,16,6,22,12v6,6,10,13,12,22v2,9,3,23,3,42v0,22,0,35,2,42v3,9,7,16,12,20v5,4,14,6,25,7r0,43","w":141},{"d":"26,-214r0,-47r50,0r0,47r-50,0xm26,0r0,-189r50,0r0,189r-50,0","w":101},{"d":"95,0r0,-110r-96,-151r62,0r61,104r61,-104r60,0r-96,152r0,109r-52,0","w":242,"k":{"v":20,"u":20,"q":27,"p":20,"o":27,"i":14,"e":20,"a":20,"A":33,";":27,":":27,".":40,"-":20,",":40," ":7}},{"d":"20,-69r0,-50r99,0r0,50r-99,0","w":121},{"d":"257,-32r-30,39v-15,-7,-29,-17,-43,-30v-11,9,-21,16,-33,21v-12,5,-27,7,-43,7v-32,0,-57,-10,-73,-28v-13,-14,-19,-30,-19,-48v0,-17,5,-33,15,-46v10,-13,25,-24,45,-34v-9,-11,-16,-20,-21,-30v-5,-10,-6,-18,-6,-27v0,-16,6,-30,19,-41v13,-11,31,-16,54,-16v23,0,39,6,52,17v13,11,19,25,19,42v0,11,-3,21,-9,30v-6,9,-19,21,-38,33r36,47v4,-8,8,-17,11,-29r45,10v-5,16,-8,28,-11,35v-3,7,-7,14,-11,19v6,5,13,11,22,17v9,6,15,10,19,12xm121,-173r14,-11v10,-8,14,-15,14,-23v0,-6,-2,-11,-7,-16v-5,-5,-11,-7,-19,-7v-8,0,-14,2,-19,6v-5,4,-7,9,-7,14v0,6,4,13,12,22xm101,-119v-11,6,-19,13,-25,21v-6,8,-9,16,-9,25v0,11,4,19,11,26v7,7,16,10,28,10v8,0,16,-1,23,-4v7,-3,14,-9,23,-16","w":262},{"d":"93,0r-93,-261r57,0r66,193r64,-193r55,0r-93,261r-56,0","w":242,"k":{"y":14,"u":14,"r":20,"o":27,"i":7,"e":20,"a":20,"A":27,";":20,":":20,".":33,"-":20,",":33}},{"d":"16,-129v0,-27,4,-49,12,-67v6,-13,14,-24,24,-35v10,-11,22,-19,34,-24v16,-7,35,-10,56,-10v38,0,69,12,92,36v23,24,35,57,35,99v0,42,-12,75,-35,99v-23,24,-53,35,-91,35v-39,0,-70,-11,-93,-35v-23,-24,-34,-57,-34,-98xm70,-130v0,30,6,52,20,67v14,15,31,22,52,22v21,0,39,-7,52,-22v13,-15,20,-38,20,-68v0,-30,-6,-52,-19,-67v-13,-15,-31,-22,-53,-22v-22,0,-39,7,-52,22v-13,15,-20,38,-20,68","w":283},{"d":"34,-139r0,-50r50,0r0,50r-50,0xm34,-50r50,0r0,36v0,14,-1,26,-3,34v-2,8,-8,15,-15,22v-7,7,-15,12,-26,16r-10,-20v10,-3,18,-8,22,-14v4,-6,6,-14,6,-24r-24,0r0,-50","w":121},{"d":"25,-50r50,0r0,36v0,14,-2,26,-4,34v-2,8,-7,15,-14,22v-7,7,-15,12,-26,16r-10,-20v10,-3,17,-8,21,-14v4,-6,7,-14,7,-24r-24,0r0,-50","w":101},{"d":"13,-85r51,-5v3,17,10,30,19,38v9,8,22,12,38,12v17,0,30,-4,39,-11v9,-7,12,-15,12,-25v0,-6,-1,-11,-5,-15v-4,-4,-10,-9,-19,-12v-6,-2,-20,-6,-42,-11v-28,-7,-48,-16,-59,-26v-16,-14,-24,-31,-24,-52v0,-13,3,-26,11,-38v8,-12,18,-20,32,-26v14,-6,32,-9,52,-9v33,0,57,8,74,22v17,14,25,33,26,57r-53,2v-2,-13,-8,-23,-15,-29v-7,-6,-18,-8,-33,-8v-15,0,-27,3,-36,9v-6,4,-8,9,-8,16v0,6,3,12,8,16v7,6,22,11,48,17v26,6,45,13,57,19v12,6,22,16,29,27v7,11,10,25,10,41v0,15,-4,29,-12,42v-8,13,-21,23,-36,29v-15,6,-33,10,-56,10v-33,0,-58,-8,-76,-23v-18,-15,-29,-38,-32,-67","w":242},{"d":"12,-92r0,-46v15,-16,33,-25,53,-25v7,0,14,1,20,2v6,1,18,6,34,13v16,7,27,9,33,9v7,0,14,-2,23,-6v9,-4,18,-10,26,-19r0,48v-5,6,-13,11,-23,16v-10,5,-20,7,-30,7v-6,0,-12,-1,-18,-2v-6,-1,-15,-5,-27,-10v-18,-8,-33,-12,-43,-12v-17,0,-32,9,-48,25","w":212},{"d":"28,0r0,-258r53,0r0,214r130,0r0,44r-183,0","w":222,"k":{"y":14,"Y":33,"W":20,"V":27,"T":27," ":7}},{"d":"58,-141v-13,-5,-22,-12,-28,-22v-6,-10,-9,-20,-9,-31v0,-19,7,-36,21,-49v14,-13,33,-19,58,-19v25,0,43,6,57,19v14,13,21,30,21,49v0,12,-4,23,-10,32v-6,9,-15,16,-26,21v14,6,25,15,33,26v8,11,11,23,11,38v0,24,-8,44,-23,59v-15,15,-36,23,-61,23v-24,0,-43,-7,-59,-19v-19,-15,-28,-34,-28,-60v0,-14,3,-27,10,-39v7,-12,18,-22,33,-28xm69,-191v0,10,2,17,8,23v6,6,14,9,23,9v9,0,16,-3,22,-9v6,-6,9,-13,9,-23v0,-9,-3,-17,-9,-23v-6,-6,-13,-8,-22,-8v-10,0,-17,3,-23,9v-6,6,-8,13,-8,22xm64,-79v0,14,4,24,11,32v7,8,15,11,26,11v10,0,19,-4,26,-11v7,-7,10,-18,10,-32v0,-12,-4,-22,-11,-29v-7,-7,-15,-11,-26,-11v-12,0,-21,4,-27,12v-6,8,-9,18,-9,28"},{"d":"4,-189r28,0r0,-14v0,-16,2,-28,5,-36v3,-8,10,-14,19,-19v9,-5,20,-7,34,-7v14,0,28,2,42,6r-7,35v-8,-2,-16,-3,-23,-3v-7,0,-12,2,-15,5v-3,3,-5,10,-5,20r0,13r37,0r0,40r-37,0r0,149r-50,0r0,-149r-28,0r0,-40","w":121},{"d":"11,-73r0,-43v9,0,15,-1,19,-3v4,-2,9,-6,12,-11v3,-5,5,-11,6,-19v1,-6,2,-16,2,-30v0,-23,1,-39,3,-48v2,-9,5,-16,11,-22v6,-6,14,-10,25,-13v7,-2,18,-3,34,-3r9,0r0,42v-13,0,-21,2,-25,3v-4,1,-6,3,-8,6v-2,3,-3,9,-3,16v0,7,-1,21,-2,42v-1,12,-2,22,-4,29v-2,7,-6,13,-10,18v-4,5,-9,10,-17,15v7,4,13,9,17,14v4,5,8,12,10,20v2,8,4,17,5,30v1,20,1,33,1,38v0,8,1,14,3,17v2,3,4,5,8,7v4,2,12,2,25,2r0,43r-9,0v-16,0,-28,-1,-37,-4v-9,-3,-16,-7,-22,-13v-6,-6,-9,-13,-11,-22v-2,-9,-3,-22,-3,-41v0,-22,-1,-36,-3,-43v-3,-9,-7,-16,-12,-20v-5,-4,-13,-6,-24,-7","w":141},{"d":"27,0r0,-261r53,0r0,116r106,-116r71,0r-98,102r103,159r-68,0r-72,-122r-42,43r0,79r-53,0","w":262},{"d":"78,0r-76,-189r52,0r36,97r10,32v3,-8,4,-13,5,-16v2,-5,4,-11,6,-16r36,-97r51,0r-75,189r-45,0","k":{".":27,",":27}},{"d":"61,0r-59,-189r48,0r35,124r33,-124r48,0r32,124r36,-124r49,0r-61,189r-48,0r-32,-121r-32,121r-49,0","w":283,"k":{".":14,",":14}},{"d":"113,-189r0,40r-34,0r0,76v0,15,0,24,1,27v1,3,2,4,4,6v2,2,5,3,8,3v5,0,12,-2,21,-5r4,39v-12,5,-25,7,-40,7v-9,0,-17,-1,-24,-4v-7,-3,-13,-7,-16,-12v-3,-5,-6,-11,-7,-19v-1,-6,-2,-18,-2,-36r0,-82r-22,0r0,-40r22,0r0,-37r51,-29r0,66r34,0","w":121},{"d":"26,-261r96,0v22,0,39,2,50,5v15,5,28,13,39,24v11,11,19,26,25,43v6,17,9,37,9,61v0,21,-3,40,-8,56v-7,19,-16,34,-28,46v-9,9,-21,15,-37,20v-12,4,-28,6,-47,6r-99,0r0,-261xm79,-216r0,172r39,0v15,0,25,0,32,-2v9,-2,15,-6,21,-11v6,-5,10,-13,14,-25v4,-12,5,-28,5,-48v0,-20,-1,-35,-5,-46v-4,-11,-9,-20,-15,-26v-6,-6,-14,-10,-24,-12v-7,-2,-22,-2,-43,-2r-24,0","w":262},{"d":"26,0r0,-50r50,0r0,50r-50,0","w":101},{"d":"135,-60r50,8v-6,18,-16,32,-30,42v-14,10,-31,14,-52,14v-33,0,-57,-11,-73,-32v-12,-17,-18,-39,-18,-65v0,-31,8,-55,24,-73v16,-18,37,-27,62,-27v28,0,51,9,67,28v16,19,24,47,23,85r-125,0v0,15,4,27,12,35v8,8,18,12,29,12v8,0,14,-2,19,-6v5,-4,9,-12,12,-21xm138,-111v0,-14,-4,-25,-11,-33v-7,-8,-16,-11,-26,-11v-11,0,-20,4,-27,12v-7,8,-10,18,-10,32r74,0"},{"d":"31,77r0,-342r40,0r0,342r-40,0","w":101},{"d":"4,0r0,-47r137,-169r-122,0r0,-45r191,0r0,41r-143,176r149,0r0,44r-212,0","w":222},{"d":"0,0r89,-136r-81,-125r62,0r52,84r51,-84r61,0r-81,127r89,134r-63,0r-58,-90r-58,90r-63,0","w":242},{"d":"63,0r-62,-261r54,0r39,179r48,-179r63,0r45,182r40,-182r53,0r-63,261r-56,0r-52,-195r-51,195r-58,0","w":343,"k":{"y":7,"u":7,"r":7,"o":7,"i":3,"e":7,"a":14,"A":20,";":7,":":7,".":20,"-":7,",":20}},{"d":"15,-97v0,-17,4,-32,12,-48v8,-16,20,-28,35,-36v15,-8,32,-12,50,-12v29,0,52,9,70,28v18,19,27,42,27,70v0,29,-9,52,-27,71v-18,19,-42,28,-70,28v-17,0,-33,-3,-49,-11v-16,-8,-28,-20,-36,-35v-8,-15,-12,-33,-12,-55xm66,-94v0,19,4,33,13,43v9,10,20,15,33,15v13,0,24,-5,33,-15v9,-10,13,-25,13,-44v0,-18,-4,-32,-13,-42v-9,-10,-20,-15,-33,-15v-13,0,-24,5,-33,15v-9,10,-13,24,-13,43","w":222},{"d":"83,-38r0,-67r-68,0r0,-47r68,0r0,-68r46,0r0,68r68,0r0,47r-68,0r0,67r-46,0","w":212},{"d":"198,0r-50,0r0,-96v0,-20,-1,-34,-3,-40v-2,-6,-6,-11,-11,-14v-5,-3,-10,-5,-17,-5v-9,0,-16,2,-23,7v-7,5,-11,11,-14,19v-3,8,-4,23,-4,44r0,85r-50,0r0,-189r46,0r0,28v16,-21,37,-32,62,-32v11,0,22,2,31,6v9,4,15,9,20,15v5,6,8,13,10,21v2,8,3,19,3,34r0,117","w":222},{"d":"20,-123r67,-142r40,0r65,142r-51,0r-35,-87r-35,87r-51,0","w":212},{"d":"2,0r68,-97r-65,-92r61,0r33,52r36,-52r58,0r-64,90r70,99r-61,0r-39,-58r-38,58r-59,0"},{"d":"63,-131r-45,-8v5,-18,14,-32,26,-41v12,-9,31,-13,56,-13v22,0,39,3,50,8v11,5,19,12,23,20v4,8,6,23,6,45r0,58v0,17,0,29,2,37v2,8,5,16,9,25r-49,0v-1,-3,-3,-8,-5,-15v-1,-3,-2,-5,-2,-6v-9,8,-17,15,-27,19v-10,4,-20,6,-31,6v-19,0,-35,-5,-46,-16v-11,-11,-17,-24,-17,-40v0,-11,3,-20,8,-28v5,-8,12,-15,21,-19v9,-4,23,-9,40,-12v23,-4,39,-8,48,-12r0,-5v0,-10,-2,-17,-7,-21v-5,-4,-14,-6,-27,-6v-9,0,-15,2,-20,5v-5,3,-10,10,-13,19xm130,-91v-6,2,-16,5,-30,8v-14,3,-23,6,-27,9v-7,5,-10,10,-10,17v0,7,3,13,8,18v5,5,12,8,20,8v9,0,17,-3,25,-9v6,-5,10,-9,12,-16v1,-4,2,-13,2,-25r0,-10"},{"d":"9,-54r50,-7v2,10,6,17,13,22v7,5,15,7,27,7v13,0,22,-2,29,-7v4,-3,7,-7,7,-13v0,-4,-2,-8,-4,-10v-2,-2,-8,-4,-17,-6v-40,-9,-65,-18,-76,-25v-15,-10,-23,-24,-23,-42v0,-16,7,-30,20,-41v13,-11,33,-17,60,-17v26,0,44,5,57,13v13,8,21,21,26,37r-47,9v-2,-7,-5,-13,-11,-17v-6,-4,-14,-6,-24,-6v-13,0,-22,1,-28,5v-4,3,-6,7,-6,11v0,4,2,7,5,9v5,3,19,8,46,14v27,6,45,13,56,22v10,9,16,21,16,37v0,17,-8,33,-22,45v-14,12,-36,18,-64,18v-26,0,-46,-5,-61,-15v-15,-10,-24,-25,-29,-43"},{"d":"27,-65r-24,0r0,-39r32,0r11,-52r-43,0r0,-40r51,0r14,-69r40,0r-14,69r39,0r14,-69r41,0r-14,69r24,0r0,40r-32,0r-11,52r43,0r0,39r-51,0r-14,69r-40,0r14,-69r-39,0r-15,69r-40,0xm86,-156r-11,52r40,0r10,-52r-39,0"},{"d":"149,72r0,-95v-7,8,-14,15,-24,20v-10,5,-20,7,-31,7v-21,0,-39,-8,-53,-24v-16,-19,-25,-45,-25,-77v0,-30,8,-54,23,-71v15,-17,34,-25,57,-25v13,0,24,3,33,8v9,5,17,13,24,24r0,-28r46,0r0,261r-50,0xm151,-97v0,-19,-4,-34,-12,-43v-8,-9,-17,-14,-29,-14v-12,0,-23,4,-31,14v-8,10,-12,25,-12,46v0,21,4,36,12,45v8,9,18,14,29,14v11,0,21,-6,30,-16v9,-10,13,-26,13,-46","w":222},{"d":"26,0r0,-261r79,0r47,178r47,-178r78,0r0,261r-48,0r0,-205r-52,205r-51,0r-51,-205r0,205r-49,0","w":303},{"d":"193,-96r51,16v-8,28,-21,50,-39,64v-18,14,-41,20,-69,20v-35,0,-63,-11,-85,-35v-22,-24,-34,-56,-34,-97v0,-43,12,-77,34,-101v22,-24,52,-36,88,-36v32,0,58,9,78,28v12,11,20,27,26,48r-52,13v-3,-14,-9,-24,-19,-32v-10,-8,-22,-12,-36,-12v-19,0,-35,7,-47,21v-12,14,-18,36,-18,67v0,33,6,57,18,71v12,14,27,20,46,20v14,0,27,-4,37,-13v10,-9,17,-23,21,-42","w":262},{"d":"17,-30r0,-50r125,-49r-125,-48r0,-50r179,77r0,43","w":212},{"d":"20,-69r0,-50r99,0r0,50r-99,0","w":121},{"d":"25,-214r0,-47r50,0r0,47r-50,0xm75,-189r0,183v0,24,-2,41,-5,51v-3,10,-9,17,-18,23v-9,6,-20,9,-34,9v-5,0,-10,-1,-16,-2v-6,-1,-12,-2,-19,-4r9,-42v2,0,5,1,7,1r5,0v5,0,10,-1,13,-3v3,-2,5,-5,6,-8v1,-3,2,-13,2,-28r0,-180r50,0","w":101},{"d":"6,0r0,-39r71,-81v12,-13,20,-22,26,-28r-23,0r-67,1r0,-42r156,0r0,36r-72,83r-26,27v14,-1,23,-1,26,-1r78,0r0,44r-169,0","w":182},{"d":"26,0r0,-261r194,0r0,45r-141,0r0,57r131,0r0,44r-131,0r0,71r146,0r0,44r-199,0","w":242},{"d":"-3,72r0,-32r207,0r0,32r-207,0"},{"d":"184,-46r0,46r-175,0v2,-18,8,-34,17,-50v9,-16,28,-36,56,-62v23,-21,37,-36,42,-43v7,-10,10,-21,10,-31v0,-11,-3,-19,-9,-25v-6,-6,-14,-9,-25,-9v-10,0,-19,3,-25,9v-6,6,-9,16,-10,31r-50,-4v3,-27,12,-48,28,-60v16,-12,35,-18,58,-18v26,0,46,7,61,21v15,14,22,31,22,52v0,12,-2,22,-6,33v-4,11,-11,22,-20,34v-6,8,-17,19,-33,33v-16,14,-26,24,-30,29v-4,5,-7,9,-10,14r99,0"},{"d":"25,-189r46,0r0,28v6,-9,15,-17,25,-23v10,-6,21,-9,34,-9v22,0,41,9,56,26v15,17,23,41,23,72v0,32,-8,56,-23,73v-15,17,-34,26,-56,26v-10,0,-21,-2,-29,-6v-8,-4,-17,-11,-26,-21r0,95r-50,0r0,-261xm74,-98v0,21,5,37,13,47v8,10,18,16,30,16v12,0,21,-5,29,-14v8,-9,12,-25,12,-46v0,-20,-4,-34,-12,-44v-8,-10,-17,-15,-29,-15v-12,0,-23,6,-31,15v-8,9,-12,23,-12,41","w":222},{"d":"26,0r0,-261r50,0r0,261r-50,0","w":101},{"d":"95,-261r0,334r-88,0r0,-39r41,0r0,-256r-41,0r0,-39r88,0","w":121},{"d":"150,0r0,-28v-7,10,-16,18,-27,24v-11,6,-23,8,-35,8v-13,0,-24,-2,-34,-8v-10,-6,-17,-14,-22,-24v-5,-10,-7,-23,-7,-41r0,-120r50,0r0,87v0,27,1,43,3,49v2,6,5,11,10,14v5,3,11,5,18,5v9,0,16,-2,23,-7v7,-5,12,-10,14,-17v2,-7,4,-24,4,-51r0,-80r50,0r0,189r-47,0","w":222},{"d":"109,77r-34,0v-18,-27,-33,-56,-42,-86v-9,-30,-14,-57,-14,-85v0,-34,6,-67,18,-98v10,-27,22,-51,38,-73r34,0v-16,36,-27,67,-33,92v-6,25,-9,52,-9,80v0,19,1,39,5,59v4,20,9,41,15,59v4,12,12,29,22,52","w":121},{"d":"24,0r0,-261r50,0r0,139r59,-67r61,0r-64,69r69,120r-54,0r-47,-85r-24,25r0,60r-50,0"},{"d":"74,0r-50,0r0,-189r46,0r0,27v8,-13,16,-21,22,-25v6,-4,13,-6,21,-6v11,0,22,3,33,9r-15,44v-8,-5,-17,-8,-24,-8v-7,0,-12,2,-17,6v-5,4,-9,10,-12,20v-3,10,-4,32,-4,64r0,58","w":141,"k":{".":20,",":20}},{"d":"22,12r57,7v1,7,3,12,6,14v5,4,13,5,23,5v13,0,22,-1,29,-5v4,-3,8,-7,10,-13v2,-4,2,-12,2,-23r0,-28v-15,20,-33,31,-56,31v-25,0,-46,-11,-61,-32v-12,-17,-17,-38,-17,-63v0,-32,8,-56,23,-73v15,-17,34,-25,57,-25v23,0,42,11,57,31r0,-27r47,0r0,170v0,22,-1,39,-5,50v-4,11,-9,20,-16,26v-7,6,-15,10,-26,14v-11,4,-26,6,-43,6v-32,0,-55,-6,-68,-17v-13,-11,-20,-25,-20,-42v0,-2,1,-4,1,-6xm66,-98v0,20,4,35,12,44v8,9,17,14,28,14v12,0,23,-5,31,-15v8,-10,13,-23,13,-42v0,-20,-4,-35,-12,-44v-8,-9,-19,-14,-31,-14v-12,0,-21,5,-29,14v-8,9,-12,24,-12,43","w":222},{"d":"16,-196v0,-23,5,-41,15,-52v10,-11,24,-17,42,-17v18,0,32,6,42,17v10,11,16,29,16,52v0,23,-6,41,-16,52v-10,11,-23,17,-41,17v-18,0,-33,-6,-43,-17v-10,-11,-15,-29,-15,-52xm55,-197v0,17,2,29,6,35v3,4,7,6,12,6v5,0,9,-2,12,-6v4,-6,6,-18,6,-35v0,-17,-2,-28,-6,-34v-3,-4,-7,-6,-12,-6v-5,0,-9,2,-12,6v-4,6,-6,17,-6,34xm111,10r-37,0r139,-275r36,0xm192,-58v0,-23,5,-41,15,-52v10,-11,24,-17,42,-17v18,0,32,6,42,17v10,11,16,29,16,52v0,23,-6,41,-16,52v-10,11,-23,16,-41,16v-18,0,-33,-5,-43,-16v-10,-11,-15,-29,-15,-52xm231,-59v0,17,1,28,5,34v3,4,8,7,13,7v5,0,9,-3,12,-7v4,-6,6,-17,6,-34v0,-17,-2,-28,-6,-34v-3,-4,-7,-6,-12,-6v-5,0,-10,2,-13,6v-4,6,-5,17,-5,34","w":323},{"d":"148,-96r0,-44r113,0r0,104v-11,11,-27,20,-48,28v-21,8,-42,12,-63,12v-27,0,-52,-6,-72,-17v-20,-11,-35,-28,-45,-49v-10,-21,-16,-44,-16,-69v0,-27,6,-52,17,-73v11,-21,28,-37,50,-48v17,-9,38,-13,63,-13v32,0,58,6,76,20v18,14,30,33,35,57r-53,9v-4,-13,-10,-23,-20,-30v-10,-7,-23,-11,-38,-11v-23,0,-41,7,-55,22v-14,15,-20,36,-20,65v0,31,6,54,20,69v14,15,32,23,54,23v11,0,22,-2,33,-6v11,-4,21,-10,29,-16r0,-33r-60,0","w":283},{"d":"15,-211r0,-46r171,0r0,36v-14,14,-28,34,-43,60v-15,26,-25,54,-33,83v-8,29,-11,55,-11,78r-49,0v1,-36,9,-73,23,-110v14,-37,33,-71,56,-101r-114,0"},{"d":"27,0r0,-261r51,0r107,174r0,-174r49,0r0,261r-53,0r-105,-170r0,170r-49,0","w":262},{"w":101},{"d":"29,-168r-9,-48r0,-45r54,0r0,45r-8,48r-37,0xm109,-168r-9,-48r0,-45r54,0r0,45r-8,48r-37,0","w":172},{"d":"121,-261r52,0r0,165v0,22,-2,38,-6,50v-5,15,-14,28,-27,37v-13,9,-31,13,-53,13v-26,0,-46,-7,-60,-21v-14,-14,-21,-36,-21,-64r50,-5v1,15,2,25,6,31v6,9,14,14,26,14v12,0,20,-3,25,-10v5,-7,8,-20,8,-41r0,-169"},{"d":"2,-189r54,0r45,134r44,-134r52,0r-67,182r-12,33v-4,11,-9,19,-13,25v-4,6,-8,10,-13,14v-5,4,-11,7,-19,9v-8,2,-17,3,-26,3v-10,0,-19,-1,-28,-3r-4,-40v8,2,15,3,21,3v12,0,19,-3,25,-10v6,-7,10,-15,13,-26","k":{".":27,",":27}},{"d":"26,-168r-10,-48r0,-45r55,0r0,45r-8,48r-37,0","w":86},{"d":"26,-261r53,0r0,142v0,22,1,36,2,43v2,11,8,20,16,26v8,6,20,9,35,9v15,0,25,-3,33,-9v8,-6,12,-13,14,-22v2,-9,2,-23,2,-44r0,-145r53,0r0,137v0,31,-1,54,-4,67v-3,13,-8,23,-16,32v-8,9,-18,17,-31,22v-13,5,-29,7,-50,7v-25,0,-43,-2,-56,-8v-13,-6,-24,-14,-31,-23v-7,-9,-13,-18,-15,-28v-3,-15,-5,-38,-5,-67r0,-139","w":262},{"d":"199,0r-46,0r0,-28v-8,11,-17,19,-27,24v-10,5,-21,8,-32,8v-22,0,-41,-9,-56,-26v-15,-17,-23,-42,-23,-73v0,-32,8,-56,23,-73v15,-17,34,-25,57,-25v21,0,39,8,54,26r0,-94r50,0r0,261xm66,-98v0,20,2,34,8,43v8,13,20,20,34,20v11,0,21,-5,29,-15v8,-10,12,-25,12,-44v0,-22,-3,-36,-11,-46v-8,-10,-18,-15,-30,-15v-12,0,-22,5,-30,14v-8,9,-12,24,-12,43","w":222},{"d":"143,0r-50,0r0,-188v-18,17,-39,30,-64,38r0,-46v13,-4,27,-12,42,-24v15,-12,26,-26,32,-42r40,0r0,262","k":{"1":20}},{"d":"316,-3r38,0v-12,24,-30,42,-55,56v-28,16,-63,24,-103,24v-39,0,-73,-7,-101,-20v-28,-13,-49,-33,-63,-59v-14,-26,-21,-54,-21,-84v0,-33,7,-64,23,-93v16,-29,38,-51,65,-65v27,-14,59,-21,94,-21v30,0,57,5,80,17v23,12,41,29,53,50v12,21,18,45,18,70v0,30,-9,58,-28,82v-23,31,-53,46,-89,46v-10,0,-18,-2,-23,-5v-5,-3,-8,-8,-10,-15v-14,14,-30,20,-48,20v-20,0,-36,-6,-49,-20v-13,-14,-19,-31,-19,-54v0,-28,7,-54,23,-77v19,-28,43,-42,73,-42v21,0,37,9,47,25r4,-20r47,0r-27,127v-2,8,-2,14,-2,16v0,3,1,6,2,7v1,1,3,2,5,2v6,0,13,-4,22,-11v12,-9,22,-21,29,-36v7,-15,11,-31,11,-47v0,-29,-10,-53,-31,-73v-21,-20,-51,-29,-89,-29v-32,0,-59,6,-81,19v-22,13,-40,31,-51,55v-11,24,-17,49,-17,75v0,25,6,48,19,68v13,20,30,36,53,45v23,9,50,14,79,14v28,0,53,-4,73,-12v20,-8,37,-19,49,-35xm124,-76v0,15,3,26,9,33v6,7,14,10,23,10v7,0,13,-2,19,-5v5,-2,9,-6,13,-11v6,-7,11,-17,16,-31v5,-14,7,-27,7,-39v0,-13,-3,-24,-9,-31v-6,-7,-15,-11,-24,-11v-10,0,-19,4,-28,12v-9,8,-16,19,-20,34v-4,15,-6,28,-6,39","w":354},{"d":"12,77v10,-21,17,-38,21,-49v4,-11,8,-24,11,-39v3,-15,6,-29,8,-42v2,-13,2,-26,2,-40v0,-28,-3,-55,-9,-80v-6,-25,-17,-56,-33,-92r34,0v18,25,32,52,42,81v10,29,14,58,14,87v0,25,-3,52,-11,80v-9,32,-24,63,-44,94r-35,0","w":121},{"d":"44,-141r-27,-21v9,-10,17,-18,26,-27v6,-5,6,-6,7,-7v-3,0,-11,-3,-25,-6v-10,-2,-17,-4,-20,-5r10,-32v16,6,30,13,42,21v-3,-19,-4,-35,-4,-47r31,0v0,9,-1,25,-4,48v2,-1,7,-3,15,-7v11,-5,20,-10,29,-13r10,32v-13,3,-29,6,-46,9r21,24v4,5,9,9,11,12r-28,18r-24,-40v-7,13,-15,27,-24,41","w":141},{"d":"15,-145r0,-46r182,0r0,46r-182,0xm15,-66r0,-46r182,0r0,46r-182,0","w":212},{"d":"85,0r0,-216r-77,0r0,-45r207,0r0,45r-77,0r0,216r-53,0","w":222,"k":{"y":27,"w":27,"u":27,"s":27,"r":20,"o":27,"i":7,"e":27,"c":27,"a":27,"O":7,"A":27,";":40,":":40,".":40,"-":20,",":40}},{"d":"14,-69r48,-6v2,12,5,21,12,28v7,7,15,10,25,10v10,0,19,-4,26,-12v7,-8,11,-18,11,-31v0,-13,-4,-23,-11,-30v-7,-7,-14,-11,-24,-11v-6,0,-14,2,-23,4r5,-41v14,0,24,-3,31,-9v7,-6,11,-15,11,-25v0,-9,-3,-16,-8,-21v-5,-5,-12,-8,-21,-8v-9,0,-16,3,-22,9v-6,6,-10,15,-11,26r-46,-8v3,-16,9,-28,15,-37v6,-9,15,-18,27,-23v12,-5,25,-8,39,-8v25,0,44,8,59,24v12,13,18,27,18,43v0,23,-12,41,-37,55v15,3,26,10,35,21v9,11,14,25,14,41v0,23,-8,42,-25,58v-17,16,-38,24,-63,24v-24,0,-42,-6,-58,-20v-16,-14,-25,-31,-27,-53"},{"d":"87,-39r0,-74v-23,-7,-40,-17,-51,-30v-11,-13,-16,-30,-16,-49v0,-19,6,-36,18,-49v12,-13,29,-21,49,-23r0,-18r26,0r0,18v19,2,34,8,45,19v11,11,18,25,21,43r-45,6v-3,-14,-10,-24,-21,-29r0,70v28,8,48,18,58,30v10,12,15,28,15,47v0,21,-6,39,-19,54v-13,15,-31,24,-54,27r0,33r-26,0r0,-32v-20,-2,-37,-10,-50,-23v-13,-13,-21,-31,-25,-54r47,-5v2,9,5,18,10,25v5,7,12,11,18,14xm87,-225v-7,2,-13,6,-17,12v-4,6,-6,12,-6,19v0,6,2,12,6,17v4,5,9,10,17,13r0,-61xm113,-36v9,-2,15,-5,21,-12v6,-7,9,-15,9,-24v0,-8,-2,-14,-7,-20v-5,-6,-12,-10,-23,-13r0,69"},{"d":"22,-189r46,0r0,26v16,-20,36,-30,59,-30v12,0,23,2,32,7v9,5,16,13,22,23v8,-10,16,-18,26,-23v10,-5,20,-7,31,-7v14,0,25,2,35,8v10,6,17,14,22,25v3,8,5,21,5,39r0,121r-50,0r0,-108v0,-19,-2,-31,-5,-36v-5,-7,-11,-11,-21,-11v-7,0,-14,3,-20,7v-6,4,-10,10,-13,18v-3,8,-5,21,-5,39r0,91r-50,0r0,-103v0,-18,0,-31,-2,-36v-2,-5,-4,-9,-8,-12v-4,-3,-10,-4,-16,-4v-8,0,-14,2,-20,6v-6,4,-11,10,-14,18v-3,8,-4,21,-4,39r0,92r-50,0r0,-189","w":323},{"d":"27,-261r104,0v21,0,36,1,46,3v10,2,19,6,27,11v8,5,15,13,20,22v5,9,8,19,8,30v0,12,-3,24,-10,34v-7,10,-15,18,-26,23v16,5,27,12,36,23v9,11,13,24,13,39v0,12,-2,24,-8,35v-6,11,-13,20,-23,27v-10,7,-21,10,-35,12v-9,1,-30,2,-64,2r-88,0r0,-261xm79,-217r0,60r35,0v20,0,33,0,38,-1v9,-1,16,-4,21,-9v5,-5,8,-13,8,-21v0,-8,-3,-14,-7,-19v-4,-5,-11,-8,-20,-9v-5,-1,-20,-1,-45,-1r-30,0xm79,-114r0,70r49,0v19,0,31,-1,36,-2v8,-1,14,-4,19,-10v5,-6,8,-13,8,-22v0,-8,-2,-15,-6,-20v-4,-5,-10,-10,-17,-12v-7,-2,-22,-4,-46,-4r-43,0","w":262},{"d":"261,0r-57,0r-23,-59r-104,0r-21,59r-56,0r101,-261r56,0xm165,-103r-36,-97r-36,97r72,0","w":262,"k":{"y":14,"w":7,"v":14,"Y":33,"W":20,"V":27,"T":27," ":14}},{"d":"133,-67r-45,0r0,-12v0,-15,2,-27,7,-36v5,-9,14,-20,29,-32v15,-12,24,-20,27,-24v4,-6,6,-12,6,-19v0,-10,-4,-18,-12,-25v-8,-7,-18,-10,-31,-10v-13,0,-23,4,-32,11v-9,7,-14,18,-17,33r-46,-6v1,-21,10,-39,27,-54v17,-15,39,-22,66,-22v29,0,51,7,68,22v17,15,26,33,26,53v0,11,-4,21,-10,31v-6,10,-19,23,-39,40v-11,9,-17,16,-20,21v-3,5,-4,15,-4,29xm88,0r0,-50r50,0r0,50r-50,0","w":222},{"d":"196,-30r-179,-77r0,-43r179,-78r0,51r-125,48r125,49r0,50","w":212},{"d":"76,-261r0,96v16,-19,36,-28,58,-28v11,0,22,2,31,6v9,4,16,10,21,17v5,7,7,14,9,22v2,8,3,20,3,37r0,111r-50,0r0,-100v0,-20,-1,-32,-3,-37v-2,-5,-5,-10,-10,-13v-5,-3,-11,-5,-18,-5v-8,0,-15,2,-22,6v-7,4,-12,10,-15,18v-3,8,-4,20,-4,36r0,95r-50,0r0,-261r50,0","w":222},{"d":"27,0r0,-261r52,0r0,103r103,0r0,-103r53,0r0,261r-53,0r0,-114r-103,0r0,114r-52,0","w":262},{"d":"27,0r0,-261r178,0r0,45r-126,0r0,61r109,0r0,44r-109,0r0,111r-52,0","w":222,"k":{"A":20,".":40,",":40}},{"d":"46,-67r-13,-132r0,-62r54,0r0,62r-13,132r-28,0xm35,0r0,-50r50,0r0,50r-50,0","w":121},{"d":"26,0r0,-261r85,0v32,0,52,1,62,4v15,4,28,13,38,26v10,13,15,30,15,51v0,16,-3,29,-9,40v-6,11,-13,20,-22,26v-9,6,-18,10,-27,12v-13,2,-31,4,-55,4r-34,0r0,98r-53,0xm79,-216r0,73r29,0v21,0,34,-1,41,-4v7,-3,13,-6,17,-12v4,-6,6,-13,6,-21v0,-9,-2,-17,-8,-23v-6,-6,-13,-10,-22,-12v-6,-1,-18,-1,-37,-1r-26,0","w":242,"k":{"A":27,".":47,",":47," ":7}},{"d":"113,0r0,-52r-106,0r0,-44r113,-166r42,0r0,166r32,0r0,44r-32,0r0,52r-49,0xm113,-96r0,-89r-60,89r60,0"},{"d":"16,-67r50,-5v1,11,6,20,13,27v7,7,15,9,24,9v10,0,19,-4,26,-12v7,-8,11,-22,11,-39v0,-16,-4,-28,-11,-36v-7,-8,-17,-12,-28,-12v-14,0,-27,6,-38,19r-41,-5r26,-136r132,0r0,47r-94,0r-8,44v11,-6,22,-8,34,-8v22,0,41,8,56,24v15,16,23,37,23,63v0,21,-6,40,-18,57v-17,23,-41,34,-71,34v-24,0,-44,-6,-59,-19v-15,-13,-24,-30,-27,-52"},{"d":"-1,4r65,-269r37,0r-65,269r-37,0","w":101},{"d":"36,-139r0,-50r50,0r0,50r-50,0xm36,0r0,-50r50,0r0,50r-50,0","w":121},{"d":"191,-133r-50,9v-2,-10,-5,-17,-11,-22v-6,-5,-14,-8,-23,-8v-12,0,-22,4,-29,13v-7,9,-12,23,-12,43v0,22,4,39,12,48v8,9,17,14,30,14v9,0,17,-4,23,-9v6,-5,11,-14,13,-27r49,8v-5,23,-15,40,-29,51v-14,11,-34,17,-58,17v-28,0,-50,-9,-66,-26v-16,-17,-25,-41,-25,-72v0,-31,9,-56,25,-73v16,-17,39,-26,67,-26v23,0,40,5,54,15v14,10,24,25,30,45"},{"d":"34,-139r0,-50r50,0r0,50r-50,0xm34,-50r50,0r0,36v0,14,-1,26,-3,34v-2,8,-8,15,-15,22v-7,7,-15,12,-26,16r-10,-20v10,-3,18,-8,22,-14v4,-6,6,-14,6,-24r-24,0r0,-50","w":121},{"d":"17,-60r48,-6v1,10,4,17,9,22v5,5,12,7,20,7v10,0,19,-5,26,-14v7,-9,12,-29,14,-59v-13,15,-28,22,-47,22v-20,0,-38,-8,-53,-24v-15,-16,-22,-36,-22,-61v0,-26,7,-48,23,-64v16,-16,36,-25,60,-25v26,0,48,11,65,31v17,20,26,54,26,101v0,48,-9,82,-27,103v-18,21,-41,32,-69,32v-20,0,-36,-6,-49,-17v-13,-11,-20,-26,-24,-48xm130,-169v0,-16,-5,-29,-12,-38v-7,-9,-15,-13,-25,-13v-9,0,-17,4,-23,11v-6,7,-9,19,-9,36v0,17,3,29,10,37v7,8,14,11,24,11v10,0,18,-3,25,-11v7,-8,10,-18,10,-33"},{"d":"185,-197r-49,6v-1,-10,-4,-17,-9,-22v-5,-5,-11,-8,-19,-8v-11,0,-20,6,-27,15v-7,9,-12,29,-14,59v12,-15,29,-22,47,-22v21,0,38,8,53,24v15,16,22,36,22,61v0,27,-7,48,-23,64v-16,16,-35,24,-60,24v-26,0,-48,-10,-65,-30v-17,-20,-26,-54,-26,-101v0,-48,9,-82,27,-103v18,-21,41,-32,69,-32v20,0,36,6,49,17v13,11,21,27,25,48xm71,-88v0,16,5,29,12,38v7,9,15,13,25,13v9,0,17,-4,23,-11v6,-7,10,-19,10,-35v0,-17,-3,-30,-10,-38v-7,-8,-15,-11,-25,-11v-10,0,-18,3,-25,11v-7,8,-10,18,-10,33"}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+362-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("E=)m_2KeX+{SEhsy`2aHL=L{w;Km)2{Sw;8HX+iI)A4|:~eD:2>^wa[[+m-V^wmF+^e2AZ{(`#}~K;G|Gq&k3=)y^q)q`-YS)w]X+a`lE;&??=a~LqaKY~&(`#}[:+iJ?ZA0kI>|wwGTXq8I8G(q#s]mk@>1ka[D^IZIA+Y]YhZJ5AY~8=mhY#44X-1=LA}eKA[l32ky3#:DpIK[_=seEhLDE^]F5#}|(@mDpI}|_@m[p2]s_2`eXh]I5+LS)D&I_ds[Xdk{?qeyX+:T:D&lX~elwDV63I`q`m[SE#4T5~F~X={s?2{lwh&W_;m4(;1l)wFl_m[S);{l)=aT)+aZwh&l(2`4_={W:+](pIKT_}>h@-a=dL8EpkK35Yi^#GA+w:)X_(`?0V1DWZs2ITFJQ|!Sl[]H~em;q$&by4{t6;Ab_;{(p2Kl_^ZZp;ZS`=A~`h1|_;K1`=sl_D&T_qKe_2a!)^ZF)2{HE@!F5=[yEH!FE+`_:m!FwAe{(a!FwweFEhZV")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":202,"face":{"font-family":"Arial","font-weight":700,"font-stretch":"normal","units-per-em":"364","panose-1":"2 11 7 4 2 2 2 2 2 4","ascent":"291","descent":"-73","x-height":"4","bbox":"-17 -282 354 77","underline-thickness":"38.2129","underline-position":"-19.5508","unicode-range":"U+0020-U+007E"}}));
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2011 The Monotype Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Arial is a trademark of The Monotype Corporation.
 * 
 * Manufacturer:
 * The Monotype Corporation
 * 
 * Designer:
 * Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"2,71r69,-332r71,0r-5,25r-39,0r-59,283r40,0r-6,24r-71,0","w":101},{"d":"58,-224r7,-37r32,0r-7,37r-32,0xm11,0r39,-189r32,0r-39,189r-32,0","w":80},{"d":"25,-60r30,-3v2,15,6,25,12,31v6,6,14,10,23,10v12,0,23,-5,34,-16v16,-16,27,-39,34,-68v-11,8,-21,14,-29,17v-8,3,-16,6,-25,6v-16,0,-30,-5,-43,-16v-17,-14,-25,-34,-25,-60v0,-29,10,-55,29,-76v16,-18,37,-27,61,-27v22,0,39,8,53,24v14,16,22,39,22,68v0,28,-6,56,-15,84v-11,32,-26,57,-45,72v-16,13,-33,18,-53,18v-18,0,-33,-5,-44,-16v-11,-11,-18,-28,-19,-48xm67,-163v0,16,4,29,13,39v9,10,19,15,31,15v9,0,18,-3,27,-9v9,-6,16,-15,22,-27v6,-12,10,-24,10,-37v0,-10,-2,-19,-6,-28v-4,-9,-10,-15,-17,-19v-7,-4,-15,-7,-22,-7v-7,0,-14,2,-21,6v-7,4,-13,10,-19,17v-6,7,-10,15,-13,25v-3,10,-5,18,-5,25"},{"d":"149,-103r6,-29r114,0r-22,106v-14,9,-31,16,-49,22v-18,6,-36,8,-54,8v-38,0,-66,-11,-85,-34v-16,-19,-24,-44,-24,-74v0,-31,7,-60,21,-86v14,-26,31,-45,52,-57v21,-12,44,-18,70,-18v18,0,35,3,50,10v15,7,26,16,34,27v8,11,14,26,17,44r-34,3v-4,-18,-11,-31,-23,-41v-12,-10,-27,-14,-45,-14v-19,0,-36,5,-52,15v-16,10,-30,26,-40,47v-10,21,-14,44,-14,70v0,26,6,47,19,60v13,13,31,20,54,20v23,0,47,-8,73,-23r11,-56r-79,0","w":283},{"d":"16,0r55,-261r188,0r-6,30r-153,0r-18,81r150,0r-6,30r-150,0r-19,90r164,0r-6,30r-199,0","w":242},{"d":"15,0r54,-261r35,0r-48,231r135,0r-6,30r-170,0","k":{"y":7,"Y":33,"W":14,"V":20,"T":27," ":7}},{"d":"0,73r2,-30v7,2,13,3,19,3v7,0,12,-2,16,-5v5,-4,11,-11,17,-22r11,-18r-32,-190r32,0r14,96v3,19,5,37,7,56r85,-152r33,0r-120,214v-12,21,-22,34,-31,41v-9,7,-19,11,-31,11v-7,0,-15,-2,-22,-4","w":182,"k":{".":27,",":27}},{"d":"9,0r3,-26r131,-156r27,-33v5,-7,11,-12,16,-18v-11,1,-20,2,-24,2r-8,0r-10,0r-11,0r-87,0r6,-30r180,0r-3,28r-140,166r-33,38v5,-1,8,-1,10,-1r142,0r-6,30r-193,0","w":222},{"d":"12,0r54,-261r33,0r-21,101v12,-12,23,-20,33,-25v10,-5,21,-8,32,-8v16,0,28,4,37,12v9,8,12,19,12,33v0,7,-1,19,-5,37r-23,111r-33,0r24,-114v3,-17,5,-28,5,-32v0,-6,-2,-11,-6,-15v-4,-4,-10,-6,-18,-6v-12,0,-23,4,-34,10v-11,6,-18,14,-24,25v-6,11,-12,27,-17,51r-17,81r-32,0"},{"w":101,"k":{"Y":7,"A":14}},{"d":"50,71r-71,0r5,-24r39,0r59,-283r-39,0r5,-25r72,0","w":101},{"d":"10,0r54,-261r32,0r-54,261r-32,0","w":80},{"d":"49,-168r2,-49r10,-44r36,0r-9,44r-19,49r-20,0xm108,-168r2,-49r10,-44r36,0r-9,44r-19,49r-20,0","w":129},{"d":"58,-123r-32,0r62,-142r26,0r63,142r-32,0r-44,-106","w":170},{"d":"17,0r34,-164r-29,0r5,-25r29,0r5,-27v3,-13,6,-23,9,-29v3,-6,8,-10,15,-14v7,-4,16,-6,28,-6v8,0,19,2,35,5r-5,28v-11,-3,-21,-4,-28,-4v-6,0,-11,2,-14,5v-3,3,-7,10,-9,22r-4,20r36,0r-5,25r-36,0r-34,164r-32,0","w":101},{"d":"53,-152r7,-37r37,0r-8,37r-36,0xm21,0r7,-36r37,0r-8,36r-36,0","w":101},{"d":"-12,0r125,-132r-74,-129r38,0r34,59v9,16,14,25,15,28r10,20v9,-12,23,-27,41,-46r57,-61r46,0r-126,135r71,126r-37,0r-43,-76v-4,-7,-9,-17,-14,-29v-6,9,-15,18,-24,28r-72,77r-47,0","w":242},{"d":"16,0r55,-261r78,0v19,0,33,2,43,5v14,4,27,10,37,19v10,9,17,21,22,35v5,14,8,30,8,48v0,21,-3,40,-9,57v-6,17,-15,33,-25,46v-10,13,-21,23,-32,30v-11,7,-25,13,-40,17v-12,3,-26,4,-43,4r-94,0xm57,-30r41,0v19,0,36,-2,50,-5v9,-2,17,-5,23,-9v8,-5,16,-12,23,-21v9,-12,17,-25,22,-40v5,-15,8,-32,8,-51v0,-21,-4,-37,-11,-48v-7,-11,-17,-19,-28,-23v-8,-3,-22,-4,-40,-4r-46,0","w":262},{"d":"15,-76r32,-2v-2,10,-3,17,-3,22v0,10,3,17,9,23v6,6,14,9,25,9v8,0,15,-3,21,-6v6,-3,10,-9,14,-16v3,-6,6,-16,9,-30r38,-185r35,0r-40,191v-6,27,-15,46,-28,57v-13,11,-30,17,-50,17v-22,0,-37,-4,-48,-14v-11,-10,-17,-24,-17,-42v0,-8,1,-16,3,-24","w":182},{"d":"21,0r54,-261r35,0r-54,261r-35,0","w":101},{"d":"26,-84r34,-3r-1,9v0,10,2,19,7,27v5,8,12,15,23,20v11,5,23,6,38,6v21,0,37,-4,48,-13v11,-9,16,-19,16,-31v0,-8,-2,-16,-8,-23v-6,-7,-23,-16,-49,-27v-20,-9,-35,-15,-42,-20v-12,-8,-20,-16,-26,-25v-6,-9,-8,-20,-8,-32v0,-13,4,-25,11,-36v7,-11,18,-18,32,-24v14,-6,30,-9,48,-9v21,0,39,4,54,11v15,7,25,16,32,28v7,12,9,23,9,34r0,5r-33,3v0,-7,-1,-13,-2,-17v-2,-7,-6,-14,-11,-19v-5,-5,-12,-8,-21,-11v-9,-3,-18,-5,-29,-5v-19,0,-33,4,-44,13v-8,7,-12,15,-12,26v0,6,2,12,5,17v3,5,8,10,17,15v6,3,21,10,44,20v19,8,32,15,39,20v9,6,17,14,22,23v5,9,8,19,8,30v0,14,-4,27,-13,39v-9,12,-21,21,-36,28v-15,7,-32,9,-52,9v-30,0,-53,-6,-72,-19v-19,-13,-28,-36,-28,-69","w":242},{"d":"113,-109r-7,29v-9,0,-16,2,-23,7v-7,5,-12,12,-16,20v-4,8,-9,22,-13,42v-4,20,-7,33,-9,40v-3,10,-7,18,-12,24v-5,6,-9,11,-14,14v-5,3,-12,6,-19,8v-4,1,-11,2,-21,2r-10,0r6,-28r6,0v10,0,18,-2,22,-4v4,-2,8,-7,11,-13v2,-4,4,-15,8,-33v5,-22,10,-38,13,-47v5,-12,10,-22,17,-29v7,-7,17,-13,28,-17v-9,-5,-16,-11,-20,-17v-4,-6,-5,-15,-5,-26v0,-9,3,-26,8,-51v4,-17,5,-27,5,-32v0,-6,-1,-10,-4,-13v-3,-3,-11,-4,-21,-4r-5,0r6,-28r9,0v11,0,19,0,24,2v7,2,12,6,16,12v4,6,6,14,6,23v0,8,-2,21,-6,39v-6,27,-9,44,-9,51v0,9,3,17,8,22v5,5,12,7,21,7","w":121},{"d":"17,-78r7,-32r98,0r-7,32r-98,0","w":121},{"w":101},{"d":"7,0r5,-25r102,-114v7,-8,15,-16,24,-25v-15,2,-26,2,-33,2r-70,0r6,-27r145,0r-4,21r-102,115v-6,7,-15,15,-26,26v18,-1,30,-1,37,-1r74,0r-6,28r-152,0","w":182},{"d":"33,-109v0,-46,13,-84,40,-113v27,-29,60,-43,98,-43v32,0,60,11,80,32v20,21,30,49,30,85v0,25,-5,48,-15,70v-8,16,-17,30,-29,42v-12,12,-25,22,-38,28v-18,9,-37,12,-57,12v-21,0,-40,-4,-57,-14v-17,-10,-30,-24,-39,-42v-9,-18,-13,-37,-13,-57xm68,-107v0,15,3,29,9,42v6,13,15,23,28,30v13,7,26,11,40,11v13,0,26,-4,38,-10v12,-6,23,-15,33,-26v10,-11,16,-25,22,-42v6,-17,9,-33,9,-49v0,-26,-7,-47,-22,-62v-15,-15,-33,-23,-54,-23v-27,0,-51,12,-72,35v-21,23,-31,55,-31,94","w":283},{"d":"29,-99r0,-36v13,-14,30,-22,50,-22v7,0,14,1,22,3v8,2,19,7,33,13v8,3,15,5,19,6v4,1,8,2,12,2v8,0,16,-2,24,-7v8,-5,16,-10,22,-17r0,37v-8,7,-15,13,-23,16v-8,3,-16,5,-26,5v-7,0,-15,-1,-21,-3v-6,-2,-16,-6,-30,-12v-14,-6,-26,-9,-35,-9v-8,0,-15,2,-22,5v-7,3,-15,9,-25,19","w":212},{"d":"76,-65v1,-11,4,-21,8,-29v4,-8,9,-17,17,-26v5,-5,14,-13,31,-27v17,-14,28,-25,33,-33v5,-8,7,-17,7,-24v0,-9,-4,-17,-12,-24v-8,-7,-18,-11,-30,-11v-14,0,-25,4,-34,12v-9,8,-15,23,-18,43r-32,-5v5,-25,15,-44,30,-57v15,-13,32,-19,53,-19v14,0,27,3,39,9v12,6,21,14,27,24v6,10,9,20,9,31v0,13,-4,25,-13,37v-7,9,-21,23,-44,41v-16,13,-25,23,-30,30v-5,7,-8,16,-10,28r-31,0xm60,0r8,-36r37,0r-8,36r-37,0"},{"d":"102,0r21,-101r-81,-160r38,0r38,77v8,17,17,34,25,53v9,-16,21,-34,36,-53r61,-77r41,0r-124,163r-21,98r-34,0","w":242,"k":{"v":14,"u":14,"q":20,"p":20,"o":20,"i":7,"e":20,"a":27,"A":20,";":14,":":14,".":33,"-":27,",":33," ":7}},{"d":"83,0r48,-231r-86,0r7,-30r205,0r-7,30r-84,0r-49,231r-34,0","w":222,"k":{"y":27,"w":27,"u":27,"s":33,"r":27,"o":33,"i":3,"e":33,"c":33,"a":33,"O":7,"A":27,";":27,":":27,".":33,"-":33,",":33}},{"d":"72,-265v19,41,28,82,28,125v0,29,-3,56,-11,81v-8,25,-19,49,-34,73v-10,16,-27,37,-49,63r-25,0v14,-15,28,-36,44,-63v16,-27,26,-53,33,-79v7,-26,11,-53,11,-79v0,-39,-7,-79,-21,-121r24,0","w":121},{"d":"12,0r55,-261r32,0r-34,162r94,-90r43,0r-81,71r49,118r-35,0r-38,-97r-39,34r-13,63r-33,0","w":182},{"d":"61,0r-15,-261r35,0r6,129v0,6,1,23,2,50r0,16r0,18v14,-30,25,-51,31,-63r79,-150r36,0r9,153v1,17,2,38,2,63v2,-6,6,-15,11,-27r20,-42r74,-147r35,0r-132,261r-38,0r-8,-158v-1,-14,-2,-30,-2,-50v-7,16,-13,30,-18,39r-91,169r-36,0","w":343,"k":{"i":3,"e":7,"a":7,"A":7,".":14,"-":7,",":14}},{"d":"82,-143v-10,-5,-17,-13,-22,-21v-5,-8,-7,-17,-7,-27v0,-16,6,-30,17,-43v15,-18,36,-28,62,-28v23,0,41,7,54,19v13,12,19,27,19,45v0,13,-3,24,-10,34v-7,10,-19,18,-34,24v10,7,18,14,23,21v6,10,8,21,8,34v0,23,-7,44,-24,62v-17,18,-39,28,-66,28v-22,0,-40,-7,-54,-21v-14,-14,-21,-30,-21,-50v0,-19,5,-35,15,-49v10,-14,23,-23,40,-28xm85,-189v0,11,3,20,10,27v7,7,17,10,30,10v15,0,27,-5,36,-14v9,-9,14,-20,14,-33v0,-11,-4,-19,-11,-26v-7,-7,-17,-11,-30,-11v-9,0,-18,3,-26,7v-8,4,-14,10,-18,18v-4,8,-5,15,-5,22xm60,-64v0,7,2,14,5,21v3,7,9,12,16,16v7,4,15,6,24,6v17,0,31,-9,42,-25v9,-13,13,-26,13,-41v0,-12,-4,-22,-12,-30v-8,-8,-18,-11,-31,-11v-16,0,-30,6,-41,18v-11,12,-16,27,-16,46"},{"d":"-18,4r140,-269r27,0r-140,269r-27,0","w":101},{"d":"42,-213r8,-25v19,7,32,12,41,17v-2,-21,-3,-36,-3,-44r25,0v0,12,-2,26,-4,44v12,-6,26,-12,42,-17r8,25v-15,5,-30,8,-44,10v7,6,18,18,31,34r-22,15v-7,-9,-15,-22,-24,-38v-9,17,-16,29,-23,38r-21,-15v14,-17,23,-29,29,-34v-15,-3,-29,-6,-43,-10","w":141},{"d":"109,0r14,-66r-106,0r6,-32r146,-163r27,0r-35,166r36,0r-5,29r-37,0r-14,66r-32,0xm129,-95r22,-109r-97,109r75,0"},{"d":"12,0r40,-189r29,0r-7,33v13,-13,24,-22,35,-28v11,-6,23,-9,34,-9v15,0,27,4,36,12v9,8,13,20,13,34v0,7,-1,18,-4,33r-24,114r-33,0r25,-120v2,-12,4,-19,4,-25v0,-6,-2,-12,-6,-16v-4,-4,-11,-6,-19,-6v-16,0,-31,6,-44,18v-13,12,-22,32,-28,61r-19,88r-32,0"},{"d":"46,-168r2,-49r10,-44r36,0r-9,44r-19,49r-20,0","w":69},{"d":"-1,0r83,-96r-48,-93r36,0r16,34r16,36r54,-70r40,0r-80,96r48,93r-35,0r-19,-38v-4,-8,-9,-19,-14,-31r-56,69r-41,0","w":182},{"d":"33,77r0,-342r28,0r0,342r-28,0","w":94},{"d":"181,-25v-15,12,-27,20,-38,24v-11,4,-22,7,-35,7v-24,0,-44,-7,-58,-21v-14,-14,-21,-32,-21,-53v0,-14,3,-25,8,-36v5,-11,13,-20,24,-29v8,-6,20,-13,36,-20v-6,-14,-10,-23,-11,-28v-2,-7,-3,-13,-3,-21v0,-10,3,-20,9,-30v6,-10,13,-18,23,-24v10,-6,22,-9,34,-9v17,0,30,5,40,15v10,10,15,21,15,35v0,12,-4,23,-13,35v-9,12,-25,24,-51,37v16,28,30,51,44,69v9,-11,17,-23,25,-37r28,14v-8,16,-18,32,-32,48r30,36r-25,19v-12,-10,-21,-20,-29,-31xm128,-167v17,-9,30,-19,37,-28v5,-6,8,-12,8,-19v0,-7,-2,-13,-7,-18v-5,-5,-11,-7,-18,-7v-8,0,-16,3,-22,10v-6,7,-9,15,-9,24v0,11,4,24,11,38xm162,-50v-22,-29,-40,-55,-52,-78v-16,8,-27,15,-34,22v-10,10,-15,22,-15,35v0,14,5,25,14,34v9,9,21,14,34,14v18,0,35,-9,53,-27","w":242},{"d":"205,-153r-172,0r0,-30r172,0r0,30xm205,-74r-172,0r0,-30r172,0r0,30","w":212},{"d":"139,-23v-11,10,-22,17,-32,21v-10,4,-21,6,-33,6v-17,0,-31,-5,-42,-15v-11,-10,-16,-23,-16,-39v0,-11,2,-20,7,-28v5,-8,11,-15,19,-20v8,-5,18,-9,29,-11v7,-1,22,-2,42,-3v20,-1,34,-3,43,-6v2,-9,4,-16,4,-22v0,-7,-3,-14,-8,-18v-7,-6,-19,-9,-33,-9v-14,0,-24,3,-33,9v-9,6,-15,15,-19,26r-33,-3v7,-19,18,-33,32,-43v14,-10,33,-15,55,-15v23,0,41,6,55,17v10,8,16,19,16,32v0,10,-2,22,-5,35r-10,47v-3,15,-5,27,-5,36v0,6,1,15,4,26r-33,0v-2,-6,-3,-14,-4,-23xm151,-96v-5,2,-9,3,-14,4v-5,1,-14,2,-26,3v-19,2,-32,4,-40,7v-8,3,-13,6,-17,12v-4,6,-6,11,-6,18v0,9,3,17,9,23v6,6,16,8,27,8v11,0,21,-2,31,-8v10,-6,17,-14,23,-24v6,-10,10,-24,13,-43"},{"d":"18,-72v0,-37,10,-67,32,-91v18,-20,42,-30,71,-30v23,0,41,7,55,21v14,14,21,34,21,58v0,22,-5,41,-14,60v-9,19,-21,33,-37,43v-16,10,-33,15,-51,15v-15,0,-28,-3,-40,-9v-12,-6,-22,-16,-28,-27v-6,-11,-9,-25,-9,-40xm50,-75v0,18,4,32,13,41v9,9,19,13,32,13v7,0,14,-1,21,-4v7,-3,13,-7,19,-13v6,-6,10,-12,14,-19v4,-7,8,-16,10,-24v4,-12,6,-22,6,-33v0,-17,-4,-31,-13,-40v-9,-9,-20,-14,-33,-14v-10,0,-19,2,-27,7v-8,5,-16,12,-23,21v-7,9,-11,20,-14,32v-3,12,-5,23,-5,33"},{"d":"20,-68r31,-4v2,18,8,31,16,39v8,8,19,12,32,12v16,0,29,-6,41,-17v12,-11,17,-24,17,-39v0,-13,-4,-24,-13,-32v-9,-8,-20,-13,-35,-13v-2,0,-5,1,-10,1r6,-27v3,0,6,1,9,1v18,0,32,-4,42,-13v10,-9,15,-20,15,-33v0,-12,-4,-23,-12,-31v-8,-8,-18,-12,-30,-12v-11,0,-22,5,-31,13v-9,8,-15,20,-18,35r-31,-6v5,-21,15,-38,30,-50v15,-12,32,-18,52,-18v21,0,39,7,52,20v13,13,20,28,20,47v0,14,-4,26,-11,36v-7,10,-18,19,-32,26v10,6,18,13,23,22v5,9,7,18,7,29v0,23,-9,44,-26,61v-17,17,-39,25,-63,25v-24,0,-42,-6,-57,-19v-15,-13,-22,-31,-24,-53"},{"d":"88,-212r-35,-49r39,0r21,49r-25,0","w":121},{"d":"10,17r33,3v0,7,1,13,3,17v2,4,5,6,9,8v6,3,14,4,23,4v19,0,33,-5,42,-15v6,-7,10,-21,15,-44r3,-15v-17,17,-34,25,-53,25v-19,0,-35,-7,-48,-21v-13,-14,-19,-34,-19,-60v0,-21,5,-40,15,-58v10,-18,22,-31,36,-40v14,-9,28,-14,43,-14v25,0,45,12,58,35r6,-31r29,0r-38,182v-4,20,-9,36,-16,47v-7,11,-16,20,-28,26v-12,6,-26,10,-42,10v-15,0,-28,-2,-39,-6v-11,-4,-19,-9,-24,-17v-5,-8,-9,-16,-9,-26v0,-3,0,-7,1,-10xm50,-84v0,13,2,23,4,30v4,9,8,15,15,20v7,5,14,8,22,8v11,0,22,-4,32,-11v10,-7,19,-19,25,-35v6,-16,10,-30,10,-44v0,-16,-4,-28,-13,-37v-9,-9,-19,-14,-32,-14v-8,0,-16,2,-23,6v-7,4,-14,10,-20,19v-6,9,-12,19,-15,31v-3,12,-5,21,-5,27"},{"d":"151,-64r31,3v-5,16,-15,30,-31,44v-16,14,-36,21,-58,21v-14,0,-26,-3,-38,-9v-12,-6,-21,-17,-27,-29v-6,-12,-9,-26,-9,-42v0,-21,4,-41,14,-60v10,-19,22,-34,37,-43v15,-9,31,-14,49,-14v23,0,41,7,54,21v13,14,21,33,21,57v0,9,-1,19,-3,29r-139,0v0,4,-1,7,-1,10v0,18,5,31,13,40v8,9,17,14,29,14v11,0,22,-4,33,-11v11,-7,19,-17,25,-31xm57,-111r106,0r0,-7v0,-16,-4,-28,-12,-37v-8,-9,-18,-13,-31,-13v-14,0,-26,5,-37,14v-11,9,-20,24,-26,43"},{"d":"142,-69r33,4v-8,24,-20,41,-35,52v-15,11,-32,17,-51,17v-20,0,-36,-7,-49,-20v-13,-13,-20,-31,-20,-55v0,-21,5,-41,13,-61v8,-20,20,-35,35,-45v15,-10,32,-16,52,-16v20,0,36,6,48,17v12,11,18,27,18,46r-32,2v0,-12,-3,-21,-10,-28v-7,-7,-16,-11,-27,-11v-13,0,-25,5,-34,13v-9,8,-17,20,-22,37v-5,17,-8,33,-8,48v0,16,4,28,11,36v7,8,16,12,26,12v10,0,20,-4,30,-12v10,-8,17,-20,22,-36","w":182},{"d":"15,-65r32,-1v0,9,2,16,5,23v3,7,7,12,15,16v8,4,17,6,27,6v14,0,25,-2,32,-8v7,-6,11,-12,11,-20v0,-6,-3,-11,-7,-16v-4,-5,-15,-11,-32,-18v-17,-7,-27,-13,-32,-16v-8,-5,-14,-10,-18,-17v-4,-7,-6,-14,-6,-23v0,-15,5,-27,17,-38v12,-11,29,-16,50,-16v24,0,42,5,54,16v12,11,20,26,20,44r-32,2v0,-11,-4,-20,-12,-27v-8,-7,-18,-10,-32,-10v-11,0,-20,3,-26,8v-6,5,-9,10,-9,16v0,6,3,11,8,16v4,3,12,8,27,14v25,11,41,19,47,25v10,10,15,22,15,36v0,9,-3,19,-9,28v-6,9,-14,16,-26,21v-12,5,-26,8,-42,8v-22,0,-40,-5,-55,-16v-15,-11,-23,-29,-22,-53","w":182},{"d":"141,-34v-23,26,-46,38,-70,38v-15,0,-26,-4,-35,-12v-9,-8,-13,-19,-13,-31v0,-8,2,-22,6,-41r23,-109r32,0r-26,121v-2,10,-3,17,-3,23v0,7,3,13,7,17v4,4,11,6,19,6v9,0,17,-3,26,-7v9,-4,16,-10,22,-17v6,-7,12,-17,16,-27v3,-7,6,-18,9,-34r17,-82r32,0r-39,189r-30,0"},{"d":"-4,72r55,-261r30,0r-6,27v11,-11,21,-20,30,-24v9,-4,17,-7,27,-7v18,0,33,7,45,20v12,13,18,32,18,56v0,20,-3,38,-10,54v-7,16,-15,29,-24,39v-9,10,-19,16,-29,21v-10,5,-20,7,-30,7v-23,0,-40,-11,-52,-34r-22,102r-32,0xm60,-77v0,14,1,24,3,29v3,8,7,14,14,19v7,5,15,7,24,7v18,0,34,-10,45,-31v11,-21,17,-42,17,-64v0,-16,-4,-28,-12,-37v-8,-9,-17,-13,-28,-13v-8,0,-16,2,-23,6v-7,4,-13,11,-19,20v-6,9,-11,19,-15,31v-4,12,-6,24,-6,33"},{"d":"16,0r54,-261r43,0r27,169v3,22,5,44,6,64v7,-18,20,-41,37,-71r91,-162r43,0r-54,261r-34,0r27,-127v6,-29,15,-62,27,-98v-7,17,-17,35,-28,55r-97,170r-33,0r-27,-167v-2,-15,-4,-34,-5,-54v-3,23,-5,42,-8,55r-35,166r-34,0","w":303},{"d":"12,0r40,-189r28,0r-8,39v10,-15,20,-26,29,-33v9,-7,18,-10,28,-10v6,0,15,2,24,7r-13,30v-6,-4,-12,-6,-19,-6v-11,0,-22,6,-34,19v-12,13,-21,34,-28,67r-16,76r-31,0","w":121,"k":{".":14,"-":7,",":20}},{"d":"12,0r54,-261r33,0r-20,94v10,-9,20,-16,28,-20v8,-4,17,-6,26,-6v18,0,32,7,44,20v12,13,18,32,18,57v0,17,-2,32,-7,46v-5,14,-11,26,-18,35v-7,9,-15,16,-22,22v-7,6,-15,10,-23,13v-8,3,-15,4,-22,4v-12,0,-24,-3,-33,-10v-9,-7,-17,-16,-22,-30r-8,36r-28,0xm60,-77r0,6v0,16,3,28,11,36v8,8,18,13,29,13v11,0,22,-4,31,-12v9,-8,17,-20,23,-37v6,-17,9,-32,9,-46v0,-16,-3,-28,-11,-37v-8,-9,-18,-13,-29,-13v-12,0,-22,4,-32,13v-10,9,-17,23,-24,42v-5,14,-7,26,-7,35"},{"d":"-23,72r0,-23r212,0r0,23r-212,0"},{"d":"88,0r41,-197v-18,14,-43,26,-75,34r6,-29v16,-6,31,-15,47,-25v16,-10,27,-19,35,-27v5,-5,10,-11,14,-18r19,0r-55,262r-32,0","k":{"1":27}},{"d":"52,-152r7,-37r36,0r-7,37r-36,0xm20,0r7,-36r37,0r-7,31v-4,19,-10,33,-18,42v-8,9,-19,15,-30,16r3,-14v14,-4,23,-17,28,-39r-20,0","w":101},{"d":"58,-224r7,-37r32,0r-7,37r-32,0xm-44,71r6,-27v7,2,13,3,19,3v7,0,13,-2,17,-7v4,-5,8,-17,12,-38r40,-191r32,0r-41,197v-5,25,-10,41,-17,50v-9,12,-22,18,-38,18v-8,0,-18,-2,-30,-5","w":80},{"d":"48,0r-20,-189r31,0r9,85r3,48v0,4,1,10,1,21r9,-28v0,0,7,-15,12,-27r45,-99r35,0r6,95v1,14,2,33,2,57v6,-16,16,-38,29,-66r41,-86r32,0r-92,189r-34,0r-7,-111v0,-7,-1,-20,-1,-40v-5,13,-10,26,-17,41r-50,110r-34,0","w":262,"k":{".":20,",":20}},{"d":"81,2v-17,-4,-32,-12,-43,-26v-11,-14,-18,-31,-19,-51r32,-2v1,14,5,25,11,34v6,9,14,16,24,19r21,-98v-14,-6,-25,-12,-31,-17v-9,-7,-15,-16,-20,-25v-5,-9,-7,-19,-7,-29v0,-19,8,-36,23,-50v15,-14,34,-21,57,-21r7,0r3,-14r18,0r-3,16v16,4,29,11,38,22v9,11,14,24,16,42r-30,2v-2,-11,-5,-19,-10,-25v-5,-6,-11,-11,-20,-14r-19,89v24,10,41,20,50,32v9,12,13,25,13,39v0,14,-4,27,-12,41v-8,14,-19,23,-32,29v-13,6,-28,10,-45,10v-1,0,-3,-1,-5,-1r-6,31r-18,0xm113,-153r18,-85v-9,0,-17,1,-25,5v-8,4,-15,8,-19,15v-4,7,-6,15,-6,23v0,9,3,16,7,23v4,7,13,13,25,19xm123,-116r-20,95v16,1,30,-4,41,-14v11,-10,16,-23,16,-37v0,-9,-3,-17,-8,-24v-5,-7,-14,-13,-29,-20"},{"d":"17,0r55,-261r109,0v22,0,38,2,49,6v11,4,20,10,26,20v6,10,10,23,10,38v0,21,-7,39,-21,53v-14,14,-36,23,-67,27v9,7,16,13,21,20v11,15,20,32,27,48r19,49r-38,0r-19,-49v-7,-18,-14,-32,-23,-45v-6,-9,-12,-15,-18,-18v-6,-3,-16,-4,-30,-4r-41,0r-24,116r-35,0xm82,-144r48,0v22,0,37,0,44,-1v13,-1,24,-4,32,-9v8,-5,15,-10,20,-18v5,-8,6,-17,6,-26v0,-8,-2,-13,-5,-19v-3,-6,-7,-10,-13,-12v-6,-2,-16,-3,-29,-3r-85,0","w":262,"k":{"Y":14,"W":7,"V":7,"T":7}},{"d":"12,0r39,-189r33,0r-7,31v12,-13,23,-22,32,-27v9,-5,20,-8,31,-8v12,0,21,3,29,9v8,6,14,15,16,26v10,-12,19,-20,30,-26v11,-6,21,-9,33,-9v16,0,28,4,36,11v8,7,12,18,12,32v0,6,-1,15,-4,28r-26,122r-32,0r26,-125v2,-10,3,-18,3,-22v0,-6,-1,-10,-5,-14v-4,-4,-10,-6,-17,-6v-10,0,-19,3,-29,9v-10,6,-18,14,-24,23v-6,9,-10,23,-14,43r-19,92r-32,0r26,-127v2,-9,3,-15,3,-19v0,-6,-2,-11,-6,-15v-4,-4,-9,-6,-15,-6v-9,0,-18,3,-28,9v-10,6,-19,14,-25,24v-6,10,-11,26,-15,45r-19,89r-32,0","w":303},{"d":"220,-92r34,5v-11,30,-27,53,-48,68v-21,15,-44,23,-70,23v-32,0,-56,-10,-75,-29v-19,-19,-28,-47,-28,-83v0,-47,14,-85,42,-116v25,-27,57,-41,94,-41v28,0,50,7,67,22v17,15,27,35,30,60r-33,3v-3,-19,-10,-33,-21,-42v-11,-9,-24,-14,-41,-14v-32,0,-58,14,-78,42v-17,24,-25,53,-25,87v0,27,6,47,19,61v13,14,31,22,52,22v18,0,34,-6,49,-18v15,-12,25,-29,32,-50","w":262},{"d":"18,0r54,-261r34,0r44,98v13,30,24,56,32,76v5,12,9,28,15,48v3,-22,8,-45,13,-68r32,-154r33,0r-54,261r-34,0r-65,-151v-11,-27,-21,-50,-27,-70v-2,17,-5,38,-10,63r-33,158r-34,0","w":262},{"d":"21,0r8,-36r36,0r-8,36r-36,0","w":101},{"d":"51,10r215,-275r29,0r-214,275r-30,0xm35,-180v0,-5,2,-13,4,-23v2,-10,5,-19,9,-27v4,-8,10,-14,15,-19v5,-5,11,-8,17,-10v6,-2,13,-4,21,-4v17,0,29,5,38,13v9,8,12,21,12,37v0,14,-2,28,-8,43v-6,15,-14,27,-24,34v-10,7,-22,10,-36,10v-16,0,-27,-4,-35,-13v-8,-9,-13,-22,-13,-41xm63,-175v0,10,1,18,5,22v4,4,9,6,15,6v7,0,15,-3,21,-9v6,-6,11,-15,14,-28v3,-13,5,-23,5,-32v0,-8,-2,-15,-6,-19v-4,-4,-9,-6,-16,-6v-7,0,-13,2,-19,8v-6,6,-10,14,-14,26v-4,12,-5,23,-5,32xm194,-45v0,-5,2,-13,4,-23v2,-10,5,-19,9,-27v4,-8,9,-14,14,-19v5,-5,12,-8,18,-10v6,-2,12,-3,20,-3v17,0,29,4,38,12v9,8,13,22,13,38v0,14,-2,28,-8,43v-6,15,-14,26,-24,33v-10,7,-22,11,-36,11v-16,0,-27,-5,-35,-14v-8,-9,-13,-22,-13,-41xm222,-39v0,10,1,17,5,21v4,4,9,6,15,6v7,0,15,-2,21,-8v6,-6,10,-15,14,-28v4,-13,5,-24,5,-33v0,-8,-2,-15,-6,-19v-4,-4,-9,-6,-16,-6v-7,0,-13,2,-19,8v-6,6,-10,15,-14,27v-4,12,-5,22,-5,32","w":323},{"d":"20,0r7,-36r37,0r-7,31v-4,19,-10,33,-18,42v-8,9,-19,15,-30,16r3,-14v14,-4,23,-17,28,-39r-20,0","w":101},{"d":"206,-29v-8,9,-16,16,-26,21v-10,5,-18,9,-28,9v-11,0,-21,-4,-31,-10v-10,-6,-18,-15,-24,-28v-6,-13,-10,-27,-10,-42v0,-19,5,-38,15,-57v10,-19,22,-33,36,-42v14,-9,28,-15,42,-15v10,0,20,3,29,8v9,5,17,14,24,25r6,-28r32,0r-25,120v-4,17,-6,25,-6,27v0,3,2,7,4,9v2,2,6,3,9,3v6,0,14,-4,24,-11v14,-9,25,-22,33,-38v8,-16,11,-32,11,-49v0,-20,-5,-39,-15,-56v-10,-17,-25,-31,-45,-41v-20,-10,-43,-15,-67,-15v-28,0,-53,6,-76,19v-23,13,-40,32,-53,56v-13,24,-19,50,-19,78v0,29,6,54,19,75v13,21,31,36,55,46v24,10,50,15,79,15v31,0,57,-5,78,-15v21,-10,37,-23,47,-38r32,0v-6,12,-16,25,-31,38v-15,13,-32,22,-52,30v-20,8,-44,12,-73,12v-26,0,-51,-4,-73,-11v-22,-7,-41,-16,-57,-30v-16,-14,-27,-29,-35,-47v-10,-22,-15,-46,-15,-72v0,-29,6,-57,18,-83v14,-32,34,-57,61,-74v27,-17,59,-25,97,-25v29,0,56,6,79,18v23,12,41,29,55,53v11,20,18,43,18,67v0,34,-13,65,-37,92v-22,24,-44,36,-70,36v-8,0,-15,-2,-20,-4v-5,-2,-9,-6,-11,-11v-2,-3,-3,-8,-4,-15xm120,-77v0,16,4,29,12,38v8,9,16,13,26,13v7,0,14,-2,21,-6v7,-4,14,-9,21,-17v7,-8,13,-18,17,-30v4,-12,6,-24,6,-36v0,-16,-4,-29,-12,-38v-8,-9,-18,-13,-29,-13v-8,0,-14,2,-21,6v-7,4,-14,9,-20,18v-6,9,-11,19,-15,31v-4,12,-6,24,-6,34","w":369},{"d":"59,77v-19,-41,-28,-83,-28,-126v0,-29,3,-55,11,-80v8,-25,19,-49,34,-73v10,-16,27,-37,49,-63r25,0v-14,15,-29,36,-44,63v-15,27,-26,53,-33,79v-7,26,-11,52,-11,78v0,39,7,80,21,122r-24,0","w":121},{"d":"15,0r55,-261r35,0r-23,109r135,0r23,-109r34,0r-54,261r-35,0r26,-123r-135,0r-26,123r-35,0","w":262},{"d":"-7,0r147,-261r41,0r43,261r-33,0r-13,-75r-105,0r-42,75r-38,0xm88,-102r86,0r-10,-65v-4,-26,-7,-48,-8,-65v-6,15,-15,33,-26,53","w":242,"k":{"y":3,"w":7,"v":7,"Y":27,"W":7,"V":20,"T":27," ":14}},{"d":"31,4r16,-75r-30,0r0,-27r35,0r13,-64r-48,0r0,-27r54,0r15,-76r27,0r-16,76r56,0r16,-76r27,0r-16,76r31,0r0,27r-36,0r-13,64r49,0r0,27r-55,0r-15,75r-27,0r15,-75r-55,0r-16,75r-27,0xm79,-98r56,0r13,-64r-56,0"},{"d":"25,-109v9,0,17,-2,24,-7v7,-5,13,-12,17,-21v3,-7,7,-21,11,-41v4,-20,8,-33,10,-40v3,-10,8,-18,12,-24v4,-6,9,-11,14,-14v5,-3,12,-6,19,-8v4,-1,10,-1,20,-1r10,0r-6,28r-5,0v-10,0,-18,2,-22,4v-4,2,-8,6,-10,11v-2,5,-6,16,-10,34v-5,23,-10,41,-14,51v-4,10,-10,19,-16,25v-6,6,-15,13,-27,18v9,4,15,9,19,16v4,7,6,15,6,26v0,9,-3,26,-8,51v-4,17,-6,28,-6,33v0,5,1,7,3,10v1,2,4,4,7,5v3,1,10,2,21,2r-6,28r-10,0v-11,0,-18,-1,-23,-3v-7,-2,-12,-6,-16,-12v-4,-6,-6,-13,-6,-22v0,-8,3,-25,8,-51v4,-20,6,-32,6,-39v0,-9,-2,-17,-7,-22v-5,-5,-12,-8,-21,-8","w":121},{"d":"17,-78r7,-32r98,0r-7,32r-98,0","w":121},{"d":"53,0v3,-18,9,-38,18,-63v11,-30,25,-60,43,-89v18,-29,38,-55,60,-76r-130,0r6,-29r167,0r-6,29v-28,25,-53,57,-74,96v-25,45,-42,89,-51,132r-33,0"},{"d":"75,4r-44,-269r25,0r44,269r-25,0","w":101},{"d":"17,0r54,-261r169,0r-6,30r-134,0r-18,83r137,0r-6,30r-137,0r-25,118r-34,0","w":222,"k":{"A":27,".":47,",":47," ":7}},{"d":"21,0v3,-16,8,-29,14,-39v6,-10,13,-21,23,-30v10,-9,29,-25,57,-47v17,-13,28,-24,34,-30v9,-9,15,-18,19,-27v3,-6,5,-13,5,-20v0,-12,-5,-22,-13,-30v-8,-8,-19,-13,-31,-13v-12,0,-23,5,-32,13v-9,8,-16,22,-20,41r-31,-5v3,-23,12,-42,27,-55v15,-13,33,-20,55,-20v15,0,28,4,40,10v12,6,22,15,28,26v6,11,9,22,9,34v0,17,-7,34,-19,50v-8,10,-30,30,-67,59v-16,13,-27,23,-35,31v-8,8,-14,15,-18,22r117,0r-6,30r-156,0"},{"d":"16,0r54,-261r81,0v15,0,26,1,33,2v12,2,21,6,29,11v8,5,15,11,19,20v4,9,6,18,6,29v0,14,-3,27,-11,38v-8,11,-21,19,-37,25v14,5,25,12,32,21v7,9,10,21,10,33v0,14,-4,28,-12,41v-8,13,-19,23,-33,30v-14,7,-28,11,-45,11r-126,0xm82,-149r53,0v25,0,43,-4,54,-12v11,-8,17,-21,17,-36v0,-7,-2,-14,-5,-19v-3,-5,-8,-9,-14,-11v-6,-2,-17,-4,-33,-4r-55,0xm57,-30r59,0v16,0,27,0,32,-1v11,-2,20,-5,27,-10v7,-5,12,-11,16,-18v4,-7,6,-15,6,-23v0,-12,-4,-22,-12,-28v-8,-6,-22,-10,-43,-10r-66,0","w":242},{"d":"139,-27v-18,21,-37,31,-57,31v-18,0,-33,-7,-45,-20v-12,-13,-18,-32,-18,-57v0,-23,5,-44,14,-63v9,-19,22,-34,36,-43v14,-9,28,-14,42,-14v23,0,41,11,53,34r22,-102r32,0r-55,261r-29,0xm51,-79v0,13,1,23,4,31v3,8,7,14,13,19v6,5,14,7,23,7v15,0,28,-7,40,-22v16,-20,23,-45,23,-75v0,-15,-3,-27,-11,-35v-8,-8,-18,-13,-30,-13v-8,0,-15,3,-21,6v-6,3,-13,9,-19,17v-6,8,-11,18,-15,31v-4,13,-7,24,-7,34"},{"d":"60,0r-31,-189r31,0r16,104v2,11,4,30,7,56v6,-13,13,-29,23,-46r64,-114r34,0r-109,189r-35,0","w":182,"k":{".":27,",":27}},{"d":"104,-42r0,-72r-71,0r0,-29r71,0r0,-71r30,0r0,71r71,0r0,29r-71,0r0,72r-30,0","w":212},{"d":"16,0r54,-261r109,0v19,0,33,3,42,7v9,4,18,12,24,22v6,10,9,22,9,35v0,11,-3,22,-7,33v-4,11,-9,21,-16,28v-7,7,-14,12,-21,16v-7,4,-14,6,-22,8v-17,4,-33,6,-50,6r-65,0r-23,106r-34,0xm79,-135r57,0v22,0,39,-2,49,-7v10,-5,19,-12,25,-22v6,-10,10,-21,10,-32v0,-9,-2,-16,-5,-21v-3,-5,-8,-8,-14,-11v-6,-3,-18,-4,-35,-4r-67,0","w":242,"k":{"A":27,".":47,",":47," ":14}},{"d":"41,-66r19,-141r12,-54r39,0r-13,58r-37,137r-20,0xm20,0r8,-36r36,0r-7,36r-37,0","w":101},{"d":"95,0r-50,-261r34,0r30,156v6,28,9,51,11,68v11,-22,20,-40,27,-53r93,-171r35,0r-142,261r-38,0","w":242,"k":{"y":7,"u":7,"r":7,"o":14,"i":7,"e":14,"a":14,"A":20,";":7,":":7,".":27,"-":14,",":27}},{"d":"87,-26r-5,26v-8,2,-15,3,-22,3v-13,0,-23,-3,-31,-9v-6,-5,-9,-12,-9,-20v0,-4,2,-13,5,-28r23,-110r-25,0r5,-25r25,0r10,-46r37,-22r-15,68r32,0r-5,25r-32,0r-22,104v-3,13,-4,21,-4,24v0,4,1,7,3,9v2,2,6,3,11,3v7,0,13,-1,19,-2","w":101},{"d":"33,-114r0,-30r172,-73r0,32r-137,56r137,57r0,32","w":212},{"d":"73,-151v9,-7,18,-13,27,-17v9,-4,18,-5,27,-5v20,0,36,6,49,20v13,14,19,31,19,54v0,30,-10,55,-29,76v-17,18,-36,27,-60,27v-22,0,-40,-7,-54,-23v-14,-16,-22,-39,-22,-68v0,-26,5,-53,14,-81v7,-21,17,-39,27,-53v10,-14,21,-24,33,-31v12,-7,25,-10,40,-10v18,0,33,6,44,17v11,11,17,27,19,48r-30,2v-2,-14,-6,-24,-12,-30v-6,-6,-14,-10,-23,-10v-10,0,-19,5,-29,12v-10,7,-18,18,-25,33v-7,15,-12,28,-15,39xm62,-73v0,15,5,27,14,37v9,10,20,15,31,15v8,0,16,-3,25,-9v9,-6,17,-16,23,-28v6,-12,10,-25,10,-37v0,-16,-4,-28,-13,-38v-9,-10,-20,-15,-32,-15v-14,0,-28,7,-40,21v-12,14,-18,32,-18,54"},{"d":"134,-21v-18,17,-36,25,-53,25v-18,0,-32,-7,-44,-20v-12,-13,-18,-32,-18,-57v0,-23,4,-44,13,-63v9,-19,22,-34,36,-43v14,-9,29,-14,44,-14v11,0,22,4,31,10v9,6,17,16,23,29r7,-35r28,0r-54,261r-33,0xm50,-77v0,19,4,33,12,42v8,9,18,13,29,13v10,0,19,-4,29,-12v10,-8,19,-20,25,-36v6,-16,9,-32,9,-47v0,-15,-4,-27,-12,-36v-8,-9,-18,-14,-29,-14v-11,0,-21,4,-29,11v-11,9,-20,24,-26,42v-5,14,-8,26,-8,37"},{"d":"25,-74r33,-4r0,9v0,8,2,15,6,23v4,8,9,15,16,19v7,4,13,6,21,6v10,0,21,-3,31,-10v10,-7,19,-17,25,-30v6,-13,10,-27,10,-40v0,-15,-4,-26,-13,-35v-9,-9,-20,-13,-34,-13v-9,0,-19,2,-27,7v-8,5,-16,11,-23,20r-28,-2r39,-133r127,0r-6,29r-99,0r-19,67v7,-5,14,-9,22,-12v8,-3,16,-4,24,-4v20,0,36,7,49,20v13,13,19,31,19,54v0,20,-4,38,-13,55v-9,17,-21,30,-36,39v-15,9,-32,13,-50,13v-15,0,-28,-3,-39,-10v-11,-7,-20,-16,-26,-28v-6,-12,-9,-23,-9,-35r0,-5"},{"d":"16,0r55,-261r34,0r-26,126r142,-126r49,0r-121,107r88,154r-38,0r-76,-132r-54,47r-18,85r-35,0","w":242},{"d":"205,-114r-172,74r0,-32r136,-57r-136,-56r0,-32r172,73r0,30","w":212},{"d":"220,-21v9,10,21,20,36,30r-16,21v-16,-10,-29,-23,-42,-38v-18,8,-35,13,-51,13v-13,0,-27,-2,-42,-7v-15,-5,-28,-13,-38,-23v-10,-10,-19,-22,-25,-37v-6,-15,-8,-33,-8,-52v0,-23,4,-44,13,-65v7,-17,16,-32,28,-44v12,-12,24,-22,38,-29v18,-9,38,-13,59,-13v32,0,59,11,79,32v20,21,31,49,31,85v0,26,-6,50,-17,72v-11,22,-26,41,-45,55xm199,-43v14,-11,26,-27,35,-46v9,-19,13,-40,13,-61v0,-26,-8,-48,-22,-63v-14,-15,-32,-23,-53,-23v-18,0,-35,5,-51,15v-16,10,-29,25,-39,45v-10,20,-14,42,-14,65v0,29,9,52,27,68v14,12,30,19,46,19v13,0,25,-2,35,-6v-11,-10,-22,-18,-33,-24r12,-22v8,3,15,7,21,12v6,5,14,12,23,21","w":283},{"d":"72,-261r35,0r-33,161v-3,13,-5,23,-5,29v0,14,6,25,17,34v11,9,25,13,42,13v13,0,26,-4,37,-10v11,-6,20,-14,27,-26v7,-12,13,-31,18,-57r30,-144r35,0r-32,153v-5,26,-13,47,-22,62v-9,15,-21,28,-37,37v-16,9,-34,14,-55,14v-20,0,-37,-3,-51,-10v-14,-7,-25,-16,-32,-27v-7,-11,-11,-24,-11,-39v0,-9,2,-25,7,-47","w":262},{"d":"26,-85v0,-22,3,-45,10,-68v7,-23,14,-40,22,-54v8,-14,16,-24,25,-32v9,-8,17,-13,25,-17v8,-4,18,-6,28,-6v20,0,37,8,50,23v13,15,20,36,20,64v0,29,-5,57,-14,85v-11,33,-27,58,-46,75v-15,13,-32,19,-51,19v-20,0,-36,-8,-49,-23v-13,-15,-20,-37,-20,-66xm57,-77v0,16,3,28,8,37v7,12,18,19,32,19v12,0,24,-6,34,-17v15,-16,26,-39,33,-70v7,-31,11,-56,11,-75v0,-19,-4,-32,-11,-40v-7,-8,-16,-13,-28,-13v-9,0,-17,3,-24,7v-7,4,-14,11,-21,22v-10,15,-18,38,-25,68v-6,26,-9,46,-9,62"},{"d":"52,-152r7,-37r36,0r-7,37r-36,0xm20,0r7,-36r37,0r-7,31v-4,19,-10,33,-18,42v-8,9,-19,15,-30,16r3,-14v14,-4,23,-17,28,-39r-20,0","w":101}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+136-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("+a{mw^7fG)0o+5nX[^&$iai0297m{^0o29;$G)#t{]VgO?f|)9}B#f]kI]14i&mg25;I{N1O#@1;uQfs2RuUka@UI}0=bmnu+)s23&UF+N#o;QSV;NmSw?7l{9]N~Q]U:2;|2?&Zj5%@&aRi;+Kk73b!#J:u])2O{Gw~[I6lS|N}n^t41.zgsoFUx$?fm9Q-BrXV0=E~[:Z?79].[$#Jwu73K|ug!5Si!J7X2RuUka&}7mx~#N;5{ROzu5&)[%U9~:]Kbn&]k%g|Kt7Uwanf+5i|+Jx1b:Zg~%m|KtZgw%mUK^xnw^[fG5xtb)io{|BtwRnUGRk0IQfXG)O4O|BFG?fF2|lE3t[Q[mUo+:V4b?1?Ga0nI^0F25BNw9mV~9SF{21FwmUo{90F{a&4{)&}25BF~^[Vwa0NO)x~Kt74w9]rw90~K^7FwJ}}K9}o[a]?[5Sgw97S[anFw|B4wQ7fw^&s{J}1{^0$+%s1baUX+$s1+)[wOms12]f0~&s122f1+5}l")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":202,"face":{"font-family":"Arial","font-weight":400,"font-style":"italic","font-stretch":"normal","units-per-em":"364","panose-1":"2 11 6 4 2 2 2 9 2 4","ascent":"291","descent":"-73","x-height":"4","bbox":"-44 -278 386 77","underline-thickness":"26.6602","underline-position":"-25.2383","slope":"-12","unicode-range":"U+0020-U+007E"}}));
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2011 The Monotype Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Arial is a trademark of The Monotype Corporation.
 * 
 * Manufacturer:
 * The Monotype Corporation
 * 
 * Designer:
 * Monotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"15,0r54,-261r194,0r-10,44r-139,0r-13,59r135,0r-9,44r-135,0r-16,70r152,0r-10,44r-203,0","w":242},{"w":101},{"d":"16,0r55,-261r53,0r-45,217r133,0r-9,44r-187,0","w":222,"k":{"Y":27,"W":20,"V":20,"T":27," ":7}},{"d":"-3,72r0,-32r207,0r0,32r-207,0"},{"d":"8,-53r49,-8v4,10,10,19,17,23v7,4,15,6,26,6v12,0,21,-3,28,-8v5,-4,8,-8,8,-13v0,-3,-2,-6,-4,-9v-3,-3,-10,-6,-21,-10v-31,-10,-51,-18,-58,-24v-11,-9,-17,-21,-17,-36v0,-15,6,-28,17,-39v16,-15,38,-22,69,-22v24,0,43,4,55,13v12,9,21,21,24,36r-47,8v-2,-7,-6,-12,-12,-15v-8,-5,-17,-7,-28,-7v-11,0,-18,1,-23,5v-5,4,-7,8,-7,13v0,5,2,8,7,11v3,2,13,5,29,10v25,7,42,15,50,22v12,10,18,21,18,35v0,18,-8,34,-23,47v-15,13,-37,19,-64,19v-27,0,-48,-5,-63,-15v-15,-10,-25,-24,-30,-42"},{"d":"70,0r-54,0r55,-261r115,0v20,0,36,3,47,7v11,4,20,11,27,22v7,11,10,24,10,40v0,22,-7,41,-20,55v-13,14,-33,23,-60,26v7,6,13,15,19,25v12,20,25,49,40,86r-58,0v-5,-15,-13,-38,-27,-69v-7,-17,-15,-28,-23,-34v-5,-3,-14,-5,-27,-5r-22,0xm100,-147r29,0v29,0,48,-2,57,-5v9,-3,17,-9,22,-16v5,-7,8,-15,8,-23v0,-9,-3,-17,-11,-22v-5,-3,-15,-4,-31,-4r-59,0","w":262,"k":{"Y":7,"W":7,"T":7}},{"d":"41,-223r8,-38r87,0r-69,333r-87,0r8,-40r39,0r54,-255r-40,0","w":121},{"d":"69,-261r51,0r-10,47r-51,0xm54,-189r51,0r-39,189r-51,0","w":101},{"d":"87,-135r-50,-5v6,-17,16,-30,30,-39v14,-9,33,-14,56,-14v24,0,42,4,54,14v12,10,17,22,17,36v0,6,0,12,-1,18v-1,6,-5,24,-11,51v-5,23,-7,38,-7,47v0,8,1,17,4,27r-50,0v-2,-7,-4,-14,-4,-21v-7,8,-15,15,-25,19v-10,4,-20,6,-30,6v-16,0,-28,-5,-38,-15v-10,-10,-16,-23,-16,-39v0,-18,6,-33,17,-44v11,-11,31,-17,60,-19v24,-2,41,-5,49,-8v2,-7,3,-13,3,-17v0,-5,-3,-9,-7,-13v-4,-4,-10,-6,-19,-6v-9,0,-17,2,-22,6v-5,4,-8,9,-10,16xm135,-88v-3,1,-7,1,-12,2v-26,3,-42,8,-50,14v-6,4,-9,10,-9,17v0,6,3,11,7,15v4,4,10,6,17,6v8,0,14,-1,21,-5v7,-4,13,-9,16,-15v3,-6,6,-15,9,-27"},{"d":"14,0r55,-261r182,0r-9,44r-129,0r-13,63r126,0r-9,43r-126,0r-23,111r-54,0","w":222,"k":{"A":20,".":40,",":40}},{"d":"29,-145r0,-46r183,0r0,46r-183,0xm29,-66r0,-46r183,0r0,46r-183,0","w":212},{"d":"38,-210r9,-47r172,0r-7,36v-11,9,-23,22,-36,40v-13,18,-26,37,-37,59v-11,22,-20,42,-27,62v-10,27,-17,47,-19,60r-48,0v2,-13,7,-31,15,-54v10,-28,21,-55,36,-81v15,-26,32,-51,53,-75r-111,0"},{"d":"166,-261r52,0r-33,158v-9,42,-20,70,-34,85v-14,15,-36,22,-66,22v-25,0,-44,-6,-56,-17v-12,-11,-19,-27,-19,-47v0,-4,0,-9,1,-14r50,-5v-1,5,-1,10,-1,13v0,8,2,15,7,19v5,4,12,7,22,7v14,0,23,-4,29,-12v4,-6,9,-24,15,-53"},{"d":"146,-189r-8,38r-36,0r-31,151r-51,0r31,-151r-28,0r8,-38r28,0r4,-19v3,-16,7,-26,10,-32v4,-8,10,-14,18,-18v8,-4,18,-7,31,-7v16,0,32,3,49,9r-10,36v-12,-4,-21,-6,-29,-6v-6,0,-10,1,-13,5v-2,2,-4,9,-6,19r-3,13r36,0","w":121,"k":{"f":7}},{"d":"16,0r54,-261r71,0v20,0,32,0,37,1v11,1,21,4,29,7v8,3,16,8,23,14v7,6,13,13,18,21v5,8,9,19,12,30v3,11,4,23,4,36v0,28,-5,52,-16,74v-11,22,-25,39,-41,52v-12,10,-28,17,-48,22v-11,3,-28,4,-51,4r-92,0xm78,-42r27,0v20,0,34,-2,43,-4v9,-2,17,-6,24,-13v11,-10,20,-23,27,-39v7,-16,11,-34,11,-56v0,-18,-3,-33,-9,-42v-6,-9,-13,-15,-22,-18v-6,-2,-17,-4,-33,-4r-31,0","w":262},{"d":"14,0r55,-261r53,0r-23,111r121,-111r72,0r-117,103r86,158r-61,0r-64,-124r-51,44r-17,80r-54,0","w":262},{"d":"9,0r9,-41r150,-176r-122,0r9,-44r188,0r-8,41r-151,177r28,0v11,0,27,-1,47,-1r61,0r-9,44r-202,0","w":222},{"d":"22,-78v0,-35,10,-63,30,-84v20,-21,45,-31,77,-31v28,0,50,8,66,23v16,15,23,36,23,62v0,31,-9,57,-29,79v-20,22,-46,33,-79,33v-18,0,-33,-3,-47,-10v-14,-7,-24,-17,-31,-30v-7,-13,-10,-27,-10,-42xm167,-115v0,-12,-3,-22,-10,-29v-7,-7,-16,-11,-27,-11v-11,0,-21,3,-30,10v-9,7,-15,17,-20,30v-5,13,-7,25,-7,36v0,14,4,24,11,32v7,8,17,12,28,12v14,0,26,-6,35,-18v14,-17,20,-38,20,-62","w":222},{"d":"210,-30r-179,-77r0,-43r179,-78r0,51r-125,48r125,49r0,50","w":212},{"d":"31,77r0,-342r40,0r0,342r-40,0","w":101},{"d":"52,-189r49,0r-4,20v10,-9,20,-15,29,-19v9,-4,19,-5,29,-5v20,0,35,6,47,20v12,14,18,34,18,61v0,34,-10,63,-31,86v-18,20,-39,30,-63,30v-25,0,-44,-10,-57,-30r-20,98r-51,0xm83,-81v0,15,4,27,11,35v7,8,15,12,25,12v8,0,17,-3,25,-9v8,-6,14,-17,19,-31v5,-14,8,-27,8,-39v0,-14,-3,-24,-10,-32v-7,-8,-16,-12,-26,-12v-10,0,-19,4,-27,11v-8,7,-14,17,-18,30v-4,13,-7,25,-7,35","w":222},{"w":101,"k":{"Y":7,"A":14}},{"d":"65,-189r50,0r-10,50r-50,0xm36,-49r50,0r-10,49r-50,0","w":121},{"d":"189,0r-48,0r4,-20v-9,9,-18,15,-27,19v-9,4,-20,5,-31,5v-20,0,-35,-7,-47,-20v-12,-13,-18,-33,-18,-59v0,-30,8,-58,25,-82v17,-24,40,-36,68,-36v25,0,44,10,57,30r20,-98r51,0xm71,-77v0,14,3,24,10,32v7,8,15,11,25,11v9,0,18,-3,26,-9v8,-6,15,-16,20,-29v5,-13,7,-26,7,-38v0,-14,-4,-25,-11,-33v-7,-8,-16,-13,-26,-13v-15,0,-27,8,-37,25v-10,17,-14,35,-14,54","w":222},{"d":"12,10r54,8v0,5,0,9,2,12v2,3,5,5,9,7v4,2,9,3,16,3v11,0,19,-2,26,-6v5,-3,9,-9,12,-16v2,-5,4,-14,7,-30r2,-9v-18,15,-36,22,-55,22v-18,0,-33,-7,-45,-20v-12,-13,-18,-32,-18,-57v0,-22,4,-43,12,-61v8,-18,19,-33,34,-42v15,-9,30,-14,45,-14v13,0,24,3,34,10v10,7,19,16,25,28r7,-34r48,0r-33,158v-5,25,-10,43,-14,54v-4,11,-7,19,-12,25v-5,6,-11,12,-18,16v-7,4,-16,8,-26,10v-10,2,-21,3,-32,3v-27,0,-46,-5,-60,-14v-14,-9,-21,-25,-21,-46v0,-2,1,-4,1,-7xm72,-81v0,14,4,25,10,33v6,8,14,11,24,11v9,0,18,-3,26,-10v8,-7,15,-17,19,-29v4,-12,7,-24,7,-36v0,-13,-4,-24,-11,-32v-7,-8,-16,-13,-25,-13v-9,0,-17,4,-25,11v-8,7,-14,18,-19,33v-4,12,-6,23,-6,32","w":222},{"d":"123,-73v-11,0,-19,3,-25,7v-6,4,-12,10,-16,18v-4,8,-9,22,-13,43v-4,21,-8,36,-13,45v-5,9,-11,16,-17,21v-6,5,-15,9,-26,12v-8,2,-20,4,-35,4r-9,0r9,-43v13,0,21,-1,26,-3v5,-2,9,-4,11,-8v2,-2,4,-10,8,-25v7,-26,11,-42,13,-47v4,-10,10,-20,16,-27v6,-7,14,-13,24,-18v-8,-6,-13,-12,-16,-18v-3,-6,-5,-14,-5,-25v0,-4,1,-11,2,-19v4,-23,7,-36,8,-41v1,-5,1,-9,1,-12v0,-3,-1,-5,-2,-7v-1,-2,-4,-4,-7,-5v-3,-1,-11,-2,-23,-2r9,-42r9,0v16,0,29,1,37,4v8,3,15,7,19,13v4,6,6,14,6,24v0,8,-2,21,-6,40v-4,19,-6,32,-6,38v0,10,3,17,7,22v4,5,12,7,23,8","w":141},{"d":"69,4r-41,-269r36,0r41,269r-36,0","w":101},{"d":"109,0r-44,0r-38,-189r50,0r14,83v4,22,5,37,6,44v1,-2,6,-10,13,-23v7,-13,11,-21,13,-24r47,-80r55,0","k":{".":20,",":20}},{"d":"54,-189r51,0r-24,112v-3,13,-4,22,-4,25v0,5,2,10,6,14v4,4,10,6,16,6v5,0,9,-1,13,-3v4,-2,8,-4,13,-7v5,-3,9,-7,13,-12v4,-5,7,-11,10,-18v2,-5,5,-15,8,-27r18,-90r51,0r-39,189r-48,0r6,-26v-21,20,-43,30,-68,30v-16,0,-28,-4,-37,-13v-9,-9,-13,-21,-13,-36v0,-7,2,-20,6,-39","w":222},{"d":"128,0r-53,0r45,-217r-76,0r9,-44r205,0r-9,44r-75,0","w":222,"k":{"y":14,"w":14,"u":7,"s":14,"r":7,"o":14,"i":7,"e":14,"c":14,"a":14,"O":7,"A":27,";":27,":":27,".":27,"-":20,",":27}},{"d":"49,-266r49,0r23,53r-35,0","w":121},{"d":"74,-141r-27,-21v9,-10,18,-18,27,-27v6,-5,6,-6,7,-7v-3,0,-11,-3,-25,-6v-10,-2,-17,-4,-20,-5r10,-32v16,6,30,13,42,21v-3,-19,-4,-35,-4,-47r31,0v0,9,-2,25,-5,48v2,-1,8,-3,16,-7v11,-5,20,-10,29,-13r10,32v-13,3,-29,6,-46,9r21,24v4,5,8,9,10,12r-27,18r-24,-40v-7,13,-16,27,-25,41","w":141},{"d":"55,-189r48,0r-5,25v12,-10,24,-19,34,-23v10,-4,21,-6,33,-6v16,0,28,4,37,13v9,9,13,21,13,36v0,7,-2,19,-6,37r-22,107r-51,0r23,-107v3,-16,5,-26,5,-29v0,-7,-2,-11,-6,-15v-4,-4,-9,-6,-16,-6v-7,0,-16,4,-25,10v-9,6,-17,15,-22,25v-4,7,-8,22,-13,45r-16,77r-51,0","w":222},{"d":"58,0r-69,0r115,-132r-65,-129r56,0r26,49v1,3,1,3,17,36v1,1,1,3,2,5r37,-43r41,-47r67,0r-119,138r64,123r-60,0r-20,-39v-10,-21,-17,-36,-20,-45v-5,7,-17,21,-36,43","w":242},{"d":"223,0r-50,0r-70,-175r-37,175r-50,0r55,-261r50,0r70,175r37,-175r50,0","w":262},{"d":"69,-261r52,0r-10,47r-51,0xm54,-189r52,0r-34,160v-9,46,-17,73,-24,83v-10,15,-26,23,-49,23v-14,0,-27,-2,-39,-6r8,-42v8,2,15,3,21,3v7,0,12,-3,16,-8v4,-5,10,-24,17,-56","w":101},{"d":"101,-53r-46,53r-63,0r87,-97r-48,-92r54,0r28,54r48,-54r62,0r-88,98r48,91r-54,0"},{"d":"23,-60r48,-4v1,10,3,18,7,22v4,4,9,6,16,6v9,0,16,-3,23,-10v10,-10,17,-26,23,-48v-11,7,-22,11,-34,11v-20,0,-37,-7,-50,-21v-13,-14,-20,-32,-20,-56v0,-27,8,-50,25,-71v17,-21,39,-31,67,-31v24,0,43,9,56,27v13,18,19,42,19,72v0,47,-10,87,-31,119v-21,32,-48,48,-82,48v-20,0,-35,-6,-47,-17v-12,-11,-19,-27,-20,-47xm154,-181v0,-14,-3,-24,-8,-30v-5,-6,-12,-10,-20,-10v-10,0,-19,5,-26,14v-10,12,-14,29,-14,50v0,14,3,24,8,30v5,6,11,10,19,10v7,0,13,-2,20,-7v7,-5,11,-13,15,-24v4,-11,6,-22,6,-33"},{"d":"198,-79r-128,0r0,5v0,13,4,22,11,30v7,8,16,12,26,12v17,0,31,-8,40,-26r45,7v-9,18,-20,33,-35,42v-15,9,-32,13,-50,13v-25,0,-46,-8,-62,-24v-16,-16,-24,-37,-24,-63v0,-26,8,-49,22,-69v20,-27,47,-41,83,-41v23,0,41,7,55,21v14,14,21,34,21,60v0,12,-2,23,-4,33xm155,-110v0,-2,1,-4,1,-5v0,-14,-4,-24,-10,-31v-6,-7,-14,-11,-25,-11v-11,0,-20,4,-28,12v-8,8,-14,19,-17,35r79,0"},{"d":"51,-189r48,0r-8,37v18,-27,37,-41,58,-41v7,0,16,1,24,5r-20,42v-5,-2,-10,-2,-15,-2v-9,0,-17,3,-26,10v-9,7,-17,15,-22,26v-5,11,-10,29,-15,53r-12,59r-51,0","w":141,"k":{".":20,",":20}},{"d":"212,0r-48,0r-9,-120r-58,120r-47,0r-24,-189r45,0r14,127r58,-127r47,0r6,127r59,-127r51,0","w":283,"k":{".":14,",":14}},{"d":"143,-71r49,8v-8,22,-20,39,-36,50v-16,11,-35,17,-56,17v-24,0,-43,-7,-57,-21v-14,-14,-21,-34,-21,-59v0,-20,4,-40,13,-58v9,-18,21,-33,38,-43v17,-10,37,-16,57,-16v22,0,40,5,53,17v13,12,20,27,22,46r-48,5v-1,-11,-5,-18,-10,-23v-5,-5,-11,-8,-20,-8v-10,0,-19,5,-28,12v-9,7,-15,17,-20,32v-5,15,-6,29,-6,42v0,11,3,19,8,25v5,6,12,9,20,9v8,0,16,-2,24,-8v8,-6,14,-15,18,-27"},{"d":"23,-85v0,-26,5,-52,14,-79v11,-33,25,-58,42,-74v17,-16,36,-24,57,-24v21,0,38,8,52,23v14,15,20,38,20,67v0,27,-5,54,-15,84v-10,30,-23,53,-40,69v-17,16,-36,23,-57,23v-21,0,-38,-7,-52,-22v-14,-15,-21,-38,-21,-67xm74,-74v0,14,1,23,6,29v5,6,11,9,18,9v9,0,18,-5,25,-14v10,-12,18,-35,26,-69v6,-27,9,-49,9,-65v0,-13,-2,-22,-7,-28v-5,-6,-10,-9,-17,-9v-9,0,-17,4,-24,13v-10,13,-20,35,-27,67v-6,27,-9,50,-9,67"},{"d":"145,0r-57,0r-47,-261r54,0r33,198r108,-198r53,0","w":242,"k":{"y":7,"u":7,"r":7,"o":14,"i":14,"e":14,"a":14,"A":27,";":14,":":14,".":33,"-":14,",":33}},{"d":"14,0r54,-261r51,0r-28,136r66,-64r67,0r-76,69r40,120r-51,0r-26,-87r-34,30r-12,57r-51,0"},{"d":"14,0r55,-261r51,0r-55,261r-51,0","w":101},{"d":"66,0r-51,0r55,-261r51,0r-20,93v11,-9,22,-15,32,-19v10,-4,21,-6,32,-6v15,0,28,4,37,13v9,9,13,20,13,34v0,8,-2,20,-5,36r-23,110r-51,0r24,-113v2,-12,3,-20,3,-23v0,-6,-2,-11,-6,-15v-4,-4,-9,-6,-16,-6v-9,0,-16,3,-24,9v-10,8,-18,18,-23,29v-3,6,-7,21,-12,44","w":222},{"d":"165,0r-51,0r-9,-218r-42,218r-48,0r54,-261r77,0r8,183r88,-183r78,0r-55,261r-49,0r52,-216","w":303},{"d":"43,-265r34,0v10,23,17,46,22,69v5,23,7,44,7,63v0,24,-4,49,-12,73v-8,24,-19,50,-35,75v-10,16,-27,37,-49,62r-38,0v23,-27,40,-52,52,-75v12,-23,21,-48,27,-76v6,-28,9,-55,9,-81v0,-18,-1,-35,-4,-52v-3,-17,-7,-36,-13,-58","w":121},{"d":"24,-119r99,0r-10,50r-99,0","w":121},{"d":"23,-84r51,-3v1,16,3,27,8,33v8,9,23,14,44,14v18,0,30,-4,38,-10v8,-6,12,-14,12,-23v0,-8,-4,-14,-10,-19v-5,-4,-17,-10,-37,-19v-20,-9,-35,-16,-44,-22v-9,-6,-17,-14,-22,-23v-5,-9,-8,-20,-8,-33v0,-22,8,-40,24,-54v16,-14,39,-22,69,-22v31,0,54,8,71,22v17,14,25,33,27,57r-51,2v-1,-12,-6,-22,-14,-29v-8,-7,-19,-10,-34,-10v-15,0,-26,3,-32,8v-6,5,-9,12,-9,20v0,7,3,14,9,19v6,5,18,11,38,20v30,13,49,23,57,31v12,12,19,27,19,46v0,23,-10,43,-28,59v-18,16,-44,24,-76,24v-22,0,-42,-3,-58,-11v-16,-8,-27,-18,-34,-31v-7,-13,-10,-29,-10,-46","w":242},{"d":"87,77r-34,0v-10,-23,-17,-46,-22,-69v-5,-23,-7,-45,-7,-64v0,-24,4,-49,12,-73v8,-24,19,-49,35,-74v10,-16,27,-37,49,-62r39,0v-23,27,-41,52,-53,75v-12,23,-21,49,-27,76v-6,27,-9,55,-9,81v0,18,1,35,4,52v3,17,7,36,13,58","w":121},{"d":"24,-119r99,0r-10,50r-99,0","w":121},{"d":"52,-189r48,0r-4,23v19,-18,38,-27,59,-27v14,0,25,3,33,9v8,6,12,14,14,24v7,-9,16,-18,28,-24v12,-6,25,-9,38,-9v15,0,28,4,36,12v8,8,12,19,12,32v0,7,-2,18,-5,34r-24,115r-51,0r24,-115v3,-14,5,-23,5,-25v0,-5,-2,-9,-5,-12v-3,-3,-8,-5,-14,-5v-13,0,-24,7,-34,20v-7,10,-14,27,-19,51r-18,86r-51,0r24,-114v3,-13,4,-22,4,-26v0,-5,-2,-9,-5,-12v-3,-3,-8,-5,-14,-5v-6,0,-11,2,-17,5v-6,3,-11,8,-15,14v-4,6,-9,13,-12,22v-1,4,-4,14,-7,29r-18,87r-51,0","w":323},{"d":"74,-66r-28,0r16,-133r13,-62r54,0r-14,66xm33,-49r50,0r-10,49r-51,0","w":121},{"d":"76,2v-17,-4,-31,-13,-42,-27v-11,-14,-17,-31,-18,-51r45,-2v2,20,10,34,24,40r16,-79v-19,-8,-32,-19,-41,-32v-9,-13,-13,-27,-13,-41v0,-13,3,-25,10,-37v7,-12,16,-21,29,-28v13,-7,26,-10,37,-10r9,0r3,-15r26,0r-4,18v15,4,28,11,37,22v9,11,14,25,16,42r-44,2v-2,-13,-8,-22,-17,-27r-15,70v21,9,36,19,45,32v9,13,14,28,14,44v0,23,-8,42,-25,58v-17,16,-40,24,-67,24r-6,31r-26,0xm111,-163r13,-65v-10,0,-18,4,-25,10v-7,6,-10,14,-10,23v0,13,8,24,22,32xm124,-106r-15,71v13,-1,24,-5,31,-12v7,-7,11,-16,11,-26v0,-7,-2,-12,-5,-17v-3,-5,-11,-10,-22,-16"},{"d":"42,-65r-25,0r0,-39r32,0r11,-52r-43,0r0,-40r51,0r14,-69r40,0r-14,69r39,0r14,-69r41,0r-14,69r24,0r0,40r-32,0r-11,52r43,0r0,39r-51,0r-14,69r-39,0r13,-69r-39,0r-14,69r-40,0xm100,-156r-10,52r39,0r10,-52r-39,0"},{"d":"55,-168r1,-48r9,-45r55,0r-10,45r-18,48r-37,0","w":86},{"d":"27,-151r8,-38r25,0r6,-30r59,-35r-14,65r31,0r-8,38r-31,0r-16,79v-3,14,-5,23,-5,25v0,4,2,7,4,9v2,2,6,3,13,3v2,0,8,0,17,-1r-8,38v-9,2,-18,2,-27,2v-18,0,-31,-3,-39,-10v-8,-7,-12,-17,-12,-29v0,-6,2,-19,6,-40r16,-76r-25,0","w":121},{"d":"26,-49r51,0r-11,49r-50,0","w":101},{"d":"6,0r7,-34r104,-115r-85,0r9,-40r148,0r-6,31r-105,117r91,0r-9,41r-154,0","w":182},{"d":"220,-113r37,22v-3,7,-7,13,-13,21v-6,8,-11,14,-16,18v7,7,15,16,26,25r-32,33v-4,-2,-9,-6,-15,-11v-6,-5,-12,-9,-16,-14v-9,7,-19,12,-32,17v-13,5,-27,6,-42,6v-27,0,-49,-7,-64,-21v-15,-14,-23,-31,-23,-52v0,-13,3,-26,9,-37v6,-11,14,-21,24,-29v7,-6,18,-14,34,-22v-8,-17,-11,-31,-11,-43v0,-18,7,-34,20,-46v13,-12,30,-19,52,-19v19,0,34,5,45,15v11,10,16,22,16,35v0,11,-5,23,-14,36v-9,13,-24,25,-46,36r25,39v6,9,11,16,15,20v6,-6,13,-16,21,-29xm140,-178v14,-7,24,-14,30,-21v4,-5,6,-11,6,-16v0,-5,-2,-9,-5,-12v-3,-3,-8,-5,-14,-5v-7,0,-12,3,-17,8v-5,5,-7,11,-7,19v0,8,2,16,7,27xm116,-121v-23,12,-35,28,-35,47v0,11,3,20,10,27v7,7,16,10,28,10v14,0,28,-5,43,-15v-18,-22,-33,-45,-46,-69","w":262},{"d":"96,-179r-50,-8v4,-24,13,-42,28,-55v15,-13,34,-20,56,-20v24,0,43,7,57,20v14,13,21,30,21,50v0,10,-3,21,-7,31v-4,10,-11,22,-21,33v-7,8,-18,19,-34,34r-31,30v0,0,-10,11,-15,17r90,0r-10,47r-158,0v2,-13,5,-25,11,-37v6,-12,13,-22,22,-32v9,-10,25,-26,48,-48r34,-33v8,-9,14,-17,17,-24v3,-7,4,-13,4,-18v0,-9,-2,-16,-7,-21v-5,-5,-12,-9,-20,-9v-8,0,-15,4,-21,10v-6,6,-11,17,-14,33"},{"d":"55,-168r1,-48r9,-45r55,0r-10,45r-18,48r-37,0xm120,-168r1,-48r9,-45r55,0r-10,45r-18,48r-37,0","w":172},{"d":"26,-49r51,0r-8,40v-5,23,-13,40,-24,50v-11,10,-24,16,-41,16r5,-24v9,-2,15,-5,20,-10v5,-5,8,-13,10,-23r-24,0","w":101},{"d":"146,0r-54,0r22,-101r-72,-160r57,0r32,74v8,18,13,30,16,38v4,-8,9,-15,15,-24r25,-35r36,-53r63,0r-120,164","w":242,"k":{"v":14,"u":14,"q":14,"p":14,"o":14,"i":14,"e":14,"a":14,"A":27,";":20,":":20,".":33,"-":27,",":33," ":7}},{"d":"24,-92r0,-46v8,-9,18,-16,28,-20v7,-3,16,-5,26,-5v7,0,14,1,21,3v7,2,19,7,37,14v12,5,21,7,28,7v17,0,33,-8,49,-25r0,48v-6,6,-13,11,-23,16v-10,5,-20,8,-29,8v-6,0,-12,-1,-18,-3v-6,-2,-15,-5,-27,-10v-18,-8,-33,-12,-43,-12v-17,0,-33,9,-49,25","w":212},{"d":"30,-189r51,0r13,94v3,24,5,41,5,51v7,-19,16,-40,28,-61r45,-84r54,0r-117,207v-10,17,-16,30,-22,37v-6,7,-12,12,-20,16v-8,4,-17,6,-28,6v-11,0,-23,-2,-37,-6r5,-38v6,2,12,3,18,3v16,0,28,-12,38,-36","k":{".":14,",":14}},{"d":"38,-123r67,-142r40,0r65,142r-51,0r-35,-87r-35,87r-51,0","w":212},{"d":"98,-38r0,-67r-69,0r0,-47r69,0r0,-68r45,0r0,68r69,0r0,47r-69,0r0,67r-45,0","w":212},{"d":"113,-53r-103,0r9,-43r141,-165r44,0r-34,164r31,0r-9,44r-32,0r-11,53r-48,0xm122,-97r16,-81r-68,81r52,0"},{"d":"329,-3r37,0v-12,24,-29,42,-54,56v-28,16,-63,24,-103,24v-39,0,-73,-7,-101,-20v-28,-13,-50,-33,-64,-59v-14,-26,-20,-54,-20,-84v0,-33,7,-64,23,-93v16,-29,38,-51,65,-65v27,-14,59,-21,94,-21v30,0,56,5,79,17v23,12,42,29,54,50v12,21,18,45,18,70v0,30,-9,58,-28,82v-23,31,-54,46,-90,46v-10,0,-17,-2,-22,-5v-5,-3,-8,-8,-10,-15v-14,14,-30,20,-48,20v-20,0,-36,-6,-49,-20v-13,-14,-20,-31,-20,-54v0,-28,8,-54,24,-77v19,-28,43,-42,73,-42v21,0,37,9,47,25r4,-20r47,0r-27,127v-2,8,-2,14,-2,16v0,3,1,6,2,7v1,1,3,2,5,2v6,0,13,-4,22,-11v12,-9,22,-21,29,-36v7,-15,11,-31,11,-47v0,-29,-11,-53,-32,-73v-21,-20,-50,-29,-88,-29v-32,0,-60,6,-82,19v-22,13,-39,31,-50,55v-11,24,-17,49,-17,75v0,25,6,48,19,68v13,20,30,36,53,45v23,9,49,14,78,14v28,0,53,-4,73,-12v20,-8,38,-19,50,-35xm136,-76v0,15,4,26,10,33v6,7,13,10,22,10v7,0,13,-2,19,-5v5,-2,10,-6,14,-11v6,-7,11,-17,16,-31v5,-14,7,-27,7,-39v0,-13,-4,-24,-10,-31v-6,-7,-14,-11,-23,-11v-10,0,-19,4,-28,12v-9,8,-16,19,-20,34v-4,15,-7,28,-7,39","w":354},{"d":"204,-94r54,8v-11,29,-27,52,-48,67v-21,15,-46,24,-74,24v-32,0,-57,-10,-75,-29v-18,-19,-27,-48,-27,-84v0,-30,7,-56,19,-81v12,-25,29,-43,50,-56v21,-13,44,-20,69,-20v28,0,52,8,69,23v17,15,27,35,30,61r-51,5v-3,-15,-8,-26,-16,-33v-8,-7,-19,-10,-33,-10v-15,0,-28,5,-41,14v-13,9,-23,23,-31,42v-8,19,-12,38,-12,57v0,21,5,38,15,49v10,11,23,17,38,17v14,0,26,-5,38,-14v12,-9,20,-22,26,-40","w":262},{"d":"69,-261r54,0r-30,142r-7,35v0,3,-1,5,-1,8v0,10,4,19,12,26v8,7,19,10,33,10v13,0,24,-3,32,-8v8,-5,14,-11,19,-21v5,-10,9,-26,14,-49r30,-143r54,0r-30,143v-6,30,-14,53,-22,69v-8,16,-20,29,-37,39v-17,10,-38,14,-63,14v-30,0,-54,-7,-70,-22v-16,-15,-24,-34,-24,-57v0,-5,0,-10,1,-16v0,-4,3,-14,7,-32","w":262},{"d":"15,0r54,-261r89,0v19,0,33,1,41,2v13,2,23,6,32,11v9,5,15,12,20,21v5,9,7,19,7,30v0,14,-4,26,-12,37v-8,11,-20,19,-37,24v13,4,23,11,31,20v8,9,12,20,12,32v0,16,-5,30,-14,44v-9,14,-20,25,-36,31v-16,6,-38,9,-65,9r-122,0xm101,-155r40,0v18,0,32,-1,40,-4v8,-3,14,-7,18,-13v4,-6,6,-12,6,-19v0,-7,-1,-12,-5,-16v-4,-4,-10,-8,-17,-9v-4,-1,-13,-1,-28,-1r-41,0xm77,-42r52,0v22,0,36,-1,43,-4v7,-3,14,-8,18,-14v4,-6,7,-13,7,-20v0,-9,-4,-16,-10,-22v-6,-6,-17,-8,-32,-8r-64,0","w":262},{"d":"33,-180v0,-23,6,-42,18,-59v12,-17,30,-26,52,-26v15,0,26,5,35,14v9,9,14,23,14,40v0,14,-3,28,-9,42v-6,14,-14,24,-25,31v-11,7,-23,10,-36,10v-15,0,-26,-5,-35,-14v-9,-9,-14,-22,-14,-38xm71,-176v0,6,0,11,3,14v3,3,6,4,11,4v9,0,16,-6,22,-19v6,-13,8,-27,8,-41v0,-5,-1,-9,-4,-12v-3,-3,-7,-5,-11,-5v-5,0,-9,2,-13,6v-4,4,-8,12,-11,24v-3,12,-5,22,-5,29xm86,11r-41,0r217,-276r41,0xm196,-41v0,-23,6,-42,18,-59v12,-17,29,-26,51,-26v15,0,27,5,36,14v9,9,14,23,14,40v0,14,-4,28,-10,42v-6,14,-14,24,-25,31v-11,7,-22,10,-35,10v-15,0,-27,-5,-36,-14v-9,-9,-13,-22,-13,-38xm233,-37v0,6,1,10,4,13v3,3,6,5,11,5v9,0,15,-7,21,-20v6,-13,9,-26,9,-40v0,-5,-1,-10,-4,-13v-3,-3,-7,-4,-11,-4v-5,0,-9,2,-13,6v-4,4,-7,12,-11,24v-4,12,-6,22,-6,29","w":323},{"d":"32,-102v0,-15,2,-32,7,-49v6,-23,15,-42,27,-59v12,-17,28,-30,47,-40v19,-10,41,-15,65,-15v32,0,58,10,78,30v20,20,29,47,29,80v0,27,-6,53,-19,79v-13,26,-31,46,-53,60v-22,14,-47,21,-75,21v-24,0,-45,-6,-61,-17v-16,-11,-28,-25,-35,-41v-7,-16,-10,-32,-10,-49xm85,-103v0,18,5,33,16,45v11,12,25,18,43,18v14,0,29,-4,42,-14v13,-10,24,-25,33,-44v9,-19,13,-38,13,-56v0,-20,-6,-37,-17,-49v-11,-12,-25,-17,-42,-17v-26,0,-48,12,-64,36v-16,24,-24,52,-24,81","w":283},{"d":"195,-116r-101,0r-25,116r-53,0r54,-261r54,0r-21,101r101,0r21,-101r53,0r-54,261r-54,0","w":262},{"d":"210,-197r-48,4v-1,-10,-4,-18,-8,-22v-4,-4,-9,-6,-16,-6v-9,0,-16,3,-23,10v-10,10,-17,26,-23,48v11,-7,23,-11,35,-11v20,0,37,7,50,21v13,14,19,32,19,56v0,19,-4,36,-13,53v-9,17,-20,29,-34,37v-14,8,-29,12,-44,12v-15,0,-27,-4,-39,-11v-12,-7,-21,-18,-27,-32v-6,-14,-9,-33,-9,-56v0,-47,9,-87,30,-119v21,-32,48,-49,82,-49v19,0,35,5,46,16v11,11,19,27,22,49xm79,-77v0,14,3,24,8,31v5,7,12,10,20,10v10,0,19,-5,26,-14v10,-12,14,-29,14,-50v0,-14,-3,-24,-8,-30v-5,-6,-12,-10,-20,-10v-7,0,-12,2,-19,7v-7,5,-12,13,-16,24v-4,11,-5,21,-5,32"},{"d":"31,-30r0,-50r125,-49r-125,-48r0,-50r179,77r0,43","w":212},{"d":"192,-5v-8,3,-17,5,-26,7v-9,2,-19,3,-28,3v-32,0,-57,-10,-77,-30v-20,-20,-29,-46,-29,-78v0,-26,6,-52,18,-79v12,-27,30,-48,52,-62v22,-14,48,-21,76,-21v32,0,58,10,78,30v20,20,29,47,29,80v0,25,-5,50,-16,73v-11,23,-24,42,-42,56v11,11,23,20,36,27r-26,34v-17,-8,-31,-22,-45,-40xm196,-63v11,-11,19,-25,26,-42v7,-17,10,-34,10,-49v0,-21,-6,-37,-17,-49v-11,-12,-25,-17,-42,-17v-12,0,-22,3,-32,8v-10,5,-20,13,-28,23v-8,10,-15,23,-20,38v-5,15,-8,30,-8,45v0,20,6,36,17,48v11,12,26,18,43,18v5,0,10,0,15,-1v2,0,3,-1,3,-1v0,0,1,-1,1,-2v0,-1,-1,-3,-5,-6v-7,-7,-16,-13,-24,-16r19,-30v16,8,30,19,42,33","w":283},{"d":"15,-73r10,-43v9,0,15,-2,20,-4v5,-2,10,-6,14,-11v4,-5,7,-11,10,-18v3,-7,6,-18,9,-33v5,-22,9,-38,14,-47v5,-9,10,-16,16,-21v6,-5,16,-9,27,-12v7,-2,19,-3,34,-3r9,0r-9,42v-14,0,-22,1,-26,3v-4,2,-8,4,-10,8v-2,2,-4,11,-8,26v-7,26,-12,42,-14,48v-4,10,-9,19,-15,25v-6,6,-13,13,-24,19v7,5,12,10,15,17v3,7,5,14,5,25v0,4,-1,10,-2,19v-4,23,-6,38,-7,42v-1,4,-2,7,-2,10v0,3,1,6,3,8v2,2,4,4,7,5v3,1,12,2,23,2r-10,43r-9,0v-16,0,-29,-1,-37,-4v-8,-3,-14,-8,-18,-14v-4,-6,-7,-13,-7,-23v0,-8,2,-22,6,-41v4,-19,7,-31,7,-37v0,-10,-3,-18,-7,-23v-4,-5,-13,-7,-24,-8","w":141},{"d":"18,-68r49,-6v2,14,6,24,11,29v5,5,12,8,21,8v12,0,21,-4,29,-12v8,-8,12,-18,12,-30v0,-11,-4,-19,-10,-25v-6,-6,-14,-10,-24,-10v-3,0,-6,1,-9,1r9,-42r5,0v14,0,25,-3,32,-10v7,-7,10,-17,10,-29v0,-8,-2,-14,-7,-19v-5,-5,-11,-8,-19,-8v-7,0,-14,3,-20,8v-6,5,-11,15,-14,28r-46,-9v6,-19,14,-35,25,-45v16,-15,36,-23,59,-23v24,0,42,7,54,20v12,13,19,29,19,48v0,14,-4,26,-12,37v-8,11,-19,19,-33,24v11,6,20,13,25,22v5,9,7,19,7,29v0,19,-6,37,-20,53v-19,22,-43,33,-72,33v-22,0,-40,-5,-54,-18v-14,-13,-24,-31,-27,-54"},{"d":"66,-189r50,0r-10,50r-50,0xm37,-49r51,0r-8,40v-5,23,-13,40,-24,50v-11,10,-24,16,-41,16r5,-24v9,-2,15,-5,20,-10v5,-5,8,-13,10,-23r-24,0","w":121},{"d":"160,-139r117,0r-24,112v-14,9,-30,16,-50,22v-20,6,-41,9,-62,9v-32,0,-57,-6,-74,-21v-23,-20,-35,-49,-35,-87v0,-25,5,-50,15,-73v12,-28,30,-50,52,-65v22,-15,48,-23,78,-23v30,0,55,7,73,21v18,14,30,34,36,61r-50,6v-4,-15,-11,-26,-21,-33v-10,-7,-22,-12,-37,-12v-17,0,-34,5,-48,14v-14,9,-26,23,-34,42v-8,19,-12,39,-12,61v0,22,5,39,15,49v10,10,25,16,44,16v11,0,23,-2,35,-5v12,-3,22,-7,31,-12r8,-39r-66,0","w":283},{"d":"181,-189r47,0r-55,261r-51,0r18,-88v-9,7,-17,13,-25,16v-8,3,-17,4,-27,4v-20,0,-36,-7,-48,-20v-12,-13,-18,-32,-18,-58v0,-20,4,-40,12,-59v8,-19,19,-35,34,-45v15,-10,30,-15,47,-15v27,0,47,11,59,34xm71,-75v0,13,3,23,10,30v7,7,15,11,25,11v9,0,17,-2,25,-8v8,-6,15,-15,20,-29v5,-14,7,-27,7,-39v0,-14,-3,-26,-10,-34v-7,-8,-17,-12,-26,-12v-8,0,-15,4,-23,10v-8,6,-15,16,-20,30v-5,14,-8,28,-8,41","w":222},{"d":"68,0r-53,0r54,-261r106,0v19,0,34,3,45,7v11,4,20,12,26,22v6,10,10,23,10,37v0,13,-3,26,-8,38v-5,12,-12,23,-19,30v-7,7,-15,13,-24,17v-9,4,-20,7,-34,9v-8,1,-24,2,-47,2r-35,0xm98,-143r17,0v28,0,47,-1,56,-5v9,-4,18,-9,23,-17v5,-8,8,-17,8,-26v0,-6,-1,-11,-4,-15v-3,-4,-7,-7,-12,-9v-5,-2,-17,-3,-34,-3r-38,0","w":242,"k":{"A":27,".":47,",":47," ":14}},{"d":"23,-75r50,-4r0,5v0,12,3,21,8,27v5,6,12,9,21,9v12,0,23,-5,33,-17v10,-12,14,-28,14,-48v0,-12,-2,-21,-8,-27v-6,-6,-13,-9,-22,-9v-7,0,-13,1,-19,4v-6,3,-12,8,-18,14r-42,-3r39,-133r131,0r-9,47r-87,0r-12,40v5,-2,10,-4,15,-5v5,-1,10,-2,15,-2v20,0,36,7,49,20v13,13,19,31,19,54v0,18,-4,36,-13,53v-9,17,-22,31,-38,40v-16,9,-32,14,-49,14v-22,0,-41,-7,-55,-21v-14,-14,-22,-34,-22,-58"},{"d":"263,0r-55,0r-5,-191r-95,191r-56,0r-9,-261r52,0r2,183r90,-183r58,0r6,181r86,-181r52,0","w":343,"k":{"y":7,"u":7,"r":7,"o":7,"i":3,"e":7,"a":7,"A":20,";":14,":":14,".":27,"-":14,",":27}},{"d":"124,-65r-45,0v2,-16,6,-29,14,-41v8,-12,23,-27,46,-47v19,-17,30,-28,33,-33v3,-5,5,-11,5,-16v0,-7,-2,-13,-8,-18v-6,-5,-15,-8,-27,-8v-13,0,-25,4,-33,11v-8,7,-13,19,-17,35r-47,-8v6,-23,18,-42,35,-55v17,-13,38,-20,63,-20v26,0,46,6,60,19v14,13,22,28,22,46v0,10,-3,22,-9,32v-6,10,-23,26,-51,49v-17,14,-28,25,-32,31v-4,6,-7,13,-9,23xm73,-49r51,0r-11,49r-50,0","w":222},{"d":"66,-189r50,0r-10,50r-50,0xm37,-49r51,0r-8,40v-5,23,-13,40,-24,50v-11,10,-24,16,-41,16r5,-24v9,-2,15,-5,20,-10v5,-5,8,-13,10,-23r-24,0","w":121},{"d":"43,-150r10,-45v44,-19,78,-42,102,-67r31,0r-55,262r-51,0r37,-181v-11,7,-22,13,-36,19v-14,6,-27,10,-38,12","k":{"1":27}},{"d":"13,0r55,-261r51,0r-19,88v9,-7,19,-13,27,-16v8,-3,16,-4,26,-4v20,0,36,7,48,20v12,13,18,33,18,58v0,17,-2,34,-8,50v-6,16,-14,29,-23,39v-9,10,-20,18,-30,23v-10,5,-21,7,-32,7v-27,0,-47,-11,-60,-35r-6,31r-47,0xm82,-77v0,13,4,23,11,31v7,8,15,12,25,12v9,0,16,-3,24,-9v8,-6,15,-16,20,-30v5,-14,8,-27,8,-41v0,-13,-4,-23,-11,-31v-7,-8,-15,-12,-25,-12v-13,0,-24,6,-33,18v-13,16,-19,37,-19,62","w":222},{"d":"13,0r54,-261r54,0r-55,261r-53,0","w":101},{"d":"98,34r-8,38r-86,0r69,-333r87,0r-8,40r-39,0r-53,255r38,0","w":121},{"d":"-16,4r129,-269r36,0r-129,269r-36,0","w":101},{"d":"78,-143v-9,-6,-15,-13,-20,-21v-5,-8,-7,-17,-7,-27v0,-11,3,-22,9,-33v6,-11,16,-21,29,-28v13,-7,27,-10,43,-10v23,0,42,7,55,19v13,12,19,27,19,45v0,13,-4,24,-11,34v-7,10,-18,18,-33,24v11,7,19,15,24,24v5,9,8,20,8,32v0,20,-6,38,-19,54v-18,23,-43,35,-75,35v-23,0,-41,-7,-55,-21v-14,-14,-21,-31,-21,-52v0,-17,5,-32,15,-46v10,-14,22,-23,39,-29xm98,-187v0,8,2,15,7,20v5,5,11,7,19,7v9,0,17,-3,24,-10v7,-7,11,-15,11,-24v0,-8,-3,-16,-8,-21v-5,-5,-11,-8,-19,-8v-9,0,-17,4,-24,11v-7,7,-10,15,-10,25xm75,-67v0,10,3,17,8,23v5,6,12,9,21,9v13,0,23,-6,30,-18v7,-12,11,-24,11,-38v0,-9,-2,-15,-8,-21v-6,-6,-12,-9,-21,-9v-11,0,-21,5,-29,15v-8,10,-12,23,-12,39"},{"d":"186,-58r-104,0r-31,58r-55,0r147,-261r60,0r42,261r-51,0xm179,-101r-15,-105r-63,105r78,0","w":262,"k":{"Y":27,"W":20,"V":27,"T":27," ":14}}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+352-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("&9p5!RdM+W$B&[cX,Rowa9a$|vd5pR$B|v}w+W%lp>@InAM`%>E5D.S6D^Efk5},+Wo9]*,&ph%LWR@@f#PK:R%lf>Ek,l>4n[gBW^_ti.cckl,TDope!96d&85*&oE5D.S6p9M6}[Dl,[_=}T}ka`Epflci&A%P-5>[}4$adT_%iAdk,*PAdv>#k>P5>A@XDW}}W571:^^`Lld7!9cM&[a`&8Eg]*PIk.5`LlPI!.57LREc!R,M+[El]WaBp`_l!#c7+#D$i?MX+WnZn`_1+AM1|`KC:l,?,57B&*@Z]AgA+9$ciR$1|[_T!v5@kv61p|g1!57Bpv$1p9oZpWoh|[_1kR,@!9$PS[.^o9#a}&LDd:]-%8*4>W|np+!k,ifK6`ThcRlZgteIbB17EwAM5v?s_=X@${CTnWEkLldZ!v>=!v$kLRd1!8hhLvhB,9>A,[6I!vd6,9c1!`_Z!?dM!Robp8hgpR$w&.bg]97X&wbg&W,!n5bg|>M$kobg||Mg&[hK")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":202,"face":{"font-family":"Arial","font-weight":700,"font-style":"italic","font-stretch":"normal","units-per-em":"364","panose-1":"2 11 7 4 2 2 2 9 2 4","ascent":"291","descent":"-73","x-height":"4","bbox":"-40 -280 389 77","underline-thickness":"38.2129","underline-position":"-19.5508","slope":"-12","unicode-range":"U+0020-U+007E"}}));

/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2006 Microsoft Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Georgia is either a registered trademark or a trademark of Microsoft
 * Corporation in the United States and/or other countries.
 * 
 * Manufacturer:
 * Carter & Cone
 * 
 * Designer:
 * Matthew Carter
 * 
 * License information:
 * http://www.microsoft.com/typography/fonts/
 */
Cufon.registerFont({"w":1317,"face":{"font-family":"Georgia","font-weight":400,"font-stretch":"normal","units-per-em":"2048","panose-1":"2 4 5 2 5 4 5 2 3 3","ascent":"1638","descent":"-410","x-height":"25","bbox":"-151 -1549 2028 444","underline-thickness":"101","underline-position":"-131","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":494},"\u00a0":{"w":494},"!":{"d":"472,-1321v0,33,-11,145,-33,336v-22,191,-41,375,-58,553r-78,0v-15,-178,-33,-362,-55,-553v-22,-191,-32,-303,-32,-336v0,-38,12,-70,36,-96v24,-26,55,-39,92,-39v37,0,68,12,92,38v24,26,36,58,36,97xm481,-115v0,37,-14,69,-41,95v-27,26,-59,40,-96,40v-37,0,-69,-14,-96,-40v-27,-26,-41,-58,-41,-95v0,-37,14,-70,41,-97v27,-27,59,-40,96,-40v37,0,69,13,96,40v27,27,41,60,41,97","w":678},"\"":{"d":"725,-1417v0,27,-9,78,-26,154v-17,76,-37,175,-58,296r-62,0v-15,-99,-32,-193,-51,-282v-19,-89,-29,-145,-29,-168v0,-31,9,-57,28,-79v19,-22,47,-33,85,-33v37,0,65,11,84,33v19,22,29,48,29,79xm343,-1417v0,27,-9,78,-26,154v-17,76,-37,175,-58,296r-61,0v-18,-113,-36,-211,-54,-291v-18,-80,-26,-133,-26,-159v0,-31,9,-57,28,-79v19,-22,47,-33,85,-33v36,0,64,11,83,33v19,22,29,48,29,79","w":843},"#":{"d":"1163,-745r-249,0r-72,251r261,0r0,123r-296,0r-107,371r-111,0r107,-371r-217,0r-107,371r-111,0r107,-371r-214,0r0,-123r249,0r73,-251r-262,0r0,-123r296,0r105,-362r111,0r-105,362r217,0r105,-362r111,0r-105,362r214,0r0,123xm807,-747r-222,0r-74,255r221,0"},"$":{"d":"1018,-580v27,26,47,56,62,91v15,35,23,76,23,124v0,105,-40,192,-120,263v-80,71,-181,111,-302,119r0,282r-82,0r0,-280v-132,-3,-239,-35,-321,-95v-82,-60,-123,-135,-123,-224v0,-39,9,-69,26,-90v17,-21,42,-32,73,-32v35,0,63,8,83,26v20,18,30,39,30,63v0,18,-6,45,-19,81v-13,36,-21,62,-24,75v19,35,52,63,100,84v48,21,106,32,175,33r0,-506r-77,-28v-22,-8,-50,-19,-85,-34v-77,-31,-137,-73,-180,-124v-43,-51,-65,-117,-65,-198v0,-96,40,-177,120,-243v80,-66,176,-100,287,-102r0,-229r82,0r0,229v66,1,124,11,175,29v51,18,92,40,124,67v32,27,56,56,72,88v16,32,25,63,25,93v0,30,-7,55,-21,76v-14,21,-37,32,-69,32v-33,0,-59,-8,-81,-25v-22,-17,-33,-35,-33,-56v0,-25,3,-49,8,-73r14,-65v-2,-4,-9,-11,-20,-21v-11,-10,-25,-20,-40,-29v-17,-9,-39,-18,-66,-25v-27,-7,-57,-11,-88,-11r0,464v26,9,47,18,65,25r66,25v41,16,79,34,114,53v35,19,65,41,92,68xm599,-775r0,-440v-65,0,-119,18,-163,55v-44,37,-66,82,-66,135v0,58,14,104,41,139v27,35,69,63,124,86r30,12xm915,-284v0,-55,-15,-102,-43,-142v-28,-40,-76,-74,-144,-101v-9,-3,-16,-6,-24,-9r-23,-8r0,483v78,-5,136,-27,175,-67v39,-40,59,-91,59,-156","w":1249},"%":{"d":"788,-1083v0,117,-32,208,-95,273v-63,65,-145,97,-245,97v-100,0,-181,-32,-244,-97v-63,-65,-95,-156,-95,-273v0,-111,31,-200,93,-268v62,-68,144,-102,247,-102v102,0,184,34,246,102v62,68,93,157,93,268xm619,-1083v0,-87,-14,-158,-43,-213v-29,-55,-71,-83,-127,-83v-57,0,-101,28,-129,83v-28,55,-42,126,-42,213v0,89,14,161,43,215v29,54,71,81,127,81v56,0,99,-27,128,-81v29,-54,43,-126,43,-215xm1565,-338v0,117,-32,208,-95,273v-63,65,-145,97,-245,97v-100,0,-182,-32,-245,-97v-63,-65,-94,-156,-94,-273v0,-111,30,-200,92,-268v62,-68,145,-102,248,-102v102,0,184,34,246,102v62,68,93,157,93,268xm1396,-338v0,-87,-14,-158,-43,-213v-29,-55,-71,-83,-127,-83v-57,0,-100,28,-128,83v-28,55,-43,126,-43,213v0,89,14,160,43,214v29,54,71,82,127,82v56,0,98,-28,127,-82v29,-54,44,-125,44,-214xm1499,-1424r-1179,1424r-138,0r1176,-1424r141,0","w":1674},"&":{"d":"1454,-828v-39,3,-79,12,-119,24v-40,12,-71,31,-92,58v-14,16,-29,40,-43,71r-51,111r-61,126v-21,41,-47,83,-80,124v27,32,59,66,98,104v39,38,72,65,99,82v27,15,64,28,113,39v49,11,90,17,121,18r0,71r-412,0r-149,-170v-22,24,-48,48,-76,74v-28,26,-58,48,-89,67v-35,20,-70,36,-105,47v-35,11,-76,17,-123,17v-49,0,-98,-7,-147,-21v-49,-14,-93,-38,-133,-69v-39,-31,-70,-70,-94,-118v-24,-48,-36,-105,-36,-172v0,-83,21,-158,65,-225v44,-67,126,-138,245,-213v-54,-71,-96,-133,-126,-185v-30,-52,-45,-110,-45,-175v0,-46,10,-89,28,-127v18,-38,44,-71,77,-100v31,-26,68,-46,112,-61v44,-15,89,-22,134,-22v53,0,101,8,141,25v40,17,73,40,98,67v23,25,42,55,54,88v12,33,18,67,18,100v0,80,-24,149,-74,207v-50,58,-119,109,-206,155v63,85,124,161,184,231r173,206v45,-71,79,-139,104,-202v25,-63,37,-118,37,-166v0,-21,-15,-38,-46,-50v-31,-12,-74,-25,-129,-36r0,-71r535,0r0,71xm747,-1153v0,-68,-15,-121,-45,-157v-30,-36,-73,-54,-128,-54v-31,0,-57,6,-78,19v-21,13,-38,29,-53,48v-13,19,-23,39,-29,60v-6,21,-9,40,-9,57v0,46,12,93,36,140v24,47,61,103,112,170v69,-39,119,-81,149,-126v30,-45,45,-97,45,-157xm825,-228r-209,-258v-78,-94,-140,-173,-187,-238v-54,37,-93,82,-115,132v-22,50,-33,107,-33,172v0,91,25,166,77,226v52,60,121,89,208,89v49,0,97,-10,144,-31v47,-21,85,-52,115,-92","w":1455},"'":{"d":"333,-1417v0,27,-9,78,-26,154v-17,76,-37,175,-58,296r-61,0v-18,-113,-36,-211,-54,-291v-18,-80,-26,-133,-26,-159v0,-31,9,-57,28,-79v19,-22,47,-33,85,-33v36,0,64,11,83,33v19,22,29,48,29,79","w":441},"(":{"d":"701,328v-182,-23,-325,-114,-429,-275v-104,-161,-155,-377,-155,-649v0,-277,51,-496,155,-658v104,-162,247,-254,429,-278r0,83v-128,23,-225,105,-292,245v-67,140,-100,343,-100,610v0,254,33,451,98,592v65,141,163,224,294,248r0,82","w":768},")":{"d":"651,-596v0,272,-51,488,-155,649v-104,161,-247,252,-429,275r0,-82v131,-24,229,-107,294,-248v65,-141,98,-338,98,-592v0,-267,-33,-470,-100,-610v-67,-140,-164,-222,-292,-245r0,-83v182,24,325,116,429,278v104,162,155,381,155,658","w":768},"*":{"d":"882,-1099v0,25,-7,43,-21,54v-14,11,-32,17,-54,17v-15,0,-49,-8,-105,-22v-56,-14,-119,-25,-188,-33v30,41,58,75,84,103r65,70v18,19,32,36,42,51v10,15,15,30,15,47v0,18,-8,34,-24,47v-16,13,-33,20,-51,20v-12,0,-23,-4,-34,-11v-11,-7,-20,-16,-27,-29v-11,-19,-22,-50,-32,-93v-10,-43,-33,-105,-68,-188v-32,79,-54,142,-67,188v-13,46,-24,78,-33,93v-9,13,-17,23,-26,30v-9,7,-21,10,-35,10v-19,0,-35,-6,-51,-19v-16,-13,-24,-29,-24,-48v0,-16,5,-31,14,-45v9,-14,24,-32,43,-53r67,-71v28,-30,55,-64,82,-102v-65,7,-126,18,-182,33v-56,15,-94,22,-111,22v-22,0,-40,-5,-54,-16v-14,-11,-21,-30,-21,-55v0,-23,7,-41,21,-53v14,-12,32,-18,54,-18v20,0,55,7,105,21v50,14,113,25,188,32v-26,-35,-53,-69,-82,-101r-67,-72v-19,-20,-33,-38,-43,-52v-10,-14,-14,-29,-14,-46v0,-18,8,-34,24,-47v16,-13,33,-20,51,-20v12,0,23,3,33,10v10,7,20,17,28,30v9,16,22,51,37,107v15,56,36,114,63,174v30,-68,52,-127,66,-178v14,-51,25,-86,34,-103v7,-13,16,-22,26,-29v10,-7,22,-11,35,-11v19,0,35,6,51,19v16,13,24,29,24,48v0,27,-19,59,-56,96v-37,37,-87,95,-150,175v72,-8,135,-19,188,-33v53,-14,88,-20,105,-20v22,0,40,6,54,18v14,12,21,30,21,53","w":967},"+":{"d":"1173,-497r-451,0r0,451r-127,0r0,-451r-451,0r0,-125r451,0r0,-451r127,0r0,451r451,0r0,125"},",":{"d":"429,-35v0,48,-11,93,-33,136v-22,43,-46,79,-74,110v-29,32,-59,60,-91,85v-32,25,-61,44,-88,58r-46,-67v32,-20,61,-40,86,-60v25,-20,46,-40,62,-60v20,-23,37,-49,51,-76v14,-27,23,-58,27,-93r-51,0v-45,0,-79,-12,-104,-35v-25,-23,-38,-55,-38,-94v0,-28,11,-55,34,-81v23,-26,54,-40,93,-40v57,0,100,20,129,58v29,38,43,91,43,159","w":552},"-":{"d":"681,-465r-596,0r0,-157r596,0r0,157","w":766},"\u00ad":{"d":"681,-465r-596,0r0,-157r596,0r0,157","w":766},".":{"d":"415,-115v0,37,-14,69,-41,95v-27,26,-59,40,-96,40v-37,0,-69,-14,-96,-40v-27,-26,-41,-58,-41,-95v0,-37,14,-70,41,-97v27,-27,59,-40,96,-40v37,0,69,13,96,40v27,27,41,60,41,97","w":552},"\/":{"d":"870,-1523r-691,1947r-130,0r689,-1947r132,0","w":960},"0":{"d":"1027,-934v43,51,74,111,95,180v21,69,32,142,32,217v0,91,-13,171,-39,243v-26,72,-62,132,-107,179v-47,49,-102,85,-166,110v-64,25,-135,37,-214,37v-86,0,-163,-14,-230,-43v-67,-29,-122,-68,-164,-118v-44,-52,-76,-113,-98,-183v-22,-70,-33,-144,-33,-225v0,-79,10,-152,31,-219v21,-67,54,-127,99,-181v43,-52,98,-93,165,-123v67,-30,144,-45,231,-45v91,0,170,15,235,46v65,31,120,72,163,125xm933,-537v0,-159,-27,-282,-81,-369v-54,-87,-129,-131,-222,-131v-95,0,-169,44,-224,131v-55,87,-82,210,-82,369v0,151,26,271,78,363v52,92,128,138,226,138v98,0,173,-46,226,-138v53,-92,79,-212,79,-363","w":1257},"1":{"d":"809,0r-674,0r0,-71v20,-1,51,-5,93,-9v42,-4,72,-8,88,-13v21,-7,37,-18,48,-33v11,-15,16,-37,16,-67r0,-702r-249,0r0,-84r55,0v72,0,137,-13,194,-40v57,-27,97,-55,122,-86r83,0v-2,43,-4,94,-6,152v-2,58,-3,110,-3,156r0,593v0,23,6,44,16,62v10,18,25,32,44,41v17,7,46,14,85,20v39,6,69,9,88,10r0,71","w":880},"2":{"d":"1047,0r-937,0r0,-136v18,-21,43,-44,75,-70v32,-26,70,-53,114,-83v27,-18,59,-38,96,-59r127,-70v53,-28,94,-53,122,-74v28,-21,54,-48,77,-79v15,-21,28,-46,37,-77v9,-31,14,-76,14,-133v0,-83,-22,-144,-67,-183v-45,-39,-102,-59,-172,-59v-43,0,-84,8,-123,25v-39,17,-68,41,-87,71v5,21,10,47,17,76v7,29,11,58,11,86v0,25,-10,47,-31,67v-21,20,-53,30,-94,30v-33,0,-59,-11,-77,-34v-18,-23,-27,-54,-27,-93v0,-36,10,-73,30,-109v20,-36,49,-69,86,-100v37,-30,82,-54,136,-73v54,-19,112,-28,175,-28v137,0,245,30,325,91v80,61,121,143,121,245v0,49,-7,93,-21,133v-14,40,-38,75,-70,106v-35,34,-77,64,-124,88v-47,24,-120,58,-217,101v-58,26,-112,53,-162,81v-50,28,-91,56,-123,83r769,0r0,177","w":1144},"3":{"d":"487,365v-63,0,-120,-7,-172,-23v-52,-16,-97,-37,-134,-64v-37,-27,-67,-57,-87,-92v-20,-35,-30,-70,-30,-107v0,-33,8,-63,24,-89v16,-26,42,-39,77,-39v40,0,70,9,91,29v21,20,32,43,32,68v0,21,-3,48,-10,81v-7,33,-13,56,-17,70v5,6,13,14,25,24v12,10,28,19,46,27v21,10,44,18,67,24v23,6,56,9,99,9v40,0,79,-7,116,-20v37,-13,69,-35,97,-64v29,-31,53,-66,69,-107v16,-41,24,-95,24,-162v0,-36,-4,-72,-12,-107v-8,-35,-21,-66,-42,-92v-21,-26,-48,-47,-84,-61v-36,-14,-81,-21,-136,-21r-131,0r0,-115r87,0v92,0,158,-25,199,-76v41,-51,61,-127,61,-229v0,-83,-20,-147,-59,-189v-39,-42,-95,-63,-167,-63v-35,0,-64,5,-86,13v-22,8,-40,16,-54,24v-17,9,-30,20,-41,31r-24,25r17,78v7,31,10,61,10,89v0,25,-11,47,-32,67v-21,20,-51,29,-92,29v-35,0,-62,-13,-78,-38v-16,-25,-24,-55,-24,-88v0,-35,10,-70,29,-106v19,-36,48,-70,86,-101v38,-31,84,-57,139,-76v55,-19,118,-29,189,-29v82,0,149,13,203,37v54,24,96,53,127,88v30,34,51,70,62,107v11,37,17,69,17,96v0,33,-5,67,-14,101v-9,34,-25,64,-46,93v-23,31,-54,59,-92,85v-38,26,-87,47,-145,63r0,16v37,3,77,12,119,25v42,13,81,33,115,59v35,27,64,62,87,105v23,43,34,98,34,164v0,128,-51,232,-154,312v-103,80,-231,119,-385,119","w":1130},"4":{"d":"1084,-90r-203,0r0,455r-192,0r0,-455r-640,0r0,-154r701,-855r131,0r0,878r203,0r0,131xm689,-221r0,-655r-540,655r540,0","w":1157},"5":{"d":"843,-469v44,35,80,79,109,134v29,55,44,123,44,205v0,143,-49,262,-147,355v-98,93,-222,140,-373,140v-117,0,-215,-28,-296,-83v-81,-55,-121,-120,-121,-193v0,-34,8,-64,25,-89v17,-25,42,-38,77,-38v40,0,70,11,91,32v21,21,32,43,32,68v0,21,-4,48,-11,80v-7,32,-13,56,-17,71v5,5,14,11,26,19v12,8,26,16,43,23v17,7,38,13,63,19v25,6,55,9,88,9v43,0,83,-9,121,-26v38,-17,70,-43,96,-77v29,-37,51,-80,65,-128v14,-48,21,-108,21,-181v0,-94,-27,-171,-79,-233v-52,-62,-121,-93,-206,-93v-53,0,-104,10,-150,30v-46,20,-87,53,-124,100r-67,-26r85,-722r716,0r0,178r-635,0r-52,424v30,-21,70,-42,119,-63v49,-21,102,-32,161,-32v49,0,99,7,151,22v52,15,101,40,145,75","w":1082},"6":{"d":"1075,-461v0,69,-12,134,-37,195v-25,61,-59,112,-101,155v-49,49,-102,85,-161,108v-59,23,-121,35,-185,35v-74,0,-141,-14,-201,-41v-60,-27,-111,-66,-153,-116v-43,-51,-76,-113,-99,-186v-23,-73,-35,-156,-35,-247v0,-238,71,-439,213,-602v142,-163,331,-261,569,-294r18,90r-90,16v-145,47,-256,119,-335,218v-79,99,-131,218,-154,359v57,-50,114,-85,170,-106v56,-21,115,-31,177,-31v111,0,206,43,285,128v79,85,119,192,119,319xm858,-434v0,-108,-24,-195,-74,-260v-50,-65,-117,-98,-200,-98v-50,0,-97,9,-140,28v-43,19,-84,50,-124,94v-1,8,-2,27,-3,56v-1,29,-2,51,-2,68v0,156,26,278,77,366v51,88,118,133,201,133v79,0,143,-34,192,-103v49,-69,73,-164,73,-284","w":1159},"7":{"d":"1029,-1008r-713,1373r-125,0r671,-1270r-393,0v-58,0,-103,1,-136,2v-33,1,-63,8,-90,19v-21,9,-39,30,-55,66v-16,36,-29,82,-38,137r-61,0r0,-392r940,0r0,65","w":1029},"8":{"d":"1117,-376v0,112,-48,208,-145,289v-97,81,-224,121,-381,121v-147,0,-265,-37,-354,-111v-89,-74,-133,-169,-133,-286v0,-86,26,-157,78,-215v52,-58,130,-107,233,-147v-85,-47,-148,-99,-190,-156v-42,-57,-63,-121,-63,-192v0,-109,46,-200,138,-273v92,-73,203,-110,332,-110v129,0,232,35,312,104v80,69,120,156,120,261v0,67,-22,131,-66,191v-44,60,-109,110,-194,149v111,47,191,100,240,157v49,57,73,130,73,218xm875,-1102v0,-81,-25,-147,-73,-198v-48,-51,-110,-77,-185,-77v-75,0,-137,24,-185,73v-48,49,-72,110,-72,183v0,70,27,129,82,178v55,49,152,101,292,156v50,-32,86,-74,108,-127v22,-53,33,-115,33,-188xm917,-329v0,-42,-9,-79,-27,-111v-18,-32,-44,-60,-78,-86v-33,-25,-78,-52,-136,-80v-58,-28,-122,-55,-190,-84v-64,35,-111,78,-141,132v-30,54,-45,115,-45,184v0,98,28,178,86,238v58,60,135,90,231,90v92,0,165,-27,219,-80v54,-53,81,-121,81,-203","w":1221},"9":{"d":"1056,-516v0,116,-18,226,-55,328v-37,102,-89,192,-158,269v-67,76,-150,139,-247,189v-97,50,-205,84,-325,100r-18,-90r90,-16v143,-45,255,-115,336,-209v81,-94,133,-213,156,-358v-55,47,-109,81,-163,103v-54,22,-116,32,-184,32v-109,0,-204,-42,-284,-127v-80,-85,-120,-191,-120,-320v0,-138,47,-254,140,-349v93,-95,207,-142,344,-142v149,0,268,53,356,159v88,106,132,250,132,431xm844,-528v0,-156,-25,-278,-76,-366v-51,-88,-119,-133,-202,-133v-79,0,-143,35,-192,103v-49,68,-73,162,-73,282v0,108,25,195,75,260v50,65,116,98,199,98v52,0,100,-9,143,-28v43,-19,84,-50,121,-92v0,-3,0,-8,1,-16v1,-8,2,-19,2,-34v0,-9,0,-21,1,-34v1,-13,1,-27,1,-40","w":1159},":":{"d":"457,-853v0,37,-14,69,-41,96v-27,27,-59,40,-96,40v-37,0,-69,-13,-96,-40v-27,-27,-41,-59,-41,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm457,-115v0,37,-14,69,-41,95v-27,26,-59,40,-96,40v-37,0,-69,-14,-96,-40v-27,-26,-41,-58,-41,-95v0,-37,14,-70,41,-97v27,-27,59,-40,96,-40v37,0,69,13,96,40v27,27,41,60,41,97","w":640},";":{"d":"457,-853v0,37,-14,69,-41,96v-27,27,-59,40,-96,40v-37,0,-69,-13,-96,-40v-27,-27,-41,-59,-41,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm474,-35v0,48,-10,93,-32,135v-22,42,-47,80,-75,111v-29,32,-59,60,-91,85v-32,25,-61,44,-88,58r-46,-67v32,-20,61,-41,86,-61v25,-20,45,-40,62,-59v20,-23,37,-49,51,-76v14,-27,23,-58,27,-93r-51,0v-45,0,-80,-12,-105,-35v-25,-23,-37,-55,-37,-94v0,-28,11,-55,34,-81v23,-26,54,-40,93,-40v57,0,100,20,129,58v29,38,43,91,43,159","w":640},"\u037e":{"d":"457,-853v0,37,-14,69,-41,96v-27,27,-59,40,-96,40v-37,0,-69,-13,-96,-40v-27,-27,-41,-59,-41,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm474,-35v0,48,-10,93,-32,135v-22,42,-47,80,-75,111v-29,32,-59,60,-91,85v-32,25,-61,44,-88,58r-46,-67v32,-20,61,-41,86,-61v25,-20,45,-40,62,-59v20,-23,37,-49,51,-76v14,-27,23,-58,27,-93r-51,0v-45,0,-80,-12,-105,-35v-25,-23,-37,-55,-37,-94v0,-28,11,-55,34,-81v23,-26,54,-40,93,-40v57,0,100,20,129,58v29,38,43,91,43,159","w":640},"<":{"d":"1118,-22r-925,-481r0,-113r925,-481r0,137r-769,400r769,401r0,137"},"=":{"d":"1163,-683r-1009,0r0,-125r1009,0r0,125xm1163,-311r-1009,0r0,-125r1009,0r0,125"},">":{"d":"1124,-503r-925,481r0,-137r769,-401r-769,-400r0,-137r925,481r0,113"},"?":{"d":"771,-1329v37,39,63,83,81,131v18,48,27,100,27,157v0,123,-39,224,-118,302v-79,78,-187,125,-324,141r0,221r-92,0r0,-379v42,-3,84,-10,125,-20v41,-10,78,-28,111,-51v34,-25,60,-54,79,-89v19,-35,29,-84,29,-147v0,-100,-21,-177,-63,-230v-42,-53,-105,-80,-186,-80v-31,0,-57,4,-80,13v-23,9,-40,18,-51,26v3,16,7,39,13,69v6,30,9,53,9,69v0,25,-11,48,-32,68v-21,20,-52,30,-93,30v-36,0,-62,-12,-77,-37v-15,-25,-23,-53,-23,-86v0,-27,7,-53,22,-79v15,-26,38,-50,69,-74v27,-21,63,-40,109,-55v46,-15,93,-23,142,-23v71,0,133,12,188,34v55,22,100,52,135,89xm531,-115v0,37,-14,69,-41,95v-27,26,-59,40,-96,40v-37,0,-69,-14,-96,-40v-27,-26,-41,-58,-41,-95v0,-37,14,-70,41,-97v27,-27,59,-40,96,-40v37,0,69,13,96,40v27,27,41,60,41,97","w":980},"@":{"d":"1530,119v-67,58,-146,105,-238,141v-92,36,-193,53,-306,53v-101,0,-200,-17,-297,-49v-97,-32,-185,-81,-263,-147v-77,-66,-140,-149,-187,-247v-47,-98,-71,-214,-71,-347v0,-114,21,-225,64,-332v43,-107,104,-203,183,-287v77,-82,172,-148,285,-198v113,-50,236,-76,369,-76v115,0,215,19,300,56v85,37,154,85,208,146v54,60,94,129,121,207v27,78,41,159,41,244v0,163,-45,301,-134,413v-89,112,-202,168,-339,168v-57,0,-105,-14,-144,-42v-39,-28,-61,-69,-66,-120r-7,-2v-32,49,-68,87,-109,116v-41,29,-83,44,-125,44v-27,0,-55,-5,-83,-14v-28,-9,-54,-23,-76,-44v-22,-22,-39,-51,-52,-86v-13,-35,-20,-79,-20,-131v0,-49,12,-103,34,-163v22,-60,52,-118,90,-173v38,-55,88,-103,148,-144v60,-41,125,-61,195,-61v37,0,70,11,99,32v29,21,47,51,54,92r6,0r43,-112r149,0r-189,538v-6,17,-11,36,-15,58v-4,22,-5,38,-5,51v0,34,9,59,26,75v17,16,40,23,67,23v103,0,190,-48,259,-145v69,-97,104,-225,104,-384v0,-79,-12,-151,-37,-218v-25,-67,-62,-127,-113,-178v-49,-51,-110,-91,-184,-120v-74,-29,-159,-44,-254,-44v-91,0,-179,18,-265,53v-86,35,-164,87,-235,156v-69,67,-124,150,-167,249v-43,99,-64,212,-64,337v0,121,17,227,50,319v33,92,80,168,141,230v59,60,129,105,210,135v81,30,168,45,262,45v106,0,200,-14,283,-43v83,-29,157,-70,223,-125xm1182,-742v-9,-54,-24,-93,-45,-118v-21,-25,-51,-37,-91,-37v-43,0,-82,17,-118,51v-36,34,-65,76,-90,123v-26,49,-46,103,-60,161v-14,58,-22,113,-22,162v0,57,6,100,20,130v14,30,37,46,68,46v45,0,86,-16,122,-47v36,-31,70,-76,101,-133","w":1902},"A":{"d":"1421,0r-591,0r0,-71v52,-3,96,-10,130,-20v34,-10,51,-22,51,-37v0,-6,-1,-13,-2,-22v-1,-9,-3,-16,-6,-23r-118,-318r-497,0v-19,47,-34,87,-46,122v-18,52,-17,52,-31,96v-9,29,-15,52,-18,70v-3,18,-5,33,-5,44v0,27,21,47,63,62v42,15,89,23,142,26r0,71r-534,0r0,-71v17,-1,39,-5,65,-11v26,-6,47,-15,64,-26v27,-18,47,-36,62,-56v15,-20,29,-47,43,-82r236,-600r230,-593r80,0r473,1224v10,26,21,47,34,63v13,16,30,32,53,47v15,9,35,17,60,23v25,6,45,10,62,11r0,71xm849,-580r-215,-550r-211,550r426,0","w":1374},"B":{"d":"1104,-661v41,28,76,65,103,110v27,45,41,100,41,165v0,66,-14,123,-43,172v-29,49,-66,89,-112,120v-45,31,-95,54,-151,70v-56,16,-115,24,-175,24r-672,0r0,-71v16,-1,39,-5,70,-9v31,-4,53,-9,66,-15v21,-9,35,-21,44,-37v9,-16,13,-36,13,-61r0,-1020v0,-23,-4,-43,-12,-60v-8,-17,-22,-31,-45,-42v-20,-10,-42,-18,-67,-23v-25,-5,-45,-9,-62,-10r0,-71r655,0v51,0,99,5,145,15v46,10,91,28,133,53v39,23,72,55,97,95v25,40,38,89,38,146v0,50,-9,95,-27,134v-18,39,-43,72,-76,100v-31,27,-65,50,-105,68v-40,18,-83,32,-129,42r0,9v41,5,87,15,137,31v50,16,95,37,134,65xm863,-875v25,-29,41,-60,51,-94v10,-34,15,-74,15,-121v0,-78,-21,-140,-64,-184v-43,-44,-110,-66,-202,-66v-21,0,-49,1,-81,2v-48,2,-48,1,-81,2r0,545r127,0v55,0,101,-7,140,-21v39,-14,71,-35,95,-63xm1001,-422v0,-84,-29,-153,-85,-207v-56,-54,-136,-81,-241,-81v-43,0,-79,1,-108,2v-29,1,-51,1,-66,2r0,500v0,42,17,74,51,95v34,21,81,32,142,32v99,0,175,-29,228,-87v53,-58,79,-143,79,-256","w":1339},"C":{"d":"723,33v-85,0,-165,-17,-243,-50v-78,-33,-147,-81,-207,-144v-59,-63,-107,-139,-142,-229v-35,-90,-53,-193,-53,-306v0,-113,17,-216,52,-308v35,-92,83,-172,144,-239v61,-66,132,-117,215,-153v83,-36,171,-54,265,-54v70,0,133,9,190,26v57,17,111,42,162,73r41,-68r80,0r9,506r-82,0v-11,-49,-27,-103,-48,-161v-21,-58,-46,-106,-75,-146v-32,-45,-70,-80,-114,-106v-44,-26,-94,-39,-151,-39v-65,0,-124,14,-180,43v-56,29,-104,71,-145,127v-39,54,-69,123,-91,206v-22,83,-33,176,-33,279v0,91,12,174,35,250v23,76,55,142,98,199v43,57,94,101,152,133v58,32,123,48,195,48v54,0,104,-9,149,-26v45,-17,85,-39,118,-67v33,-29,63,-63,88,-100v25,-37,46,-78,62,-122r75,36v-57,141,-133,241,-228,301v-95,60,-207,91,-338,91","w":1315},"D":{"d":"1457,-701v0,121,-23,225,-68,314v-45,89,-104,161,-177,218v-73,57,-156,99,-247,127v-91,28,-186,42,-283,42r-588,0r0,-71v19,0,45,-1,76,-5v31,-4,51,-8,61,-13v20,-9,34,-22,43,-39v9,-17,14,-37,14,-61r0,-1024v0,-23,-4,-43,-12,-61v-8,-18,-22,-32,-45,-43v-21,-10,-43,-17,-67,-22v-24,-5,-45,-8,-62,-9r0,-71r620,0v85,0,169,13,252,39v83,26,155,62,216,107v83,59,149,137,196,233v47,96,71,209,71,339xm1212,-702v0,-95,-13,-181,-38,-258v-25,-77,-62,-145,-111,-202v-46,-55,-102,-98,-169,-129v-67,-31,-142,-47,-224,-47v-27,0,-58,1,-92,2v-34,1,-60,1,-77,2r0,1091v0,61,18,103,53,126v35,23,90,35,163,35v85,0,159,-15,222,-45v63,-30,115,-72,154,-125v41,-56,72,-120,91,-194v19,-74,28,-159,28,-256","w":1534},"E":{"d":"1291,-418r-27,418r-1178,0r0,-71v20,-1,47,-5,80,-9v33,-4,55,-8,65,-13v21,-10,37,-23,45,-39v8,-16,12,-36,12,-61r0,-1020v0,-22,-4,-42,-11,-59v-7,-17,-23,-30,-46,-41v-18,-9,-43,-16,-73,-23v-30,-7,-54,-11,-72,-12r0,-71r1098,0r0,342r-75,0v-13,-51,-43,-104,-87,-161v-44,-57,-86,-89,-126,-94v-21,-3,-45,-5,-74,-6v-29,-1,-61,-2,-98,-2r-223,0r0,564r160,0v51,0,89,-4,113,-14v24,-10,44,-26,62,-49v15,-19,28,-45,38,-77v10,-32,17,-63,20,-92r75,0r0,555r-75,0v-3,-32,-10,-65,-22,-101v-12,-36,-23,-62,-36,-78v-21,-26,-44,-43,-70,-51v-26,-8,-62,-12,-105,-12r-160,0r0,426v0,43,3,76,9,101v6,25,18,43,35,56v17,13,41,20,71,24v30,4,73,6,128,6r87,0v36,0,66,-1,91,-4v25,-3,51,-7,78,-14v27,-7,47,-17,58,-29v31,-32,62,-80,96,-145v34,-65,56,-113,65,-144r72,0","w":1338},"F":{"d":"1199,-1064r-75,0v-14,-53,-44,-109,-88,-169v-44,-60,-86,-93,-127,-99v-21,-3,-45,-5,-73,-6v-28,-1,-61,-2,-97,-2r-238,0r0,570r163,0v49,0,88,-6,115,-16v27,-10,51,-26,70,-47v13,-15,26,-38,37,-69v11,-31,18,-64,21,-99r76,0r0,557r-76,0v-2,-29,-9,-63,-21,-100v-12,-37,-24,-64,-37,-81v-20,-25,-45,-42,-75,-51v-30,-9,-67,-13,-110,-13r-163,0r0,489v0,22,4,42,13,59v9,17,24,31,46,42v10,5,32,10,65,17v33,7,59,10,76,11r0,71r-615,0r0,-71v20,-1,47,-4,80,-7v33,-3,55,-6,65,-11v20,-9,34,-22,43,-39v9,-17,14,-37,14,-61r0,-1024v0,-22,-4,-42,-11,-59v-7,-17,-23,-30,-46,-41v-18,-9,-43,-16,-73,-23v-30,-7,-54,-11,-72,-12r0,-71r1113,0r0,355","w":1227},"G":{"d":"1471,-567v-16,2,-38,5,-65,9v-27,4,-48,11,-65,19v-20,10,-35,25,-43,43v-8,18,-12,39,-12,64r0,110v0,80,1,134,2,162v1,28,2,51,3,69v-89,40,-177,71,-265,92v-88,21,-174,32,-259,32v-91,0,-178,-17,-262,-51v-84,-34,-157,-82,-220,-145v-63,-63,-114,-140,-151,-231v-37,-91,-56,-192,-56,-304v0,-108,18,-208,54,-300v36,-92,86,-173,151,-241v63,-67,139,-118,227,-155v88,-37,181,-56,281,-56v80,0,150,10,209,29v59,19,112,43,157,70r41,-68r80,0r9,496r-82,0v-14,-55,-31,-108,-52,-161v-21,-53,-47,-101,-80,-143v-33,-42,-72,-76,-119,-101v-47,-25,-104,-37,-169,-37v-71,0,-135,14,-191,43v-56,29,-105,73,-146,130v-41,55,-72,124,-94,207v-22,83,-33,175,-33,277v0,90,11,174,33,254v22,80,53,149,94,207v41,59,93,106,155,140v62,34,132,51,211,51v59,0,112,-9,160,-27v48,-18,83,-37,103,-57v5,-35,9,-70,9,-105r0,-90r0,-78v0,-28,-4,-53,-12,-75v-8,-22,-23,-37,-47,-47v-22,-10,-51,-18,-89,-23v-38,-5,-68,-8,-89,-9r0,-73r622,0r0,73","w":1485},"H":{"d":"1567,0r-589,0r0,-71r70,-6v30,-3,51,-7,62,-12v20,-8,35,-21,44,-37v9,-16,14,-37,14,-63r0,-505r-667,0r0,494v0,23,3,43,11,59v8,16,23,30,46,42v11,6,31,12,60,18v29,6,52,9,69,10r0,71r-589,0r0,-71r70,-6v30,-3,51,-7,62,-12v20,-8,35,-21,44,-37v9,-16,14,-37,14,-63r0,-1024v0,-21,-4,-41,-13,-59v-9,-18,-24,-31,-45,-41v-18,-9,-40,-16,-66,-23v-26,-7,-47,-11,-66,-12r0,-71r589,0r0,71v-19,1,-42,4,-69,9v-27,5,-47,10,-60,15v-23,8,-38,21,-46,40v-8,19,-11,39,-11,61r0,440r667,0r0,-430v0,-21,-4,-41,-13,-59v-9,-18,-24,-31,-45,-41v-18,-9,-40,-16,-66,-23v-26,-7,-47,-11,-66,-12r0,-71r589,0r0,71v-19,1,-42,4,-69,9v-27,5,-47,10,-60,15v-23,8,-38,21,-46,40v-8,19,-11,39,-11,61r0,1023v0,23,3,43,11,59v8,16,23,30,46,42v11,6,31,12,60,18v29,6,52,9,69,10r0,71","w":1669},"I":{"d":"718,0r-639,0r0,-71r78,-6v34,-3,58,-7,72,-12v22,-9,38,-20,48,-35v10,-15,15,-36,15,-63r0,-1028v0,-23,-4,-43,-11,-59v-7,-16,-25,-28,-52,-39v-20,-8,-45,-16,-75,-23v-30,-7,-56,-11,-75,-12r0,-71r639,0r0,71v-21,1,-45,4,-74,8v-29,4,-54,9,-75,16v-25,8,-42,21,-51,39v-9,18,-13,38,-13,60r0,1027v0,22,5,41,15,58v10,17,26,31,49,41v14,5,37,11,69,17v32,6,58,10,80,11r0,71","w":798},"J":{"d":"1006,-1348v-19,1,-42,4,-70,8v-28,4,-51,9,-70,16v-23,8,-38,21,-46,40v-8,19,-12,39,-12,61r0,841v0,44,-8,91,-26,140v-18,49,-44,93,-78,132v-39,45,-86,81,-140,106v-54,25,-117,38,-187,38v-109,0,-197,-31,-265,-92v-68,-61,-101,-143,-101,-246v0,-45,12,-85,35,-120v23,-35,57,-53,102,-53v40,0,72,11,96,33v24,22,37,52,37,89v0,21,-4,43,-13,64v-9,21,-18,40,-29,57r-34,54v-13,21,-22,39,-27,56v14,22,36,41,66,58v30,17,69,25,119,25v49,0,88,-11,119,-33v31,-22,55,-53,70,-90v15,-35,26,-77,32,-128v6,-51,9,-107,9,-170r0,-751v0,-23,-3,-43,-11,-59v-8,-16,-24,-29,-48,-41v-21,-11,-47,-19,-78,-25v-31,-6,-56,-9,-76,-10r0,-71r626,0r0,71","w":1060},"K":{"d":"1475,0r-398,0v-77,-119,-161,-237,-255,-354v-94,-117,-192,-230,-295,-340r-26,0r0,494v0,22,5,42,13,59v8,17,23,31,45,42v11,5,30,10,59,17v29,7,54,10,73,11r0,71r-589,0r0,-71r67,-6v29,-3,50,-7,62,-12v20,-9,34,-22,43,-39v9,-17,14,-37,14,-61r0,-1024v0,-23,-4,-42,-12,-59v-8,-17,-22,-30,-45,-41v-18,-9,-39,-16,-64,-23v-25,-7,-46,-11,-65,-12r0,-71r589,0r0,71v-19,1,-42,4,-70,9v-28,5,-49,10,-62,15v-23,8,-38,21,-46,40v-8,19,-12,39,-12,61r0,490r20,0v60,-51,119,-104,177,-159v58,-55,111,-109,158,-164v53,-61,92,-110,116,-146v24,-36,36,-68,36,-96v0,-10,-6,-18,-18,-24v-12,-6,-27,-12,-43,-16v-19,-4,-35,-7,-50,-8v-22,-2,-22,-1,-36,-2r0,-71r532,0r0,71v-2,0,-6,0,-13,1v-7,1,-14,1,-23,2v-9,1,-19,2,-28,4v-9,2,-21,4,-36,7v-23,5,-48,14,-73,26v-25,12,-45,26,-61,43r-215,242v-75,83,-149,159,-222,228v101,115,186,213,252,296r211,265v29,36,57,64,86,86v29,22,53,38,74,49v17,9,39,15,65,20v26,5,48,7,65,8r0,71","w":1422},"L":{"d":"1237,-422r-30,422r-1109,0r0,-71v16,-1,40,-4,70,-7v30,-3,51,-8,63,-13v20,-9,34,-21,43,-38v9,-17,14,-38,14,-64r0,-1016v0,-23,-4,-43,-12,-60v-8,-17,-22,-31,-45,-42v-15,-8,-37,-15,-65,-23v-28,-8,-50,-13,-68,-14r0,-71r599,0r0,71v-19,1,-43,4,-73,10v-30,6,-51,11,-64,16v-23,8,-38,22,-46,41v-8,19,-13,40,-13,62r0,953v0,44,3,78,7,102v4,24,14,44,30,57v15,12,38,19,68,23v30,4,73,6,128,6v25,0,50,-1,77,-2v27,-1,52,-4,76,-8v23,-4,45,-9,65,-16v20,-7,34,-16,43,-27v27,-31,59,-77,95,-139v36,-62,62,-113,76,-152r71,0","w":1236},"M":{"d":"1806,0r-627,0r0,-71v23,-1,51,-3,87,-7v36,-4,61,-10,74,-17v21,-13,36,-27,46,-43v10,-16,14,-37,14,-62r0,-1032r-15,0r-484,1209r-50,0r-461,-1234r-13,0r0,847v0,82,5,144,15,187v10,43,27,73,48,92v15,14,45,27,91,40v46,13,76,19,90,20r0,71r-573,0r0,-71v30,-3,61,-8,94,-15v33,-7,59,-18,77,-33v23,-19,39,-47,48,-86v9,-39,13,-103,13,-194r0,-726v0,-42,-5,-76,-15,-103v-10,-27,-24,-48,-43,-65v-21,-18,-46,-31,-76,-40v-30,-9,-60,-14,-89,-15r0,-71r484,0r406,1064r347,-890v13,-33,23,-67,32,-103v9,-36,14,-59,15,-71r463,0r0,71v-19,1,-43,4,-72,9v-29,5,-50,10,-63,15v-23,8,-38,21,-46,40v-8,19,-12,39,-12,61r0,1023v0,23,4,43,12,59v8,16,23,30,46,42v12,7,33,13,64,19v31,6,55,8,73,9r0,71","w":1899},"N":{"d":"1554,-1348v-19,1,-47,6,-86,16v-39,10,-66,20,-83,31v-24,17,-41,49,-49,96v-8,47,-12,107,-12,180r0,1039r-87,0r-860,-1161r0,732v0,82,5,145,15,189v10,44,27,75,48,94v15,15,47,28,95,41v48,13,80,19,95,20r0,71r-582,0r0,-71v18,-1,48,-7,91,-19v43,-12,69,-23,80,-32v23,-19,39,-48,48,-86v9,-38,13,-103,13,-196r0,-699v0,-31,-5,-61,-16,-92v-11,-31,-25,-54,-43,-71v-24,-22,-56,-40,-97,-56v-41,-16,-75,-25,-100,-26r0,-71r405,0r798,1082r0,-675v0,-83,-5,-146,-16,-190v-11,-44,-26,-74,-46,-89v-19,-13,-49,-25,-91,-37v-42,-12,-75,-19,-97,-20r0,-71r577,0r0,71","w":1571},"O":{"d":"1244,-1251v63,65,112,145,147,237v35,92,53,194,53,306v0,113,-18,215,-54,307v-36,92,-86,170,-150,235v-62,64,-134,113,-216,148v-82,35,-169,52,-262,52v-99,0,-190,-19,-274,-56v-84,-37,-155,-88,-215,-154v-60,-65,-107,-144,-141,-236v-34,-92,-52,-191,-52,-296v0,-115,18,-218,54,-308v36,-90,86,-169,149,-235v63,-65,136,-115,219,-150v83,-35,169,-52,260,-52v94,0,183,18,266,53v83,35,155,85,216,149xm1095,-245v37,-61,64,-129,81,-206v17,-77,26,-162,26,-257v0,-97,-9,-187,-28,-268v-19,-81,-47,-151,-84,-208v-37,-57,-83,-100,-138,-132v-55,-32,-119,-48,-190,-48v-80,0,-148,18,-204,55v-56,37,-102,86,-137,147v-33,59,-59,127,-75,206v-16,79,-24,161,-24,248v0,96,9,183,26,260v17,77,45,146,82,206v36,59,81,105,136,138v55,33,120,49,196,49v71,0,136,-17,193,-50v57,-33,104,-80,140,-140","w":1524},"P":{"d":"1184,-1069v0,74,-15,140,-44,197v-29,57,-69,104,-120,141v-51,37,-106,65,-167,82v-61,17,-125,26,-193,26r-159,0r0,430v0,23,3,43,11,61v8,18,24,32,48,41v12,5,34,9,64,13v30,4,58,6,83,7r0,71r-609,0r0,-71v16,-1,40,-4,70,-7v30,-3,51,-8,63,-13v20,-9,34,-21,43,-38v9,-17,14,-38,14,-64r0,-1024v0,-23,-3,-44,-10,-63v-7,-19,-22,-33,-47,-42v-25,-9,-50,-14,-75,-18v-25,-4,-47,-7,-65,-8r0,-71r648,0v132,0,239,31,321,95v82,64,124,149,124,255xm880,-827v23,-32,38,-65,45,-99v7,-34,11,-66,11,-93v0,-38,-5,-77,-14,-116v-9,-39,-24,-74,-46,-103v-23,-31,-54,-56,-92,-73v-38,-17,-85,-26,-142,-26r-141,0r0,627r102,0v72,0,130,-12,175,-34v45,-22,79,-50,102,-83","w":1249},"Q":{"d":"1244,-1251v63,65,112,145,147,237v35,92,53,194,53,306v0,89,-12,172,-35,248v-23,76,-56,144,-99,204v-41,57,-89,107,-145,150v-56,43,-119,76,-188,101v1,73,28,139,79,197v51,58,107,88,166,88v55,0,96,-2,125,-6v29,-4,52,-7,71,-10r0,79v-30,9,-67,17,-112,27v-45,10,-108,15,-188,15v-45,0,-88,-6,-131,-19v-43,-13,-81,-34,-116,-63v-35,-29,-64,-65,-87,-109v-23,-44,-37,-98,-44,-162v-95,-3,-184,-24,-265,-62v-81,-38,-151,-89,-209,-154v-59,-66,-104,-143,-137,-232v-33,-89,-49,-187,-49,-292v0,-115,18,-218,54,-308v36,-90,86,-169,149,-235v63,-65,136,-115,219,-150v83,-35,169,-52,260,-52v94,0,183,18,266,53v83,35,155,85,216,149xm1095,-245v37,-61,64,-129,81,-206v17,-77,26,-162,26,-257v0,-97,-9,-187,-28,-268v-19,-81,-47,-151,-84,-208v-37,-57,-83,-100,-138,-132v-55,-32,-119,-48,-190,-48v-80,0,-148,18,-204,55v-56,37,-102,86,-137,147v-33,59,-59,127,-75,206v-16,79,-24,161,-24,248v0,96,9,183,26,260v17,77,45,146,82,206v36,59,81,105,136,138v55,33,120,49,196,49v71,0,136,-17,193,-50v57,-33,104,-80,140,-140","w":1524},"R":{"d":"1480,0r-382,0r-230,-344v0,0,-142,-196,-222,-299r-145,0r0,450v0,23,4,43,11,61v7,18,23,32,47,41v12,5,33,9,63,13v30,4,55,6,76,7r0,71r-600,0r0,-71v16,-1,40,-4,70,-7v30,-3,51,-8,63,-13v20,-9,34,-21,43,-38v9,-17,14,-38,14,-64r0,-1026v0,-23,-3,-44,-10,-62v-7,-18,-22,-32,-47,-41v-17,-6,-38,-11,-65,-16v-27,-5,-49,-9,-68,-10r0,-71r655,0v60,0,116,7,169,19v53,12,100,32,143,59v41,27,74,62,99,105v25,43,37,94,37,155v0,55,-8,103,-25,145v-17,42,-41,78,-74,109v-30,29,-66,54,-108,75v-42,21,-88,38,-139,53r175,234r170,231v29,40,56,69,80,88v24,19,47,35,70,47v17,9,39,15,65,20v26,5,48,7,65,8r0,71xm954,-1058v0,-86,-25,-154,-74,-204v-49,-50,-119,-76,-209,-76r-170,0r0,609r131,0v92,0,169,-30,230,-89v61,-59,92,-139,92,-240","w":1437},"S":{"d":"981,-651v30,33,53,69,67,109v14,40,21,86,21,139v0,125,-46,229,-139,310v-93,81,-208,122,-345,122v-63,0,-127,-9,-190,-29v-63,-20,-118,-44,-164,-72r-43,73r-80,0r-14,-486r81,0v17,60,37,115,59,163v22,48,51,93,88,135v35,39,76,71,122,94v46,23,100,35,161,35v46,0,87,-6,121,-18v34,-12,62,-29,83,-51v21,-22,37,-47,47,-77v10,-30,16,-64,16,-103v0,-57,-16,-110,-48,-159v-32,-49,-80,-86,-143,-111r-149,-57v-56,-21,-104,-41,-145,-60v-80,-36,-143,-84,-187,-142v-44,-58,-66,-134,-66,-228v0,-54,11,-104,33,-151v22,-47,53,-88,94,-125v39,-35,84,-62,137,-82v53,-20,108,-29,165,-29v65,0,123,10,175,30v52,20,99,43,142,70r41,-68r80,0r8,471r-81,0v-15,-54,-32,-106,-50,-155v-18,-49,-42,-94,-71,-134v-29,-39,-64,-70,-105,-93v-41,-23,-92,-34,-152,-34v-63,0,-117,20,-162,61v-45,41,-67,90,-67,149v0,61,14,112,43,152v29,40,70,74,125,100v49,23,96,43,143,60v47,17,93,36,137,55v40,17,78,37,115,59v37,22,70,48,97,77","w":1149},"T":{"d":"1251,-1034r-69,0v-6,-24,-16,-53,-32,-86v-16,-33,-34,-64,-53,-93v-20,-31,-41,-58,-65,-81v-24,-23,-47,-36,-69,-39v-21,-3,-47,-5,-78,-6v-31,-1,-60,-2,-87,-2r-58,0r0,1135v0,22,5,42,14,60v9,18,26,33,49,43v12,5,37,11,75,19v38,8,69,12,90,13r0,71r-670,0r0,-71v19,-1,48,-4,86,-8v38,-4,64,-9,79,-15v22,-9,39,-22,49,-38v10,-16,15,-38,15,-65r0,-1144r-58,0v-21,0,-46,0,-77,1v-31,1,-60,4,-88,7v-22,3,-44,15,-68,39v-24,24,-46,51,-66,81v-20,30,-38,61,-53,95v-15,34,-26,62,-32,84r-70,0r0,-385r1236,0r0,385","w":1267},"U":{"d":"1533,-1348v-19,1,-46,5,-82,12v-36,7,-65,18,-88,33v-23,15,-38,47,-47,95v-9,48,-13,107,-13,176r0,617v0,79,-16,147,-49,205v-33,58,-76,106,-129,143v-53,36,-109,61,-167,77v-58,16,-114,24,-167,24v-85,0,-161,-12,-228,-34v-67,-22,-123,-52,-168,-90v-45,-38,-78,-81,-101,-130v-23,-49,-34,-101,-34,-154r0,-839v0,-23,-4,-43,-12,-59v-8,-16,-23,-30,-46,-43v-17,-9,-38,-17,-64,-23v-26,-6,-47,-9,-64,-10r0,-71r591,0r0,71v-19,1,-43,4,-71,9v-28,5,-49,10,-62,15v-23,8,-38,21,-46,40v-8,19,-11,39,-11,61r0,784v0,38,5,77,13,119v8,42,24,81,49,117v26,37,61,67,106,90v45,23,106,35,184,35v73,0,135,-12,185,-35v50,-23,88,-54,117,-92v27,-36,47,-74,58,-113v11,-39,17,-79,17,-119r0,-582v0,-74,-5,-134,-16,-181v-11,-47,-26,-78,-47,-93v-23,-17,-55,-30,-95,-39v-40,-9,-72,-15,-93,-16r0,-71r580,0r0,71","w":1549},"V":{"d":"1407,-1348v-17,1,-38,5,-63,12v-25,7,-45,15,-61,25v-23,14,-41,32,-55,54v-14,22,-27,48,-40,78r-201,495r-276,702r-83,0r-278,-746r-182,-485v-8,-21,-19,-39,-32,-55v-13,-16,-31,-30,-53,-44v-18,-11,-38,-20,-60,-26v-22,-6,-42,-9,-61,-10r0,-71r587,0r0,71v-50,3,-93,8,-127,15v-34,7,-51,20,-51,39v0,7,1,16,4,26v3,10,5,18,7,24r120,320r236,630r175,-437v66,-168,110,-283,133,-346v22,-61,34,-103,38,-126v4,-23,6,-42,6,-57v0,-15,-6,-28,-20,-38v-14,-10,-32,-20,-55,-27v-22,-7,-44,-12,-67,-15v-23,-3,-46,-6,-69,-8r0,-71r528,0r0,71","w":1365},"W":{"d":"2028,-1348v-17,1,-36,5,-58,12v-22,7,-42,16,-61,27v-23,15,-43,32,-57,51v-14,19,-26,45,-37,79r-165,539r-203,658r-92,0r-358,-1092r-373,1092r-88,0r-205,-726r-142,-505v-6,-21,-15,-39,-27,-55v-12,-16,-27,-31,-47,-44v-17,-11,-37,-20,-59,-26v-22,-6,-42,-9,-60,-10r0,-71r579,0r0,71v-51,3,-93,8,-129,15v-36,7,-54,20,-54,37v0,7,1,15,3,26v2,11,4,20,5,27v15,59,43,156,82,291r173,606r354,-1053r98,0r357,1076r124,-433r86,-318v16,-62,26,-105,30,-128v4,-23,6,-42,6,-58v0,-23,-15,-42,-46,-57v-31,-15,-82,-26,-151,-31r0,-71r515,0r0,71","w":1998},"X":{"d":"1457,0r-664,0r0,-71v55,-1,99,-6,133,-15v34,-9,50,-23,50,-42v0,-10,-8,-31,-23,-62v-15,-31,-35,-66,-59,-105r-95,-151r-109,-165v-59,77,-125,170,-200,279v-75,109,-112,174,-112,193v0,22,10,39,30,49v20,10,66,16,135,19r0,71r-530,0r0,-71v17,-1,40,-3,67,-7v27,-4,49,-10,66,-19v35,-19,63,-39,84,-61v21,-22,42,-47,63,-76r164,-220r177,-239r-148,-215r-192,-280v-29,-42,-52,-72,-68,-89v-16,-17,-38,-32,-65,-45v-16,-7,-39,-14,-67,-18v-28,-4,-50,-7,-67,-8r0,-71r657,0r0,71v-39,1,-78,6,-120,14v-42,8,-63,22,-63,39v0,13,8,35,25,67v17,32,36,65,59,101r78,124r105,157v75,-102,140,-194,195,-276v55,-82,82,-135,82,-160v0,-21,-12,-37,-37,-47v-25,-10,-68,-16,-127,-19r0,-71r529,0r0,71v-17,1,-39,4,-66,8v-27,4,-49,10,-67,18v-35,17,-60,35,-77,54v-17,19,-40,47,-69,84r-147,194r-163,220r179,259r188,277v21,30,44,59,71,86v27,27,48,45,65,55v16,9,37,15,64,17v27,2,50,4,69,5r0,71","w":1455},"Y":{"d":"1314,-1348v-11,1,-29,6,-54,14v-25,8,-42,16,-53,24v-26,16,-44,28,-53,37v-9,9,-27,31,-54,68v-52,73,-100,148,-144,223r-165,287v-25,43,-41,77,-49,103v-8,26,-12,64,-12,113r0,271v0,24,4,44,14,62v10,18,27,32,50,43v14,5,39,11,75,19v36,8,65,12,87,13r0,71r-664,0r0,-71v19,-1,47,-3,84,-7v37,-4,63,-9,78,-15v24,-10,41,-24,50,-41v9,-17,13,-39,13,-64r0,-345v0,-11,-6,-31,-19,-59v-13,-28,-29,-59,-47,-94r-133,-251r-127,-231v-22,-38,-42,-67,-59,-86v-17,-19,-36,-36,-58,-51v-16,-10,-36,-18,-58,-23v-22,-5,-42,-9,-60,-10r0,-71r605,0r0,71v-68,1,-116,6,-144,14v-28,8,-42,19,-42,34v0,4,2,11,6,21v4,10,10,23,17,38v13,26,13,25,31,59r34,65r96,177r128,231r239,-395v55,-94,83,-150,83,-169v0,-15,-6,-28,-17,-37v-11,-9,-26,-17,-45,-22v-19,-5,-40,-8,-63,-10v-23,-2,-44,-4,-63,-6r0,-71r493,0r0,71","w":1260},"Z":{"d":"1214,-443r-47,443r-1140,0r0,-35r893,-1305r-327,0v-38,0,-69,1,-95,2v-26,1,-50,4,-71,8v-44,9,-94,45,-149,109v-55,64,-96,132,-124,203r-70,0r43,-401r1063,0r0,35r-893,1305r337,0v57,0,117,-4,181,-12v64,-8,106,-22,125,-41v43,-41,84,-92,121,-152v37,-60,65,-113,83,-159r70,0","w":1232},"[":{"d":"701,310r-533,0r0,-1829r533,0r0,91r-355,0r0,1646r355,0r0,92","w":768},"\\":{"d":"911,424r-130,0r-691,-1947r132,0","w":960},"]":{"d":"600,310r-533,0r0,-92r355,0r0,-1646r-355,0r0,-91r533,0r0,1829","w":768},"^":{"d":"1126,-796r-145,0r-321,-524r-324,524r-145,0r412,-660r113,0"},"_":{"d":"1322,282r-1327,0r0,-101r1327,0r0,101"},"`":{"d":"739,-1142r-38,32r-184,-144r-120,-93v-25,-21,-43,-39,-53,-52v-10,-13,-16,-34,-16,-61v0,-19,8,-38,23,-54v15,-16,35,-24,59,-24v26,0,48,6,67,18v19,12,39,35,60,70r80,126","w":1024},"a":{"d":"1006,-18v-31,11,-58,21,-82,28v-24,7,-51,10,-81,10v-52,0,-94,-12,-125,-36v-31,-24,-50,-60,-59,-107r-6,0v-43,48,-89,85,-139,110v-50,25,-110,38,-180,38v-74,0,-134,-23,-182,-68v-48,-45,-72,-105,-72,-178v0,-38,5,-72,16,-102v11,-30,27,-57,48,-81v17,-20,39,-38,66,-54v27,-16,53,-28,77,-37v30,-11,91,-32,183,-63v92,-31,153,-55,185,-72r0,-99v0,-9,-1,-25,-5,-50v-4,-25,-12,-48,-24,-70v-13,-25,-32,-47,-56,-65v-24,-18,-59,-27,-104,-27v-31,0,-60,5,-86,15v-26,10,-44,22,-55,33v0,13,3,33,9,59v6,26,10,50,10,72v0,23,-11,45,-32,64v-21,19,-50,29,-87,29v-33,0,-57,-11,-73,-35v-16,-24,-24,-51,-24,-80v0,-31,10,-60,32,-88v22,-28,50,-53,85,-75v30,-19,66,-34,109,-47v43,-13,84,-20,125,-20v56,0,105,4,147,12v42,8,79,24,113,49v34,25,59,59,77,101v18,42,27,96,27,163v0,95,-1,179,-3,253v-2,74,-3,155,-3,242v0,26,4,47,13,62v9,15,23,28,42,39v10,6,26,9,48,10v22,1,43,1,66,1r0,64xm657,-546v-57,17,-106,33,-149,49v-43,16,-82,36,-119,60v-33,23,-60,50,-79,81v-19,31,-29,67,-29,110v0,55,14,96,43,122v29,26,66,39,111,39v47,0,89,-12,125,-35v36,-23,66,-50,91,-81","w":1032},"b":{"d":"1073,-494v0,148,-47,272,-140,373v-93,101,-202,151,-325,151v-54,0,-108,-8,-160,-25v-52,-17,-101,-39,-147,-67r-74,115r-62,-14v3,-49,6,-109,7,-178v1,-69,2,-136,2,-201r0,-976v0,-23,-6,-45,-16,-68v-10,-23,-23,-39,-39,-49v-13,-9,-33,-15,-63,-19v-30,-4,-54,-8,-72,-9r0,-64r362,-23r14,15r0,650r7,2v41,-44,86,-77,135,-99v49,-22,98,-33,145,-33v121,0,223,48,304,144v81,96,122,221,122,375xm864,-487v0,-49,-5,-100,-16,-151v-11,-51,-27,-96,-50,-134v-23,-39,-52,-70,-89,-94v-37,-24,-81,-36,-132,-36v-47,0,-88,10,-123,28v-35,18,-66,43,-94,74r0,574v4,16,12,35,24,56v12,21,27,42,47,61v20,19,43,33,68,45v25,12,56,18,93,18v81,0,147,-39,197,-118v50,-79,75,-186,75,-323","w":1147},"c":{"d":"528,26v-143,0,-254,-47,-335,-142v-81,-95,-121,-222,-121,-381v0,-69,10,-135,32,-195v22,-60,54,-115,95,-164v39,-47,89,-85,148,-114v59,-29,124,-44,194,-44v97,0,175,24,236,70v61,46,91,109,91,189v0,33,-8,63,-24,89v-16,26,-42,38,-79,38v-39,0,-69,-10,-91,-30v-22,-20,-33,-42,-33,-67v0,-30,4,-61,12,-93v8,-32,13,-54,14,-69v-12,-21,-29,-34,-53,-41v-24,-7,-50,-11,-77,-11v-32,0,-62,7,-91,21v-29,14,-58,38,-85,75v-25,33,-45,78,-60,135v-15,57,-23,124,-23,203v0,124,27,225,82,303v55,78,128,118,217,118v65,0,119,-16,163,-47v44,-31,84,-78,121,-141r64,42v-44,79,-102,141,-174,187v-72,46,-146,69,-223,69","w":930},"d":{"d":"1152,-18r-344,22r-15,-14r0,-92r-8,-2v-35,39,-78,70,-129,95v-51,25,-103,37,-157,37v-56,0,-111,-13,-163,-38v-52,-25,-97,-60,-136,-105v-39,-46,-71,-101,-94,-166v-23,-65,-34,-136,-34,-214v0,-71,12,-139,37,-203v25,-64,59,-120,102,-168v41,-45,90,-80,149,-107v59,-27,120,-40,181,-40v46,0,91,5,135,17v44,12,83,27,115,45r0,-343v0,-28,-5,-53,-14,-76v-9,-23,-22,-41,-39,-53v-19,-13,-44,-21,-76,-27v-32,-6,-65,-10,-102,-13r0,-62r403,-23r15,15r0,1330v0,23,5,43,14,59v9,16,22,31,39,42v13,8,31,13,55,15v24,2,46,3,66,4r0,65xm791,-191r0,-577v-5,-17,-14,-36,-26,-56v-12,-20,-27,-38,-45,-55v-19,-17,-42,-30,-68,-41v-26,-11,-56,-17,-91,-17v-40,0,-77,10,-111,31v-34,21,-63,50,-89,89v-25,37,-45,85,-59,143v-14,58,-21,121,-21,191v0,56,5,107,16,153v11,46,29,88,54,127v23,37,53,67,89,90v36,23,80,34,130,34v53,0,97,-12,132,-35v35,-23,65,-49,89,-77","w":1176},"e":{"d":"948,-232v-41,79,-97,141,-166,188v-69,47,-149,70,-239,70v-79,0,-149,-14,-209,-42v-60,-28,-108,-66,-147,-114v-39,-48,-68,-104,-87,-168v-19,-64,-28,-132,-28,-203v0,-64,10,-127,30,-189v20,-62,51,-117,90,-166v38,-47,86,-85,142,-114v56,-29,119,-44,189,-44v72,0,134,11,185,34v51,23,93,54,125,93v31,37,54,81,69,132v15,51,22,106,22,165r0,66r-653,0v0,65,7,123,19,176v12,53,31,99,58,139v26,39,60,69,102,91v42,22,92,34,150,34v59,0,111,-14,154,-42v43,-28,84,-77,124,-149xm727,-608v0,-37,-3,-77,-9,-120v-6,-43,-17,-78,-31,-107v-15,-31,-36,-56,-63,-75v-27,-19,-61,-29,-103,-29v-70,0,-129,29,-175,87v-46,58,-71,140,-75,244r456,0","w":990},"f":{"d":"806,-1429v0,30,-8,55,-24,76v-16,21,-40,31,-73,31v-21,0,-39,-4,-55,-13v-16,-9,-30,-20,-43,-35v-13,-15,-26,-31,-37,-50v-11,-19,-21,-34,-29,-45v-45,2,-79,33,-103,93v-24,60,-37,157,-37,289r0,101r254,0r0,96r-254,0r0,708v0,23,4,42,13,57v9,15,24,26,43,33v16,6,37,10,64,14v27,4,50,7,69,8r0,66r-520,0r0,-66r48,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-718r-195,0r0,-96r195,0r0,-63v0,-150,39,-272,117,-365v78,-93,174,-139,291,-139v59,0,104,12,134,35v30,23,45,52,45,85","w":666},"g":{"d":"917,-102v27,25,48,54,63,86v15,32,23,72,23,119v0,47,-10,91,-31,133v-21,42,-52,78,-94,109v-45,31,-98,56,-160,73v-62,17,-139,26,-230,26v-149,0,-261,-22,-335,-66v-74,-44,-111,-107,-111,-191v0,-68,27,-122,80,-161v53,-39,121,-61,204,-64r0,-14v-20,-6,-41,-13,-62,-22v-21,-9,-40,-20,-55,-32v-17,-14,-31,-31,-42,-50v-11,-19,-16,-42,-16,-70v0,-35,12,-68,37,-98v25,-30,63,-55,114,-76r0,-15v-64,-30,-114,-68,-149,-115v-35,-47,-53,-102,-53,-164v0,-93,34,-170,104,-230v70,-60,159,-90,268,-90v30,0,60,3,90,9v30,6,59,14,90,23r344,0r0,96r-232,0r0,6v25,29,43,60,55,95v12,35,18,69,18,102v0,87,-35,160,-105,220v-70,60,-153,90,-246,90r-121,0v-15,5,-31,15,-48,29v-17,14,-25,33,-25,57v0,25,7,44,21,57v14,13,31,21,51,26v19,5,42,9,68,10r79,3v29,1,70,3,121,6v51,3,87,5,108,6v31,1,61,9,92,22v31,13,60,32,85,55xm647,-687v0,-78,-15,-141,-47,-187v-32,-46,-77,-69,-134,-69v-31,0,-58,6,-80,19v-22,13,-41,32,-55,56v-13,22,-23,49,-29,80v-6,31,-8,62,-8,95v0,74,16,134,48,181v32,47,75,70,126,70v57,0,101,-24,132,-70v31,-46,47,-104,47,-175xm839,140v0,-37,-9,-68,-26,-92v-17,-24,-44,-40,-79,-49v-19,-3,-57,-6,-115,-9v-58,-3,-125,-5,-202,-5v-72,14,-123,38,-153,71v-30,33,-46,75,-46,127v0,23,5,46,15,67v10,21,27,41,52,59v23,17,55,32,94,43v39,11,87,16,144,16v98,0,175,-18,231,-56v56,-38,85,-95,85,-172","w":1043},"h":{"d":"1143,0r-484,0r0,-66v15,-1,32,-3,51,-4v19,-1,34,-4,46,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-507v0,-70,-16,-124,-49,-162v-33,-38,-74,-57,-121,-57v-35,0,-67,5,-97,16v-30,11,-56,25,-79,41v-23,17,-40,33,-52,50v-12,17,-21,31,-28,42r0,567v0,23,4,41,13,56v9,15,23,26,42,34v15,7,30,12,46,15v16,3,32,6,51,7r0,66r-484,0r0,-66v15,-1,31,-2,48,-4v17,-2,31,-5,42,-8v19,-6,33,-17,42,-32v9,-15,14,-34,14,-58r0,-1148v0,-23,-5,-45,-15,-68v-10,-23,-24,-40,-41,-51v-12,-9,-33,-15,-63,-19v-30,-4,-55,-6,-74,-7r0,-64r365,-23r14,15r0,688r4,0r60,-59v18,-17,42,-34,71,-53v25,-16,56,-29,90,-40v34,-11,72,-16,115,-16v88,0,156,27,203,83v47,56,71,136,71,241r0,513v0,23,5,42,13,56v8,14,22,26,41,34v15,6,29,11,41,14v12,3,29,5,49,6r0,66","w":1192},"i":{"d":"551,0r-477,0r0,-66r48,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-609v0,-21,-5,-41,-15,-59v-10,-18,-23,-32,-40,-44v-13,-8,-31,-14,-55,-20v-24,-6,-46,-10,-66,-11r0,-65r348,-22r14,14r0,804v0,23,4,43,13,58v9,15,24,27,43,34v15,6,29,10,43,14v14,4,30,7,47,8r0,66xm425,-1387v0,38,-12,71,-37,99v-25,28,-56,43,-93,43v-34,0,-64,-14,-89,-41v-25,-27,-37,-57,-37,-92v0,-37,12,-69,37,-96v25,-27,55,-41,89,-41v38,0,69,13,93,39v24,26,37,55,37,89","w":600},"j":{"d":"431,-60v0,73,-11,142,-32,206v-21,64,-50,118,-85,160v-38,45,-80,78,-128,102v-48,24,-101,36,-158,36v-59,0,-104,-12,-134,-36v-30,-24,-45,-51,-45,-83v0,-29,8,-53,24,-75v16,-22,39,-33,70,-33v21,0,39,4,55,13v16,9,30,20,42,34v11,12,21,26,32,44r32,52v51,0,86,-31,108,-92v22,-61,33,-160,33,-295r0,-742v0,-21,-5,-41,-15,-61v-10,-20,-24,-36,-41,-48v-11,-7,-37,-15,-77,-22v-40,-7,-70,-12,-91,-14r0,-62r396,-22r14,14r0,924xm446,-1388v0,38,-13,72,-38,100v-25,28,-55,42,-92,42v-34,0,-63,-13,-88,-40v-25,-27,-38,-58,-38,-93v0,-37,13,-69,38,-96v25,-27,54,-41,88,-41v38,0,70,12,94,38v24,26,36,56,36,90","w":598},"k":{"d":"1117,0r-298,0r-167,-242v-59,-86,-121,-170,-185,-251r-82,77r0,234v0,24,4,44,13,60v9,16,23,27,42,34v16,7,31,12,46,15v15,3,32,6,51,7r0,66r-484,0r0,-66v15,-1,31,-2,48,-4v17,-2,31,-5,42,-8v19,-6,33,-17,42,-32v9,-15,14,-34,14,-58r0,-1146v0,-25,-5,-48,-15,-70v-10,-22,-24,-38,-41,-49v-14,-11,-35,-18,-65,-21v-30,-3,-54,-6,-72,-7r0,-64r365,-23r14,15r0,1043r169,-168v60,-60,111,-112,152,-159v5,-6,12,-13,18,-23v6,-10,9,-18,9,-24v0,-18,-14,-31,-43,-40v-29,-9,-57,-15,-84,-18r0,-64r434,0r0,62v-56,17,-105,37,-148,62v-43,25,-76,48,-99,68v-16,13,-39,35,-68,65v-29,30,-70,69,-123,118v55,67,116,148,184,242r150,204v29,39,56,65,79,77v23,12,57,19,102,22r0,66","w":1097},"l":{"d":"534,0r-481,0r0,-66v15,-1,32,-2,49,-4v17,-2,32,-5,43,-8v19,-6,33,-17,42,-32v9,-15,14,-34,14,-58r0,-1142v0,-24,-5,-47,-15,-68v-10,-21,-24,-37,-41,-49v-12,-8,-34,-15,-66,-22v-32,-7,-58,-11,-77,-12r0,-64r371,-23r14,15r0,1353v0,23,4,43,13,58v9,15,23,26,42,34v15,7,30,12,44,15v14,3,30,6,48,7r0,66","w":586},"m":{"d":"1761,0r-481,0r0,-66r46,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-509v0,-69,-15,-123,-47,-161v-32,-38,-72,-56,-119,-56v-33,0,-63,5,-92,15v-29,10,-55,24,-79,42v-19,15,-35,30,-48,47v-13,17,-23,32,-30,43r0,569v0,23,4,43,12,58v8,15,22,26,41,34v15,6,29,11,41,14v12,3,29,5,49,6r0,66r-471,0r0,-66r44,-4v14,-1,28,-4,40,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-509v0,-69,-15,-123,-47,-161v-32,-38,-72,-56,-119,-56v-33,0,-63,6,-92,16v-29,10,-55,24,-79,42v-19,15,-36,32,-49,50r-30,41r0,565v0,23,5,42,14,57v9,15,23,27,42,35v14,7,28,12,43,15v15,3,31,6,49,7r0,66r-479,0r0,-66r48,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-613v0,-21,-5,-40,-15,-57v-10,-17,-23,-32,-40,-44v-13,-8,-28,-15,-47,-20v-19,-5,-38,-8,-58,-9r0,-65r330,-22r14,14r0,141r7,0r61,-59v24,-23,46,-41,67,-55v23,-16,53,-29,88,-40v35,-11,72,-16,113,-16v64,0,119,17,165,51v46,34,79,76,99,125r63,-61v18,-18,43,-37,73,-57v25,-17,55,-31,89,-42v34,-11,73,-16,115,-16v83,0,149,27,198,82v49,55,73,139,73,252r0,501v0,23,4,43,12,58v8,15,22,26,41,34v15,6,30,11,45,14v15,3,32,5,51,6r0,66","w":1804},"n":{"d":"1161,0r-483,0r0,-66v15,-1,32,-3,50,-4v18,-1,34,-4,46,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-507v0,-70,-16,-124,-49,-162v-33,-38,-74,-57,-121,-57v-35,0,-68,5,-97,16v-29,11,-55,25,-78,41v-22,15,-39,31,-52,49v-13,18,-23,32,-29,43r0,567v0,23,5,41,14,56v9,15,23,26,42,34v14,7,29,12,45,15v16,3,34,6,51,7r0,66r-483,0r0,-66r48,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-609v0,-23,-5,-44,-15,-63v-10,-19,-23,-34,-40,-46v-13,-8,-28,-14,-45,-18v-17,-4,-36,-6,-56,-7r0,-65r328,-22r14,14r0,139r5,0v24,-24,24,-23,60,-57v24,-22,47,-41,68,-55v25,-16,54,-29,88,-40v34,-11,72,-16,115,-16v95,0,165,30,211,89v46,59,68,137,68,235r0,513v0,23,4,42,12,56v8,14,22,26,41,34v16,7,29,11,41,14v12,3,28,5,49,6r0,66","w":1210},"o":{"d":"1033,-503v0,69,-11,138,-33,205v-22,67,-53,123,-94,170v-46,53,-99,93,-160,119v-61,26,-129,39,-204,39v-63,0,-122,-12,-179,-36v-57,-24,-107,-58,-151,-103v-43,-45,-78,-99,-104,-163v-26,-64,-38,-137,-38,-217v0,-154,44,-280,134,-378v90,-98,208,-147,353,-147v138,0,251,47,341,140v90,93,135,216,135,371xm826,-501v0,-50,-5,-103,-15,-159v-10,-56,-25,-102,-45,-141v-21,-41,-49,-74,-84,-99v-35,-25,-77,-38,-127,-38v-51,0,-95,13,-131,38v-36,25,-66,60,-89,104v-21,41,-36,87,-45,139v-9,52,-13,102,-13,151v0,64,5,124,15,178v10,54,27,102,50,145v23,43,52,77,86,101v34,24,76,36,127,36v83,0,149,-40,198,-121v49,-81,73,-192,73,-334","w":1104},"p":{"d":"973,-869v39,47,69,101,91,163v22,62,33,132,33,211v0,78,-13,149,-39,213v-26,64,-60,120,-103,165v-45,46,-94,81,-149,106v-55,25,-113,37,-174,37v-59,0,-108,-7,-146,-20v-38,-13,-69,-29,-93,-47r-8,0r0,296v0,24,5,44,14,60v9,16,24,28,43,35v16,6,38,12,68,18v30,6,55,8,74,9r0,67r-551,0r0,-67v21,-1,41,-3,60,-5v19,-2,37,-5,52,-10v20,-7,34,-18,42,-35v8,-17,12,-36,12,-59r0,-1049v0,-20,-5,-39,-15,-58v-10,-19,-23,-34,-39,-45v-12,-8,-29,-14,-50,-18v-21,-4,-42,-8,-62,-9r0,-65r336,-22r14,12r0,111r8,2v35,-40,78,-73,129,-100v51,-27,102,-40,153,-40v61,0,118,13,169,39v51,26,94,61,131,105xm810,-160v27,-41,46,-89,59,-144v13,-55,19,-116,19,-183v0,-49,-5,-100,-16,-151v-11,-51,-27,-96,-50,-134v-23,-39,-52,-70,-89,-94v-37,-24,-81,-36,-132,-36v-49,0,-91,10,-126,32v-35,22,-65,48,-90,78r0,583v6,18,15,37,29,56v14,19,29,36,46,50v21,17,43,31,67,41v24,10,53,15,88,15v37,0,73,-9,108,-29v35,-20,64,-48,87,-84","w":1170},"q":{"d":"1154,444r-533,0r0,-67v21,-1,41,-3,61,-5v20,-2,38,-5,54,-10v21,-7,35,-18,43,-35v8,-17,12,-36,12,-59r0,-364r-6,-2v-11,12,-25,26,-45,42v-20,16,-41,28,-62,38v-27,14,-52,24,-77,32v-25,8,-56,12,-93,12v-60,0,-117,-13,-170,-38v-53,-25,-99,-60,-138,-106v-39,-45,-71,-102,-94,-168v-23,-66,-34,-139,-34,-218v0,-75,13,-144,40,-206v27,-62,62,-115,106,-161v42,-43,93,-77,152,-103v59,-26,117,-39,175,-39v43,0,81,5,115,13v34,8,63,18,87,29v21,9,41,19,62,33v21,14,35,23,44,28r85,-130r57,8v-3,49,-7,110,-11,182v-4,72,-6,135,-6,189r0,912v0,23,4,44,13,61v9,17,23,29,42,38v16,7,36,13,61,18v25,5,45,8,60,9r0,67xm791,-183r0,-589v-5,-17,-14,-36,-27,-56v-13,-20,-28,-38,-45,-53v-19,-16,-42,-29,-69,-40v-27,-11,-58,-16,-93,-16v-78,0,-144,40,-197,121v-53,81,-79,192,-79,333v0,56,5,107,15,152v10,45,29,88,54,127v24,37,54,68,91,90v37,22,83,33,139,33v48,0,89,-11,123,-31v34,-20,63,-44,88,-71","w":1146},"r":{"d":"827,-859v0,34,-8,65,-25,91v-17,26,-42,39,-77,39v-37,0,-65,-10,-85,-29v-20,-19,-30,-41,-30,-64v0,-15,2,-28,4,-40r6,-36v-31,0,-68,13,-110,38v-42,25,-78,61,-107,108r0,574v0,23,4,42,13,57v9,15,24,26,43,33v17,7,39,12,65,15v26,3,49,6,68,7r0,66r-520,0r0,-66r48,-4v16,-1,30,-4,42,-8v19,-6,33,-17,42,-32v9,-15,13,-34,13,-58r0,-609v0,-21,-5,-41,-15,-61v-10,-20,-23,-36,-40,-48v-13,-8,-28,-14,-45,-18v-17,-4,-36,-6,-56,-7r0,-65r328,-22r14,14r0,139r5,0v41,-54,87,-95,138,-123v51,-28,97,-42,139,-42v42,0,77,14,103,41v26,27,39,64,39,110","w":839},"s":{"d":"723,-483v27,24,48,52,63,83v15,31,22,70,22,115v0,91,-34,166,-102,224v-68,58,-157,87,-266,87v-57,0,-110,-10,-158,-31v-48,-21,-83,-40,-104,-57r-20,65r-75,0r-10,-343r69,0v5,26,17,56,34,91v17,35,38,66,63,94v26,29,57,54,93,74v36,20,78,30,123,30v64,0,113,-14,148,-43v35,-29,52,-71,52,-125v0,-28,-6,-53,-17,-73v-11,-20,-27,-38,-48,-53v-22,-15,-49,-29,-81,-41v-32,-12,-68,-25,-107,-37v-31,-9,-66,-23,-104,-39v-38,-16,-72,-35,-99,-57v-29,-23,-53,-52,-72,-86v-19,-34,-28,-74,-28,-120v0,-81,30,-149,90,-205v60,-56,140,-84,241,-84v39,0,78,5,118,15v40,10,74,22,99,36r23,-52r72,0r15,317r-69,0v-14,-71,-44,-128,-90,-172v-46,-44,-103,-67,-170,-67v-55,0,-98,14,-129,41v-31,27,-47,60,-47,99v0,30,6,55,16,75v10,20,25,37,46,51v20,13,46,25,76,37v30,12,67,25,112,40v44,14,85,30,124,49v39,19,72,39,97,62","w":885},"t":{"d":"681,-43v-43,18,-84,33,-123,45v-39,12,-86,19,-142,19v-83,0,-140,-21,-174,-63v-34,-42,-51,-100,-51,-176r0,-668r-178,0r0,-96r182,0r0,-307r182,0r0,307r283,0r0,96r-281,0r0,551v0,41,2,75,5,103v3,28,10,52,21,73v11,19,27,34,48,44v21,10,50,15,86,15v17,0,41,-1,73,-4v32,-3,56,-7,69,-12r0,73","w":707},"u":{"d":"1129,-18r-321,22r-15,-14r0,-125r-6,0v-16,17,-34,34,-54,53v-20,19,-43,37,-69,52v-30,18,-59,32,-87,41v-28,9,-68,14,-119,14v-87,0,-154,-28,-200,-85v-46,-57,-68,-140,-68,-249r0,-472v0,-24,-5,-45,-14,-61v-9,-16,-22,-30,-39,-42v-12,-8,-27,-14,-45,-18v-18,-4,-37,-6,-57,-7r0,-65r329,-24r15,14r0,685v0,71,16,125,48,161v32,36,70,54,115,54v37,0,69,-6,98,-17v29,-11,53,-25,72,-40v18,-14,34,-29,48,-45v14,-16,24,-30,31,-43r0,-559v0,-22,-5,-41,-14,-58v-9,-17,-22,-32,-39,-44v-12,-8,-30,-12,-54,-14v-24,-2,-50,-4,-79,-5r0,-65r358,-24r15,14r0,783v0,23,5,42,14,58v9,16,22,30,39,41v12,7,26,12,43,14v17,2,35,4,55,5r0,65","w":1178},"v":{"d":"1046,-925v-30,5,-59,17,-86,33v-27,16,-50,45,-69,86r-122,280r-131,305v-13,31,-27,67,-42,109v-22,63,-23,63,-42,121r-78,0r-175,-429r-166,-396v-13,-31,-35,-55,-65,-72v-30,-17,-59,-27,-89,-32r0,-66r456,0r0,70v-20,1,-45,4,-75,12v-30,8,-45,19,-45,32v0,2,2,8,5,16v3,8,7,17,10,28r116,285r122,295r90,-214r118,-286r19,-50v6,-16,9,-32,9,-48v0,-11,-5,-21,-16,-30v-11,-9,-25,-17,-40,-24v-15,-7,-30,-12,-45,-15v-15,-3,-27,-6,-36,-7r0,-64r377,0r0,61","w":1017},"w":{"d":"1541,-922v-28,3,-59,14,-91,35v-32,21,-55,52,-70,93r-94,278r-100,296v-12,35,-24,72,-36,112v-12,40,-24,78,-34,115r-86,0r-265,-726r-267,726r-82,0r-146,-441r-127,-380v-11,-31,-31,-56,-61,-74v-30,-18,-59,-29,-87,-32r0,-66r440,0r0,70v-22,1,-45,4,-71,11v-26,7,-39,18,-39,33v0,3,1,8,3,17v2,9,6,18,9,28r73,235r104,336r252,-710r96,0r257,700r85,-260v28,-84,54,-162,75,-235v5,-17,9,-33,13,-47v4,-14,7,-29,7,-43v0,-12,-5,-23,-16,-32v-11,-9,-24,-17,-39,-23v-13,-5,-28,-9,-44,-12v-16,-3,-27,-4,-34,-4r0,-64r375,0r0,64","w":1510},"x":{"d":"1022,0r-452,0r0,-66v30,-3,55,-7,76,-10v21,-3,32,-12,32,-26v0,-6,-3,-15,-10,-28v-7,-13,-13,-24,-20,-35r-68,-105r-107,-156v-35,43,-67,85,-96,126r-92,131v-5,7,-10,15,-15,25v-5,10,-7,18,-7,24v0,15,10,26,29,36v19,10,47,17,85,20r0,64r-365,0r0,-62v45,-13,82,-29,110,-48v28,-19,53,-43,76,-71r86,-110v0,0,56,-70,144,-190r-124,-179r-122,-175v-17,-25,-38,-45,-60,-61v-22,-16,-53,-24,-94,-24r0,-66r429,0r0,66v-21,0,-42,1,-63,4v-21,3,-31,9,-31,18v0,6,2,13,6,20v4,7,9,15,15,24r68,105r101,150r81,-112r86,-122v3,-5,5,-10,8,-17v3,-7,4,-14,4,-21v0,-14,-11,-25,-34,-33v-23,-8,-45,-15,-66,-18r0,-64r364,0r0,62v-51,13,-91,30,-120,48v-29,18,-53,39,-73,63r-79,101r-127,168r148,210r115,169v19,29,40,52,64,69v24,17,57,27,98,30r0,66","w":1034},"y":{"d":"-3,322v0,-33,9,-61,27,-82v18,-21,42,-31,69,-31v21,0,40,4,55,12v15,8,29,18,41,31v10,10,21,24,32,41r27,43v33,-18,74,-65,120,-141v46,-76,79,-143,100,-200r-172,-424r-161,-387v-13,-31,-34,-55,-64,-72v-30,-17,-60,-27,-90,-32r0,-66r450,0r0,70v-20,1,-44,4,-72,12v-28,8,-42,17,-42,27v0,4,2,11,5,20v3,9,6,19,10,29v25,66,64,162,116,286v52,124,92,223,121,298r93,-222r109,-270r20,-52v9,-22,13,-42,13,-58v0,-17,-16,-33,-46,-48v-30,-15,-59,-25,-86,-28r0,-64r366,0r0,62v-20,3,-46,14,-79,34v-33,20,-57,48,-73,84r-212,503v-62,151,-108,263,-140,334v-42,93,-79,167,-112,219v-33,52,-66,93,-97,123v-31,28,-58,47,-83,57v-25,10,-51,14,-78,14v-52,0,-92,-12,-122,-37v-30,-25,-45,-53,-45,-85","w":1008},"z":{"d":"853,0r-798,0r0,-53r558,-852r-138,0v-58,0,-103,1,-136,3v-33,2,-63,9,-90,20v-19,7,-37,28,-53,63v-16,35,-30,80,-42,136r-61,0r0,-303r754,0r0,41r-567,864v24,1,50,1,79,1v29,0,60,1,93,1v27,0,55,0,84,-1v29,-1,66,-2,111,-5v27,-1,47,-10,61,-27v14,-17,24,-36,31,-57v7,-19,17,-46,27,-80v10,-34,19,-67,27,-99r60,0r0,348","w":909},"{":{"d":"814,333v-70,0,-133,-5,-189,-15v-56,-10,-103,-27,-141,-54v-39,-27,-68,-64,-88,-110v-20,-46,-29,-106,-29,-181v0,-40,2,-83,7,-129v5,-46,8,-88,8,-125v0,-48,-7,-87,-21,-119v-14,-32,-35,-58,-62,-77v-27,-19,-60,-33,-99,-42v-39,-9,-82,-15,-128,-18r0,-129v47,-4,90,-10,130,-20v40,-10,73,-24,98,-42v29,-21,49,-46,62,-78v13,-32,20,-71,20,-116v0,-38,-3,-80,-8,-126v-5,-46,-7,-89,-7,-129v0,-69,9,-128,29,-175v20,-47,49,-85,88,-113v38,-27,85,-47,142,-57v57,-10,119,-15,188,-15r0,82v-27,1,-58,5,-93,11v-35,6,-63,14,-84,25v-24,13,-44,34,-59,63v-15,29,-22,69,-22,118r0,234v0,70,-8,128,-25,174v-17,46,-41,83,-74,112v-30,27,-66,48,-107,64v-41,16,-87,28,-138,37r0,31v48,9,94,22,136,37v42,15,78,37,109,64v31,28,56,65,73,111v17,46,26,104,26,175r0,233v0,47,7,86,21,115v14,29,34,52,60,67v25,14,54,23,87,28v33,5,63,8,90,9r0,80","w":881},"|":{"d":"448,424r-127,0r0,-1947r127,0r0,1947","w":768},"}":{"d":"809,-537v-46,3,-89,10,-129,19v-40,9,-72,22,-98,41v-27,19,-48,45,-62,77v-14,32,-21,71,-21,119v0,37,2,79,7,125v5,46,8,89,8,129v0,75,-10,135,-30,181v-20,46,-48,83,-87,110v-37,26,-85,44,-141,54v-56,10,-119,15,-189,15r0,-80v27,-1,58,-4,91,-9v33,-5,62,-14,86,-28v26,-15,46,-38,60,-67v14,-29,21,-68,21,-115r0,-233v0,-71,9,-129,26,-175v17,-46,42,-83,73,-111v31,-27,68,-49,110,-64v42,-15,87,-28,135,-37r0,-31v-51,-9,-97,-21,-138,-37v-41,-16,-77,-37,-107,-64v-33,-29,-57,-66,-74,-112v-17,-46,-25,-104,-25,-174r0,-234v0,-49,-8,-89,-23,-118v-15,-29,-34,-50,-58,-63v-21,-11,-49,-19,-84,-25v-35,-6,-66,-10,-93,-11r0,-82v69,0,131,5,188,15v57,10,104,30,142,57v39,28,67,66,87,113v20,47,30,106,30,175v0,40,-3,83,-8,129v-5,46,-7,88,-7,126v0,45,6,84,19,116v13,32,34,57,63,78v25,17,57,31,97,41v40,10,84,17,131,21r0,129","w":881},"~":{"d":"1187,-714v-9,25,-25,55,-47,92v-22,37,-45,69,-72,96v-33,33,-68,59,-104,78v-36,19,-75,28,-118,28v-48,0,-92,-8,-132,-22v-40,-14,-77,-29,-110,-46v-34,-17,-67,-33,-100,-47v-33,-14,-67,-21,-100,-21v-45,0,-81,15,-110,46v-29,31,-58,74,-86,130r-78,-31v9,-25,24,-56,46,-92v22,-36,47,-68,74,-96v26,-28,60,-53,100,-74v40,-21,80,-32,121,-32v49,0,93,7,133,21v40,14,77,30,111,47v54,27,55,27,99,47v30,14,62,21,99,21v47,0,85,-16,115,-49v30,-33,56,-75,81,-127"}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2006 Microsoft Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Georgia is either a registered trademark or a trademark of Microsoft
 * Corporation in the United States and/or other countries.
 * 
 * Manufacturer:
 * Carter & Cone
 * 
 * Designer:
 * Matthew Carter
 * 
 * License information:
 * http://www.microsoft.com/typography/fonts/
 */
Cufon.registerFont({"w":1440,"face":{"font-family":"Georgia","font-weight":700,"font-stretch":"normal","units-per-em":"2048","panose-1":"2 4 8 2 5 4 5 2 2 3","ascent":"1638","descent":"-410","x-height":"30","bbox":"-239 -1549 2345 444","underline-thickness":"122","underline-position":"-119","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":520},"\u00a0":{"w":520},"!":{"d":"580,-1261v0,27,-4,64,-14,109v-10,45,-22,97,-37,158v-14,57,-30,128,-48,214v-18,86,-37,192,-57,318r-77,0v-20,-127,-39,-233,-57,-318v-18,-85,-34,-156,-48,-213v-13,-53,-24,-105,-35,-155v-11,-50,-16,-88,-16,-113v0,-51,19,-95,57,-131v38,-36,84,-55,137,-55v53,0,98,19,137,55v39,36,58,80,58,131xm578,-156v0,51,-20,94,-58,130v-38,36,-83,55,-134,55v-52,0,-98,-19,-136,-55v-38,-36,-57,-79,-57,-130v0,-51,19,-95,57,-132v38,-37,84,-55,136,-55v51,0,96,18,134,55v38,37,58,81,58,132","w":771},"\"":{"d":"924,-1369v0,37,-16,107,-48,213v-32,106,-60,217,-83,333r-69,0v-23,-116,-51,-227,-83,-333v-32,-106,-48,-176,-48,-213v0,-43,14,-80,43,-112v29,-32,70,-48,123,-48v52,0,92,16,121,48v29,32,44,69,44,112xm451,-1369v0,37,-17,107,-49,213v-32,106,-59,217,-82,333r-69,0v-23,-116,-51,-227,-83,-333v-32,-106,-48,-176,-48,-213v0,-43,14,-80,43,-112v29,-32,70,-48,123,-48v52,0,93,16,122,48v29,32,43,69,43,112","w":1044},"#":{"d":"1285,-748r-262,0r-78,257r280,0r0,160r-328,0r-101,331r-149,0r101,-331r-230,0r-101,331r-149,0r101,-331r-214,0r0,-160r262,0r79,-257r-281,0r0,-160r329,0r104,-341r149,0r-104,341r230,0r104,-341r149,0r-104,341r213,0r0,160xm877,-750r-233,0r-79,261r232,0"},"$":{"d":"1207,-411v0,124,-47,225,-142,301v-95,76,-212,119,-351,128r0,281r-99,0r0,-281v-141,-3,-261,-34,-360,-96v-99,-62,-149,-134,-149,-215v0,-47,14,-87,43,-120v29,-33,68,-49,119,-49v53,0,95,14,126,42v31,28,46,65,46,112v0,34,-6,68,-17,102v-11,34,-21,62,-28,81v18,9,47,21,89,36v42,15,86,22,131,22r0,-449v-9,-1,-18,-3,-27,-4v-13,-2,-13,-1,-30,-3v-128,-12,-229,-51,-303,-116v-74,-65,-111,-151,-111,-256v0,-47,9,-92,26,-137v17,-45,44,-86,80,-125v37,-40,86,-74,146,-101v60,-27,133,-43,219,-48r0,-218r99,0r0,218v137,5,247,34,332,86v85,52,127,115,127,191v0,45,-13,83,-41,115v-28,32,-66,48,-115,48v-51,0,-91,-13,-120,-40v-29,-27,-44,-63,-44,-108v0,-31,5,-62,15,-92r28,-81v-18,-9,-44,-17,-76,-23v-32,-6,-67,-10,-106,-11r0,409v10,1,23,2,38,5v15,3,29,5,40,6v137,20,240,63,310,130v70,67,105,153,105,260xm615,-821r0,-400v-76,8,-135,30,-175,67v-40,37,-60,81,-60,132v0,59,17,104,50,135v33,31,80,51,143,60v10,1,18,2,23,3v5,1,11,2,19,3xm973,-293v0,-55,-16,-101,-49,-135v-33,-34,-84,-58,-155,-71v-7,-1,-16,-3,-26,-4r-29,-4r0,440v91,-9,157,-33,198,-75v41,-42,61,-92,61,-151","w":1312},"%":{"d":"870,-1086v0,111,-37,201,-112,270v-75,69,-168,104,-277,104v-111,0,-203,-35,-278,-104v-75,-69,-112,-159,-112,-270v0,-111,37,-201,112,-270v75,-69,167,-104,277,-104v110,0,203,35,278,104v75,69,112,159,112,270xm605,-1084v0,-92,-9,-165,-27,-220v-18,-55,-51,-83,-99,-83v-43,0,-75,25,-94,77v-19,52,-29,124,-29,216v0,96,8,171,26,226v18,55,52,83,101,83v43,0,74,-25,93,-77v19,-52,29,-126,29,-222xm1710,-339v0,111,-37,202,-112,271v-75,69,-168,103,-277,103v-111,0,-203,-34,-278,-103v-75,-69,-112,-160,-112,-271v0,-111,37,-202,112,-271v75,-69,167,-103,277,-103v110,0,203,34,278,103v75,69,112,160,112,271xm1445,-337v0,-92,-9,-166,-27,-221v-18,-55,-51,-82,-99,-82v-43,0,-75,26,-94,78v-19,52,-29,123,-29,215v0,96,8,172,26,227v18,55,52,82,101,82v43,0,74,-26,93,-78v19,-52,29,-125,29,-221xm1574,-1428r-1183,1428r-163,0r1180,-1428r166,0","w":1801},"&":{"d":"1646,0r-588,0r-62,-70v-25,-29,-47,-55,-65,-78v-71,65,-141,112,-211,140v-70,28,-146,43,-225,43v-125,0,-227,-34,-307,-101v-80,-67,-119,-155,-119,-263v0,-54,7,-100,21,-139v14,-39,38,-77,70,-116v31,-37,69,-70,114,-100v45,-30,96,-58,153,-84v-60,-76,-101,-141,-125,-194v-24,-53,-36,-108,-36,-164v0,-96,40,-176,120,-238v80,-62,176,-93,287,-93v104,0,188,25,253,74v65,49,97,115,97,196v0,71,-19,133,-58,189v-39,56,-103,111,-193,164v73,93,128,163,168,210r159,186v42,-62,74,-119,95,-171v21,-52,31,-96,31,-131v0,-20,-15,-36,-45,-48v-30,-12,-71,-24,-125,-35r0,-76r559,0r0,76v-61,5,-105,13,-134,22v-29,9,-58,28,-86,57v-12,12,-26,34,-44,64r-51,87r-62,107v-22,37,-49,76,-80,117v61,72,111,125,151,161v40,36,73,61,98,74v29,15,65,27,109,36v44,9,88,15,131,18r0,80xm871,-1172v0,-59,-15,-104,-43,-138v-28,-34,-65,-51,-110,-51v-43,0,-78,13,-105,41v-27,28,-40,64,-40,109v0,39,12,82,37,131v25,49,63,109,114,179v51,-35,88,-76,112,-123v24,-47,35,-97,35,-148xm878,-213r-196,-235r-207,-255v-35,35,-61,75,-77,121v-16,46,-23,93,-23,140v0,89,28,161,85,217v57,56,129,84,216,84v41,0,76,-5,106,-15v30,-10,62,-30,96,-57","w":1637},"'":{"d":"441,-1369v0,37,-17,107,-49,213v-32,106,-59,217,-82,333r-69,0v-23,-116,-51,-227,-83,-333v-32,-106,-48,-176,-48,-213v0,-43,14,-80,43,-112v29,-32,70,-48,123,-48v52,0,93,16,122,48v29,32,43,69,43,112","w":551},"(":{"d":"848,328v-91,-12,-180,-39,-268,-81v-88,-42,-166,-101,-235,-177v-69,-76,-125,-169,-167,-280v-42,-111,-63,-242,-63,-392v0,-150,21,-281,63,-392v42,-111,98,-204,167,-280v69,-75,147,-134,235,-176v88,-42,177,-70,268,-82r0,90v-126,23,-223,105,-290,244v-67,139,-101,337,-101,596v0,259,34,457,101,596v67,139,164,221,290,244r0,90","w":915},")":{"d":"801,-602v0,150,-21,281,-63,392v-42,111,-98,204,-167,280v-69,75,-147,134,-235,176v-88,42,-177,70,-268,82r0,-90v126,-23,223,-105,290,-244v67,-139,101,-337,101,-596v0,-259,-34,-457,-101,-596v-67,-139,-164,-221,-290,-244r0,-90v91,12,180,40,268,82v88,42,166,101,235,176v69,76,125,169,167,280v42,111,63,242,63,392","w":915},"*":{"d":"907,-1083v0,30,-8,51,-25,65v-17,14,-39,21,-65,21v-17,0,-51,-7,-103,-22v-52,-15,-108,-26,-167,-33v39,51,81,98,128,143v47,45,70,83,70,114v0,22,-10,41,-29,57v-19,16,-40,25,-61,25v-15,0,-28,-5,-41,-13v-13,-8,-24,-20,-33,-35v-8,-15,-19,-48,-33,-100v-14,-52,-31,-105,-54,-160v-22,52,-40,106,-55,161v-15,55,-25,88,-32,99v-11,17,-22,29,-33,37v-11,8,-24,11,-41,11v-22,0,-42,-7,-61,-23v-19,-16,-29,-36,-29,-59v0,-31,23,-69,70,-114v47,-45,89,-92,128,-143v-56,7,-111,17,-165,32v-54,15,-89,23,-105,23v-26,0,-48,-7,-65,-21v-17,-14,-25,-35,-25,-65v0,-27,8,-48,25,-63v17,-15,39,-23,65,-23v21,0,53,7,99,21v46,14,103,24,171,32v-44,-56,-88,-106,-132,-148v-44,-42,-66,-78,-66,-109v0,-22,10,-41,29,-57v19,-16,40,-25,61,-25v15,0,29,4,41,12v12,8,24,20,33,35v8,15,19,48,33,101v14,53,32,106,54,160v22,-55,40,-108,54,-161v14,-53,26,-86,33,-100v8,-14,18,-25,31,-34v13,-9,28,-13,43,-13v22,0,42,7,61,23v19,16,29,36,29,59v0,31,-21,66,-63,107v-42,41,-86,91,-134,150v67,-9,124,-20,172,-33v48,-13,80,-20,97,-20v26,0,48,8,65,23v17,15,25,36,25,63","w":987},"+":{"d":"1275,-493r-473,0r0,473r-165,0r0,-473r-473,0r0,-163r473,0r0,-473r165,0r0,473r473,0r0,163"},",":{"d":"539,-53v0,81,-34,164,-102,249v-68,85,-150,150,-245,193r-44,-71v33,-17,63,-36,92,-56v29,-20,55,-43,78,-70v23,-28,42,-57,56,-86v14,-29,22,-64,25,-106r-56,0v-68,0,-119,-15,-154,-46v-35,-31,-52,-73,-52,-127v0,-43,17,-81,50,-115v33,-34,74,-52,123,-52v75,0,131,25,170,76v39,51,59,122,59,211","w":672},"-":{"d":"691,-435r-606,0r0,-221r606,0r0,221","w":776},"\u00ad":{"d":"691,-435r-606,0r0,-221r606,0r0,221","w":776},".":{"d":"534,-166v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-19,-139,-57v-39,-38,-59,-85,-59,-138v0,-53,20,-99,59,-138v39,-39,85,-59,139,-59v53,0,100,20,139,59v39,39,58,85,58,138","w":672},"\/":{"d":"898,-1523r-691,1947r-180,0r689,-1947r182,0","w":966},"0":{"d":"1184,-932v51,53,88,114,112,182v24,68,37,140,37,213v0,87,-15,167,-45,237v-30,70,-72,129,-125,178v-55,51,-120,89,-193,116v-73,27,-158,40,-253,40v-101,0,-190,-16,-267,-47v-77,-31,-141,-73,-192,-124v-51,-51,-90,-110,-116,-179v-26,-69,-39,-142,-39,-221v0,-78,12,-150,37,-217v25,-67,64,-127,116,-181v51,-53,115,-95,193,-127v78,-32,168,-47,269,-47v105,0,196,16,274,49v78,33,142,75,192,128xm902,-187v19,-45,34,-94,42,-149v8,-55,12,-122,12,-201v0,-71,-4,-134,-12,-191v-8,-57,-20,-107,-38,-151v-19,-45,-43,-80,-74,-105v-31,-25,-68,-37,-113,-37v-45,0,-83,13,-114,37v-31,24,-56,58,-75,103v-17,41,-30,90,-38,149v-8,59,-12,124,-12,195v0,74,3,137,10,189v7,52,20,102,39,150v17,43,41,78,72,105v31,27,70,40,116,40v43,0,80,-12,111,-36v31,-24,56,-57,74,-98","w":1436},"1":{"d":"946,0r-825,0r0,-76v20,-1,51,-5,95,-10v44,-5,74,-11,90,-16v20,-7,36,-18,47,-34v11,-16,17,-38,17,-66r0,-634r-253,0r0,-95r55,0v58,0,108,-6,150,-19v42,-13,78,-28,106,-46v29,-19,52,-38,70,-58v18,-20,33,-38,44,-53r176,0v-2,43,-4,94,-6,152v-2,58,-3,110,-3,156r0,586v0,24,5,45,15,63v10,18,26,31,45,40v17,8,46,15,87,22v41,7,71,11,90,12r0,76","w":1003},"2":{"d":"1194,0r-1084,0r0,-181v47,-48,100,-91,156,-131v56,-40,113,-75,171,-106v62,-33,114,-62,156,-88v42,-26,75,-52,99,-80v24,-26,42,-54,52,-85v10,-31,15,-65,15,-103v0,-85,-20,-146,-60,-185v-40,-39,-93,-58,-159,-58v-21,0,-40,2,-58,5v-18,3,-38,8,-58,16v10,30,20,61,29,93v9,32,14,68,14,107v0,47,-17,85,-51,113v-34,28,-77,42,-130,42v-50,0,-90,-16,-120,-49v-30,-33,-44,-72,-44,-119v0,-81,47,-152,142,-211v95,-59,210,-89,346,-89v157,0,285,27,382,81v97,54,145,141,145,261v0,62,-13,112,-39,150v-26,38,-63,71,-113,100v-45,26,-95,47,-149,64v-54,17,-112,33,-174,48v-66,17,-123,34,-172,53v-49,19,-93,41,-131,67r0,11r835,0r0,274","w":1283},"3":{"d":"1036,-336v40,27,73,62,100,106v27,44,40,99,40,164v0,125,-60,228,-179,311v-119,83,-273,124,-461,124v-135,0,-249,-29,-343,-87v-94,-58,-141,-128,-141,-212v0,-47,16,-87,46,-120v30,-33,70,-49,121,-49v53,0,95,15,129,43v34,28,51,66,51,113v0,33,-5,69,-17,109v-12,40,-21,71,-28,90v15,7,34,12,57,16v23,4,51,5,82,5v39,0,76,-6,113,-19v37,-13,70,-33,97,-62v29,-30,51,-66,67,-106v16,-40,23,-93,23,-160v0,-38,-4,-74,-11,-108v-7,-34,-19,-64,-38,-89v-19,-25,-44,-45,-76,-59v-32,-14,-74,-22,-124,-22r-127,0r0,-121r90,0v84,0,145,-25,183,-75v38,-50,56,-125,56,-227v0,-82,-18,-144,-54,-185v-36,-41,-89,-61,-158,-61v-26,0,-49,2,-68,5v-19,3,-39,8,-59,16v7,23,16,54,27,95v11,41,16,75,16,104v0,47,-16,85,-49,113v-33,28,-75,42,-128,42v-50,0,-89,-16,-119,-49v-30,-33,-45,-72,-45,-119v0,-83,47,-154,143,-212v96,-58,216,-87,361,-87v100,0,183,12,249,35v66,23,117,52,155,86v37,33,63,70,77,108v14,38,22,72,22,103v0,29,-6,62,-18,99v-12,37,-31,70,-55,98v-29,34,-68,63,-115,88v-47,25,-103,44,-166,57r0,16v43,3,90,11,140,24v50,13,95,33,134,59","w":1279},"4":{"d":"1261,-10r-215,0r0,379r-335,0r0,-379r-662,0r0,-184r718,-909r279,0r0,882r215,0r0,211xm711,-221r0,-643r-509,643r509,0","w":1330},"5":{"d":"964,-474v50,33,92,78,126,134v34,56,51,127,51,210v0,147,-57,267,-171,360v-114,93,-258,139,-435,139v-137,0,-251,-29,-342,-88v-91,-59,-137,-128,-137,-208v0,-47,16,-87,46,-120v30,-33,70,-49,121,-49v53,0,95,14,129,42v34,28,51,67,51,114v0,33,-6,70,-17,109v-11,39,-21,69,-28,90v16,6,35,10,56,13v21,3,41,5,60,5v38,0,75,-8,112,-25v37,-17,68,-42,94,-75v30,-37,53,-82,68,-133v15,-51,23,-108,23,-173v0,-94,-25,-171,-75,-231v-50,-60,-116,-91,-196,-91v-62,0,-114,12,-156,37v-42,25,-80,58,-113,99r-78,-26r97,-736r845,0r0,276r-773,0r-41,330v36,-23,82,-44,139,-65v57,-21,123,-31,200,-31v59,0,118,6,176,19v58,13,113,38,168,74","w":1227},"6":{"d":"1243,-463v0,141,-53,260,-159,355v-106,95,-243,143,-408,143v-173,0,-311,-55,-416,-163v-105,-108,-157,-253,-157,-436v0,-244,82,-446,247,-605v165,-159,388,-256,671,-289r23,99r-106,18v-81,22,-148,53,-202,91v-54,38,-100,82,-135,131v-34,47,-61,101,-80,161v-19,60,-34,118,-44,176v58,-52,116,-87,173,-105v57,-18,118,-27,183,-27v115,0,212,42,291,126v79,84,119,192,119,325xm873,-436v0,-105,-18,-189,-55,-251v-37,-62,-87,-93,-149,-93v-41,0,-77,7,-107,21v-30,14,-61,43,-92,88r0,17v0,0,-1,20,-2,33v-1,15,-2,28,-2,41r0,32v0,160,19,283,58,368v39,85,90,127,151,127v59,0,107,-33,143,-100v36,-67,55,-161,55,-283","w":1327},"7":{"d":"1144,-958r-728,1327r-150,0r674,-1177r-458,0v-58,0,-103,0,-136,1v-33,1,-63,7,-90,20v-22,10,-40,33,-56,69v-16,36,-29,81,-38,134r-73,0r0,-493r1055,0r0,119","w":1135},"8":{"d":"1281,-397v0,123,-55,226,-165,309v-110,83,-258,125,-447,125v-169,0,-305,-36,-409,-107v-104,-71,-156,-163,-156,-274v0,-86,28,-156,84,-212v56,-56,143,-98,263,-126v-96,-43,-168,-98,-217,-164v-49,-66,-74,-140,-74,-221v0,-111,54,-205,160,-280v106,-75,237,-113,394,-113v152,0,276,33,370,100v94,67,141,149,141,248v0,76,-26,140,-77,192v-51,52,-128,92,-230,123v128,46,221,102,278,169v57,67,85,144,85,231xm891,-1114v0,-77,-17,-140,-51,-188v-34,-48,-83,-71,-144,-71v-58,0,-106,20,-144,61v-38,41,-57,93,-57,156v0,44,8,80,25,110v17,30,40,56,71,78v28,21,68,43,119,68r136,67v15,-33,26,-75,34,-123v8,-48,11,-101,11,-158xm945,-296v0,-47,-10,-85,-30,-116v-20,-31,-49,-58,-86,-83v-37,-24,-85,-49,-143,-74v-58,-25,-112,-51,-164,-77v-22,26,-41,65,-58,117v-17,52,-25,107,-25,165v0,98,24,175,71,230v47,55,110,83,187,83v77,0,138,-23,182,-68v44,-45,66,-104,66,-177","w":1385},"9":{"d":"1224,-508v0,243,-82,442,-246,596v-164,154,-388,250,-672,287r-23,-99r106,-18v82,-23,150,-53,204,-90v54,-37,98,-79,133,-128v36,-50,63,-103,82,-159v19,-56,33,-114,42,-173v-59,51,-115,86,-170,102v-55,16,-117,24,-186,24v-57,0,-111,-11,-161,-34v-50,-23,-93,-54,-130,-93v-37,-40,-66,-89,-87,-145v-21,-56,-32,-117,-32,-183v0,-141,54,-257,162,-349v108,-92,243,-139,405,-139v175,0,315,54,418,163v103,109,155,255,155,438xm859,-453v0,-9,0,-21,1,-34v1,-13,1,-26,1,-39v0,-160,-19,-283,-57,-368v-38,-85,-89,-127,-150,-127v-59,0,-107,32,-144,97v-37,65,-56,158,-56,280v0,107,18,192,56,255v38,63,88,95,149,95v39,0,74,-8,107,-23v33,-15,63,-44,91,-86v0,-3,0,-9,1,-17v1,-8,1,-20,1,-33","w":1327},":":{"d":"574,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138xm574,-166v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-19,-139,-57v-39,-38,-59,-85,-59,-138v0,-53,20,-99,59,-138v39,-39,85,-59,139,-59v53,0,100,20,139,59v39,39,58,85,58,138","w":752},";":{"d":"574,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138xm579,-53v0,81,-34,164,-102,249v-68,85,-150,150,-245,193r-44,-71v33,-17,63,-36,92,-56v29,-20,55,-43,78,-70v23,-28,42,-57,56,-86v14,-29,22,-64,25,-106r-56,0v-68,0,-119,-15,-154,-46v-35,-31,-52,-73,-52,-127v0,-43,17,-81,50,-115v33,-34,74,-52,123,-52v75,0,131,25,170,76v39,51,59,122,59,211","w":752},"\u037e":{"d":"574,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138xm579,-53v0,81,-34,164,-102,249v-68,85,-150,150,-245,193r-44,-71v33,-17,63,-36,92,-56v29,-20,55,-43,78,-70v23,-28,42,-57,56,-86v14,-29,22,-64,25,-106r-56,0v-68,0,-119,-15,-154,-46v-35,-31,-52,-73,-52,-127v0,-43,17,-81,50,-115v33,-34,74,-52,123,-52v75,0,131,25,170,76v39,51,59,122,59,211","w":752},"<":{"d":"1209,-6r-1000,-500r0,-139r1000,-500r0,188r-786,382r786,381r0,188"},"=":{"d":"1255,-700r-1070,0r0,-163r1070,0r0,163xm1255,-286r-1070,0r0,-163r1070,0r0,163"},">":{"d":"1231,-506r-1000,500r0,-188r786,-381r-786,-382r0,-188r1000,500r0,139"},"?":{"d":"1016,-1037v0,134,-46,243,-138,326v-92,83,-215,131,-368,143r-6,136r-89,0r0,-389v97,-8,172,-38,227,-91v55,-53,82,-126,82,-217v0,-73,-20,-131,-58,-175v-38,-44,-89,-65,-154,-65v-27,0,-52,3,-73,9v-21,6,-42,14,-62,26v7,21,14,48,23,82v9,34,14,65,14,94v0,47,-16,82,-46,108v-30,26,-72,39,-126,39v-51,0,-91,-16,-120,-48v-29,-32,-43,-71,-43,-118v0,-77,44,-142,131,-195v87,-53,193,-80,316,-80v146,0,264,38,354,114v90,76,136,176,136,301xm656,-156v0,51,-20,94,-58,130v-38,36,-83,55,-134,55v-52,0,-98,-19,-136,-55v-38,-36,-57,-79,-57,-130v0,-51,19,-95,57,-132v38,-37,84,-55,136,-55v51,0,96,18,134,55v38,37,58,81,58,132","w":1123},"@":{"d":"1658,-1173v58,61,102,132,130,211v28,79,42,160,42,245v0,168,-47,310,-142,427v-95,117,-214,175,-355,175v-73,0,-134,-12,-181,-37v-47,-25,-78,-57,-91,-96r-5,0r-48,50v-17,17,-36,32,-55,43v-21,12,-41,21,-60,27v-19,6,-44,8,-75,8v-82,0,-146,-26,-192,-78v-46,-52,-68,-119,-68,-204v0,-64,13,-130,40,-198v27,-68,64,-129,111,-185v45,-54,100,-98,164,-133v64,-35,130,-53,199,-53v46,0,80,9,104,25v24,16,42,41,53,74r2,0r32,-87r257,0r-201,555v-5,13,-11,32,-15,56v-4,24,-6,42,-6,55v0,27,6,49,18,65v12,16,31,23,57,23v105,0,189,-49,252,-145v63,-96,95,-222,95,-378v0,-78,-13,-150,-39,-216v-26,-66,-65,-124,-116,-173v-51,-49,-116,-89,-193,-117v-77,-28,-166,-42,-265,-42v-95,0,-188,18,-277,54v-89,36,-169,88,-242,157v-71,67,-128,149,-172,247v-44,98,-66,207,-66,328v0,118,17,222,52,312v35,90,82,164,143,224v61,61,133,106,216,137v83,31,174,46,274,46v114,0,215,-15,303,-45v88,-30,167,-71,236,-125r39,62v-76,61,-162,110,-257,147v-95,37,-204,55,-328,55v-105,0,-210,-17,-316,-51v-106,-34,-199,-83,-280,-149v-82,-66,-148,-149,-198,-250v-50,-101,-76,-217,-76,-350v0,-117,23,-229,68,-337v45,-108,110,-203,193,-287v82,-83,183,-149,303,-200v120,-51,252,-76,394,-76v125,0,233,18,322,55v89,37,162,87,220,149xm1189,-760v-1,-37,-9,-67,-27,-90v-18,-23,-44,-35,-79,-35v-33,0,-66,15,-97,45v-31,30,-58,69,-83,118v-24,48,-43,102,-57,164v-14,62,-22,123,-22,182v0,45,7,80,20,104v13,24,33,36,62,36v25,0,48,-7,68,-20v20,-13,41,-34,62,-63","w":1980},"A":{"d":"1609,0r-773,0r0,-78v36,-3,78,-10,127,-20v49,-10,73,-23,73,-38v0,-5,-1,-11,-2,-18v-1,-7,-3,-16,-8,-27r-121,-294r-490,0v-11,27,-23,59,-37,96v-20,55,-21,55,-36,98v-13,37,-20,64,-22,81v-2,17,-4,28,-4,35v0,21,16,40,48,55v32,15,87,25,162,32r0,78r-582,0r0,-78v22,-1,46,-4,74,-10v28,-6,50,-14,66,-24v27,-16,51,-36,70,-59v19,-23,34,-51,47,-83r233,-563r257,-622r200,0r307,762r189,464v9,20,20,39,33,55v13,16,32,31,57,46v19,11,40,19,65,24v25,5,47,9,67,10r0,78xm864,-574r-206,-514r-203,514r409,0","w":1553},"B":{"d":"1322,-651v43,29,77,67,104,111v27,44,40,96,40,156v0,72,-16,132,-46,182v-30,50,-73,89,-130,118v-60,31,-130,52,-208,65v-78,13,-170,19,-276,19r-737,0r0,-78v21,-2,47,-5,78,-9v31,-4,53,-9,66,-14v25,-10,42,-23,51,-39v9,-16,13,-38,13,-64r0,-1000v0,-24,-4,-44,-11,-60v-7,-16,-25,-30,-53,-42v-21,-9,-45,-16,-72,-22v-27,-6,-51,-10,-72,-13r0,-78r771,0v194,0,334,27,420,80v86,53,129,132,129,236v0,48,-10,91,-29,127v-19,36,-47,67,-83,94v-33,25,-72,46,-117,64v-45,18,-94,33,-146,45r0,19v52,5,106,16,162,34v56,18,105,41,146,69xm1000,-1078v0,-79,-22,-140,-66,-184v-44,-44,-111,-66,-200,-66v-13,0,-30,1,-50,2v-30,2,-30,1,-52,2r0,526r52,0v108,0,188,-26,239,-76v51,-50,77,-118,77,-204xm1070,-397v0,-99,-29,-174,-88,-227v-59,-53,-143,-79,-253,-79v-13,0,-30,0,-51,1v-21,1,-36,2,-46,3r0,519v6,25,25,45,56,62v31,17,69,26,114,26v79,0,144,-27,194,-80v50,-53,74,-128,74,-225","w":1551},"C":{"d":"813,38v-104,0,-201,-16,-292,-50v-91,-34,-170,-83,-237,-147v-66,-63,-118,-141,-156,-233v-38,-92,-57,-193,-57,-304v0,-110,19,-212,57,-306v38,-94,93,-174,162,-243v68,-67,150,-120,245,-157v95,-37,197,-55,306,-55v79,0,150,10,215,29v65,19,119,40,164,64r62,-55r87,0r9,518r-88,0v-50,-158,-110,-274,-180,-348v-70,-74,-155,-111,-256,-111v-125,0,-221,56,-286,166v-65,110,-98,265,-98,464v0,113,12,208,34,288v22,80,51,144,87,193v39,51,84,87,137,111v53,24,111,36,175,36v93,0,176,-25,249,-76v73,-51,140,-127,200,-230r86,52v-29,59,-61,112,-98,158v-37,46,-79,86,-127,119v-53,37,-111,65,-175,86v-64,21,-138,31,-225,31","w":1465},"D":{"d":"1347,-1273v87,57,157,133,210,227v53,94,80,209,80,346v0,120,-23,225,-71,314v-48,89,-111,161,-190,218v-80,57,-170,98,-272,126v-102,28,-209,42,-320,42r-715,0r0,-78v21,-1,48,-3,80,-6v32,-3,53,-7,64,-12v24,-10,41,-23,50,-40v9,-17,14,-38,14,-62r0,-1006v0,-23,-4,-44,-13,-62v-9,-18,-26,-33,-51,-44v-25,-11,-53,-19,-81,-23v-28,-4,-50,-7,-65,-8r0,-78r755,0v81,0,167,10,259,31v92,21,181,59,266,115xm1143,-256v33,-53,56,-116,71,-190v15,-74,23,-159,23,-255v0,-94,-10,-180,-30,-257v-20,-77,-49,-143,-88,-198v-39,-55,-87,-97,-145,-127v-58,-30,-123,-45,-196,-45v-23,0,-50,1,-80,2v-30,1,-51,1,-66,2r0,1077v0,24,4,45,10,63v6,18,17,35,32,49v15,14,34,25,56,33v22,8,52,11,88,11v75,0,140,-14,194,-42v54,-28,98,-69,131,-123","w":1708},"E":{"d":"1327,-1057r-76,0v-19,-54,-53,-109,-100,-164v-47,-55,-94,-88,-141,-98v-20,-5,-48,-8,-84,-9v-36,-1,-65,-1,-88,-1r-206,0r0,548r146,0v37,0,70,-4,100,-13v30,-9,57,-25,82,-50v15,-15,30,-42,46,-81v16,-39,26,-72,31,-101r76,0r0,592r-76,0v-4,-28,-15,-64,-31,-106v-16,-42,-31,-71,-46,-87v-22,-24,-48,-40,-78,-49v-30,-9,-65,-14,-104,-14r-146,0r0,409v0,43,4,76,10,101v6,25,18,45,35,58v17,13,40,21,69,25v29,4,68,6,118,6v23,0,51,0,84,-1v33,-1,61,-3,86,-6v28,-3,54,-8,78,-15v24,-7,43,-16,55,-29v32,-33,68,-83,108,-150v40,-67,66,-117,79,-150r73,0r-27,442r-1331,0r0,-78v19,-1,44,-4,76,-8v32,-4,55,-9,68,-14v25,-11,42,-24,51,-40v9,-16,13,-38,13,-63r0,-1001v0,-24,-4,-44,-11,-60v-7,-16,-25,-29,-53,-42v-17,-8,-42,-15,-73,-22v-31,-7,-55,-11,-71,-13r0,-78r1258,0r0,362","w":1477},"F":{"d":"1344,-1040r-77,0v-19,-55,-54,-114,-103,-176v-49,-62,-95,-97,-139,-103v-20,-3,-47,-5,-80,-7v-33,-2,-64,-3,-92,-3r-221,0r0,557r141,0v40,0,75,-5,104,-14v29,-9,55,-25,78,-48v17,-17,33,-45,49,-84v16,-39,25,-72,28,-100r76,0r0,597r-76,0v-3,-30,-13,-66,-31,-109v-18,-43,-33,-72,-46,-86v-19,-21,-44,-38,-74,-48v-30,-10,-66,-15,-108,-15r-141,0r0,470v0,24,5,44,14,61v9,17,26,31,51,42v15,6,35,11,61,16v26,5,51,9,76,12r0,78r-765,0r0,-78v19,-2,45,-4,77,-8v32,-4,54,-9,67,-14v24,-9,41,-22,50,-39v9,-17,14,-38,14,-64r0,-1001v0,-23,-5,-43,-13,-60v-8,-17,-25,-31,-51,-42v-19,-8,-43,-15,-74,-22v-31,-7,-54,-11,-70,-13r0,-78r1275,0r0,379","w":1375},"G":{"d":"1649,-577v-21,2,-39,4,-55,7v-16,3,-36,8,-60,16v-27,9,-45,23,-54,43v-9,20,-13,41,-13,63r0,165v0,33,0,61,1,81v1,20,2,45,3,75v-67,40,-165,78,-295,113v-130,35,-251,53,-360,53v-103,0,-199,-16,-289,-47v-90,-31,-169,-78,-237,-141v-68,-62,-121,-139,-160,-231v-39,-92,-59,-197,-59,-316v0,-111,18,-213,55,-307v37,-94,90,-175,159,-243v68,-67,151,-119,249,-156v98,-37,205,-55,324,-55v81,0,155,9,224,29v69,20,125,41,170,64r62,-55r87,0r9,518r-88,0v-51,-155,-111,-271,-182,-346v-71,-75,-160,-113,-268,-113v-128,0,-226,56,-296,168v-70,112,-105,266,-105,463v0,209,35,372,103,490v68,118,165,177,290,177v59,0,110,-8,156,-26v46,-18,82,-39,107,-62r0,-288v0,-24,-4,-44,-13,-60v-9,-16,-26,-31,-52,-43v-20,-9,-45,-17,-75,-23v-30,-6,-55,-10,-75,-13r0,-78r737,0r0,78","w":1653},"H":{"d":"1801,0r-767,0r0,-78r73,-6v32,-3,54,-7,66,-12v25,-10,42,-24,51,-40v9,-16,14,-37,14,-62r0,-489r-606,0r0,478v0,23,4,43,14,61v10,18,27,32,50,42v13,5,34,11,65,17v31,6,56,10,75,11r0,78r-767,0r0,-78v17,-1,41,-2,73,-6v32,-4,56,-9,71,-14v24,-9,41,-22,50,-40v9,-18,14,-38,14,-62r0,-1004v0,-23,-5,-43,-13,-59v-8,-16,-25,-30,-51,-42v-19,-9,-45,-16,-76,-23v-31,-7,-54,-12,-68,-13r0,-78r767,0r0,78v-21,1,-45,5,-74,10v-29,5,-51,10,-66,15v-26,9,-44,23,-52,42v-8,19,-12,39,-12,60r0,424r606,0r0,-414v0,-23,-4,-43,-13,-59v-9,-16,-26,-30,-52,-42v-17,-8,-40,-16,-69,-23v-29,-7,-53,-11,-70,-13r0,-78r767,0r0,78v-21,1,-45,5,-72,9v-27,4,-51,9,-72,16v-25,9,-42,22,-51,41v-9,19,-13,39,-13,61r0,1005v0,24,4,44,13,61v9,17,26,31,51,42v16,7,39,13,69,18v30,5,56,9,75,10r0,78","w":1870},"I":{"d":"850,0r-787,0r0,-78r79,-6v35,-3,60,-7,73,-12v25,-10,42,-24,51,-40v9,-16,13,-37,13,-62r0,-1006v0,-23,-4,-43,-13,-60v-9,-17,-26,-31,-51,-42v-16,-7,-40,-13,-71,-20v-31,-7,-58,-12,-81,-15r0,-78r787,0r0,78v-20,2,-45,5,-75,9v-30,4,-55,8,-76,15v-26,9,-43,23,-52,41v-9,18,-13,39,-13,62r0,1005v0,24,5,44,14,61v9,17,26,31,51,42v14,6,37,12,69,18v32,6,60,9,82,10r0,78","w":913},"J":{"d":"1166,-1341v-27,3,-49,7,-68,10v-19,3,-40,8,-63,14v-27,7,-45,20,-53,39v-8,19,-11,40,-11,64r0,782v0,72,-14,138,-43,198v-29,60,-69,110,-120,151v-51,40,-109,71,-172,91v-63,20,-131,30,-203,30v-125,0,-225,-30,-301,-90v-76,-60,-115,-142,-115,-247v0,-62,18,-113,53,-154v35,-41,83,-61,144,-61v58,0,104,17,138,51v34,34,52,76,52,126v0,43,-14,83,-44,119v-30,36,-64,69,-102,100r0,13v6,13,19,25,39,34v20,9,40,14,61,14v80,0,142,-29,188,-86v46,-57,69,-144,69,-260r0,-801v0,-24,-4,-44,-11,-60v-7,-16,-25,-30,-53,-42v-20,-9,-45,-16,-73,-22v-28,-6,-51,-10,-70,-13r0,-78r758,0r0,78","w":1219},"K":{"d":"1736,0r-562,0v-85,-130,-161,-239,-229,-326r-261,-329r-52,0r0,446v0,24,4,44,13,61v9,17,26,31,52,42v12,5,29,11,53,16v24,5,48,9,71,12r0,78r-754,0r0,-78v18,-1,44,-3,77,-6v33,-3,56,-7,69,-12v24,-9,41,-22,50,-39v9,-17,14,-38,14,-63r0,-1006v0,-23,-4,-43,-12,-59v-8,-16,-25,-30,-52,-43v-21,-9,-46,-17,-75,-23v-29,-6,-53,-10,-71,-12r0,-78r779,0r0,78v-21,2,-45,5,-74,9v-29,4,-54,8,-75,15v-26,9,-43,22,-52,41v-9,19,-13,39,-13,62r0,478r42,0r182,-171v69,-67,123,-121,161,-164v53,-59,92,-106,117,-141v25,-35,38,-65,38,-90v0,-11,-12,-20,-36,-26v-24,-6,-61,-10,-110,-13r0,-78r617,0r0,78v-75,8,-137,22,-188,41v-51,19,-101,50,-151,95v-71,64,-130,120,-176,167r-179,180r231,286r269,331v23,27,49,54,78,79v29,25,62,45,97,60v17,7,36,13,57,17v21,4,40,6,55,7r0,78","w":1673},"L":{"d":"1404,-455r-28,455r-1307,0r0,-78v23,-2,51,-6,82,-10v31,-4,52,-8,62,-12v24,-9,41,-22,50,-39v9,-17,14,-38,14,-64r0,-1001v0,-24,-4,-44,-11,-60v-7,-16,-25,-29,-53,-42v-21,-9,-46,-16,-75,-22v-29,-6,-52,-10,-69,-13r0,-78r779,0r0,78v-21,2,-47,5,-76,9v-29,4,-54,8,-75,15v-26,9,-43,23,-52,41v-9,18,-13,39,-13,62r0,933v0,44,3,79,9,104v6,25,18,44,35,56v17,13,41,21,72,25v31,4,74,5,129,5v53,0,105,-3,155,-9v50,-6,87,-21,109,-42v34,-34,69,-82,105,-144v36,-62,64,-118,85,-169r73,0","w":1404},"M":{"d":"2019,0r-769,0r0,-78v23,-2,51,-5,84,-10v33,-5,55,-10,67,-15v25,-10,42,-24,53,-41v11,-17,16,-39,16,-66r0,-1060r-488,1247r-126,0v-6,-22,-20,-66,-44,-131r-58,-157r-359,-975r0,863v0,83,6,146,17,189v11,43,28,74,53,94v17,14,46,27,89,40v43,13,74,20,91,22r0,78r-610,0r0,-78v17,-2,43,-7,81,-14v38,-7,69,-19,93,-36v27,-19,45,-50,54,-94v9,-44,14,-108,14,-190r0,-703v0,-43,-5,-79,-16,-107v-11,-28,-27,-50,-48,-67v-27,-21,-54,-34,-82,-40v-28,-6,-56,-10,-85,-12r0,-78r653,0r350,937r295,-761v10,-28,20,-61,29,-100v9,-39,14,-64,15,-76r629,0r0,78v-21,1,-44,4,-67,8v-23,4,-46,9,-67,16v-26,9,-43,22,-51,41v-8,19,-13,39,-13,62r0,1005v0,24,5,45,13,61v8,16,25,30,51,42v13,6,35,12,65,17v30,5,54,9,71,11r0,78","w":2096},"N":{"d":"1699,-1341v-19,2,-45,6,-80,11v-35,5,-66,18,-94,39v-25,18,-43,49,-53,93v-10,44,-15,107,-15,192r0,1014r-178,0r-884,-1097r0,666v0,83,6,146,17,189v11,43,28,74,53,94v18,15,47,28,86,39v39,11,71,19,94,23r0,78r-610,0r0,-78v26,-2,55,-6,89,-14v34,-8,62,-20,85,-36v26,-19,43,-49,53,-88v10,-39,15,-104,15,-196r0,-672v0,-33,-5,-64,-15,-94v-10,-30,-27,-56,-49,-77v-23,-23,-51,-40,-81,-53v-30,-13,-64,-24,-103,-31r0,-80r534,0r776,960r0,-537v0,-85,-6,-148,-17,-190v-11,-42,-29,-73,-54,-93v-19,-15,-48,-28,-86,-39v-38,-11,-69,-19,-92,-23r0,-78r609,0r0,78","w":1719},"O":{"d":"1380,-1261v70,64,125,141,166,232v41,91,62,194,62,310v0,103,-17,202,-52,295v-35,93,-85,174,-150,241v-69,70,-149,124,-242,163v-93,39,-203,59,-331,59v-103,0,-201,-17,-293,-51v-92,-34,-173,-83,-243,-148v-69,-63,-124,-140,-165,-231v-41,-91,-61,-192,-61,-303v0,-116,19,-222,59,-316v40,-94,95,-175,164,-242v69,-66,150,-116,244,-152v94,-36,195,-54,302,-54v106,0,205,17,298,52v93,35,174,83,242,145xm1123,-246v30,-61,52,-129,65,-206v13,-77,20,-163,20,-260v0,-82,-6,-162,-18,-240v-12,-78,-31,-146,-59,-207v-29,-61,-67,-109,-114,-146v-47,-37,-106,-55,-177,-55v-121,0,-212,58,-275,172v-63,114,-94,275,-94,484v0,89,7,172,21,251v14,79,35,147,64,206v30,59,68,106,114,139v46,33,103,49,170,49v66,0,123,-17,170,-50v47,-33,85,-79,113,-137","w":1679},"P":{"d":"1399,-1064v0,80,-16,148,-49,206v-33,58,-79,105,-137,141v-60,37,-128,64,-205,81v-77,17,-164,25,-260,25r-116,0r0,399v0,24,5,44,14,62v9,18,26,32,51,43v13,5,35,11,65,17v30,6,55,10,76,12r0,78r-769,0r0,-78v19,-2,45,-4,77,-8v32,-4,54,-9,67,-14v26,-11,43,-24,51,-39v8,-15,13,-37,13,-64r0,-1001v0,-23,-4,-43,-12,-60v-8,-17,-25,-32,-52,-43v-19,-8,-44,-15,-75,-21v-31,-6,-54,-11,-69,-13r0,-78r783,0v183,0,320,29,411,87v91,58,136,148,136,268xm1009,-1013v0,-107,-22,-185,-65,-237v-43,-52,-119,-78,-229,-78r-83,0r0,623r42,0v109,0,193,-25,250,-75v57,-50,85,-128,85,-233","w":1436},"Q":{"d":"1380,-1261v70,64,125,141,166,232v41,91,62,194,62,310v0,165,-42,309,-124,434v-82,125,-198,214,-349,269v2,79,26,148,72,206v46,58,100,87,163,87v39,0,73,-2,102,-7v29,-5,55,-10,78,-16r0,88v-38,16,-94,32,-169,48v-75,16,-153,25,-235,25v-112,0,-204,-34,-276,-101v-72,-67,-113,-160,-122,-280v-95,-9,-183,-33,-264,-70v-81,-37,-153,-88,-215,-151v-61,-63,-109,-137,-145,-223v-36,-86,-53,-181,-53,-284v0,-116,19,-222,59,-316v40,-94,95,-175,164,-242v69,-66,150,-116,244,-152v94,-36,195,-54,302,-54v106,0,205,17,298,52v93,35,174,83,242,145xm1123,-246v30,-61,52,-129,65,-206v13,-77,20,-163,20,-260v0,-82,-6,-162,-18,-240v-12,-78,-31,-146,-59,-207v-29,-61,-67,-109,-114,-146v-47,-37,-106,-55,-177,-55v-121,0,-212,58,-275,172v-63,114,-94,275,-94,484v0,89,7,172,21,251v14,79,35,147,64,206v30,59,68,106,114,139v46,33,103,49,170,49v66,0,123,-17,170,-50v47,-33,85,-79,113,-137","w":1679},"R":{"d":"1698,0r-544,0v-94,-144,-172,-259,-234,-344v-62,-85,-140,-184,-233,-296r-55,0r0,431v0,24,5,44,14,61v9,17,26,31,51,42v13,5,32,10,59,16v27,6,51,10,70,12r0,78r-757,0r0,-78v19,-2,45,-4,77,-8v32,-4,54,-9,67,-14v25,-11,42,-24,51,-40v9,-16,13,-38,13,-63r0,-1001v0,-24,-4,-44,-11,-60v-7,-16,-25,-30,-53,-42v-21,-9,-46,-16,-75,-22v-29,-6,-52,-10,-69,-13r0,-78r796,0v178,0,313,27,405,83v92,56,139,140,139,253v0,99,-28,179,-85,239v-57,60,-144,108,-261,142r159,204r188,237v21,26,48,57,84,95v36,38,68,61,95,70v15,5,35,9,59,12v24,3,40,5,50,6r0,78xm1017,-1055v0,-95,-26,-163,-79,-207v-53,-44,-129,-66,-227,-66r-79,0r0,594r76,0v98,0,174,-26,228,-77v54,-51,81,-133,81,-244","w":1633},"S":{"d":"664,38v-87,0,-167,-11,-242,-32v-75,-21,-139,-47,-191,-76r-69,70r-85,0r-13,-513r86,0v19,49,44,100,74,154v30,54,65,102,104,145v41,45,86,81,136,109v50,28,110,42,177,42v91,0,161,-23,209,-67v48,-44,72,-100,72,-167v0,-55,-21,-101,-62,-139v-41,-38,-104,-71,-190,-98r-154,-50v-47,-15,-92,-31,-133,-47v-95,-38,-167,-92,-213,-163v-46,-71,-69,-150,-69,-237v0,-55,12,-108,36,-159v24,-51,59,-97,105,-138v44,-38,100,-69,169,-93v69,-24,143,-36,224,-36v79,0,152,11,221,33v69,22,123,43,162,65r61,-60r87,0r8,484r-86,0v-20,-52,-43,-105,-70,-159v-27,-54,-56,-100,-86,-136v-33,-39,-70,-69,-113,-92v-43,-23,-93,-35,-150,-35v-72,0,-131,20,-177,61v-46,41,-68,91,-68,151v0,57,20,103,60,139v40,36,101,68,185,95r151,50v51,17,97,33,137,48v97,37,171,89,221,155v50,66,75,147,75,244v0,61,-14,121,-43,178v-29,57,-67,105,-116,143v-53,42,-115,74,-185,97v-70,23,-152,34,-245,34","w":1329},"T":{"d":"1388,-1013r-77,0v-21,-61,-53,-126,-99,-195v-46,-69,-88,-107,-127,-112v-21,-3,-48,-5,-79,-7v-31,-2,-58,-3,-81,-3r-47,0r0,1113v0,24,4,45,13,63v9,18,26,33,51,44v15,6,40,12,72,18v32,6,59,11,82,14r0,78r-791,0r0,-78v29,-3,29,-2,81,-8v35,-4,59,-9,72,-14v26,-11,43,-25,52,-43v9,-18,13,-39,13,-64r0,-1123r-47,0v-23,0,-50,1,-81,3v-31,2,-58,4,-79,7v-39,5,-80,43,-126,112v-46,69,-79,134,-100,195r-77,0r0,-406r1375,0r0,406","w":1401},"U":{"d":"1703,-1341v-19,2,-47,6,-83,13v-36,7,-67,20,-92,37v-25,17,-44,47,-54,90v-10,43,-15,108,-15,195r0,528v0,155,-53,280,-158,375v-105,95,-245,142,-418,142v-202,0,-358,-46,-469,-137v-111,-91,-166,-219,-166,-382r0,-726v0,-23,-5,-43,-14,-60v-9,-17,-26,-32,-51,-45v-17,-9,-39,-16,-64,-21v-25,-5,-46,-9,-62,-11r0,-76r744,0r0,76v-21,1,-43,3,-65,7v-22,4,-44,10,-67,17v-25,8,-42,21,-51,40v-9,19,-13,40,-13,63r0,716v0,141,31,243,93,307v62,64,152,96,270,96v116,0,207,-35,273,-106v66,-71,99,-175,99,-312r0,-481v0,-85,-6,-150,-18,-192v-12,-42,-29,-72,-53,-91v-17,-15,-48,-28,-91,-40v-43,-12,-73,-19,-90,-22r0,-78r615,0r0,78","w":1707},"V":{"d":"1602,-1339v-22,2,-43,6,-63,12v-20,6,-41,15,-62,28v-29,17,-51,34,-67,53v-16,19,-31,46,-46,79r-87,201r-128,302r-139,333r-142,347r-201,0r-285,-697r-204,-492v-15,-33,-30,-58,-44,-75v-14,-17,-38,-35,-69,-53v-23,-13,-43,-22,-60,-27v-17,-5,-40,-9,-69,-13r0,-78r769,0r0,76v-72,9,-121,17,-147,27v-26,10,-38,22,-38,37v0,7,2,15,4,23v2,8,5,20,10,34v21,59,60,155,116,288r249,608r168,-421r118,-304v17,-43,30,-82,41,-119v11,-37,17,-65,17,-84v0,-21,-15,-40,-46,-54v-31,-14,-87,-24,-170,-31r0,-80r575,0r0,80","w":1561},"W":{"d":"2345,-1339v-21,2,-41,6,-62,13v-21,7,-41,16,-61,27v-31,17,-53,36,-66,57v-13,21,-24,46,-35,75r-169,487r-239,696r-201,0r-375,-1055r-338,1055r-201,0r-256,-748r-150,-441v-13,-36,-27,-63,-43,-79v-16,-16,-37,-32,-62,-49v-18,-12,-37,-21,-57,-27v-20,-6,-44,-10,-71,-13r0,-78r757,0r0,76v-45,5,-78,10,-100,15v-22,5,-39,11,-52,16v-12,5,-19,11,-22,17v-3,6,-4,11,-4,16v0,9,2,18,4,27v2,9,4,19,7,30v16,52,48,151,97,296r180,541r323,-1034r212,0r375,1066r132,-420r84,-279v13,-47,24,-87,32,-119v8,-32,12,-60,12,-83v0,-14,-7,-26,-20,-36v-13,-10,-30,-19,-52,-26v-19,-6,-42,-10,-72,-14v-30,-4,-56,-7,-78,-9r0,-80r571,0r0,80","w":2307},"X":{"d":"1659,0r-865,0r0,-78v83,-5,136,-12,160,-22v24,-10,36,-22,36,-38v0,-9,-4,-23,-13,-42v-9,-19,-21,-40,-36,-65v-23,-39,-54,-88,-93,-147r-122,-183v-140,162,-228,270,-266,323v-38,53,-57,89,-57,106v0,9,2,18,5,24v3,6,10,12,23,18v9,5,25,10,48,15v23,5,50,8,81,11r0,78r-551,0r0,-78v29,-2,52,-5,69,-9v17,-4,33,-10,50,-17v39,-18,73,-40,103,-68v30,-28,61,-60,93,-97r158,-179r185,-213r-184,-270r-156,-223v-21,-31,-47,-61,-79,-92v-32,-31,-65,-53,-100,-66v-17,-7,-37,-13,-58,-18v-21,-5,-47,-9,-77,-11r0,-78r867,0r0,78v-67,3,-118,9,-150,18v-32,9,-48,23,-48,42v0,9,4,21,10,35v6,14,18,37,37,68v16,27,41,66,75,117r114,175v126,-150,206,-248,238,-294v32,-46,48,-76,48,-93v0,-19,-9,-33,-28,-43v-19,-10,-62,-18,-131,-25r0,-78r553,0r0,78v-25,1,-46,3,-62,7v-16,4,-36,10,-57,19v-41,19,-76,42,-104,69v-28,27,-59,59,-92,96r-141,160r-166,189r207,305r163,231v20,31,46,62,78,93v32,31,64,53,98,66v16,6,34,12,55,17v21,5,48,9,82,11r0,78","w":1656},"Y":{"d":"1567,-1341v-24,3,-46,7,-66,13v-20,6,-39,14,-57,25v-29,16,-54,36,-76,61v-22,25,-45,53,-66,84r-136,206r-156,246v-37,57,-60,100,-68,130v-8,30,-12,83,-12,158r0,201v0,24,5,45,14,63v9,18,26,33,51,44v11,5,35,10,72,18v37,8,64,13,81,14r0,78r-791,0r0,-78v19,-1,46,-4,81,-8v35,-4,59,-9,73,-14v25,-11,42,-24,51,-42v9,-18,13,-40,13,-65r0,-250v0,-22,0,-41,-1,-58v-1,-17,-3,-31,-7,-42v-5,-13,-13,-29,-24,-49r-44,-76r-149,-256r-137,-227v-23,-37,-46,-67,-69,-89v-23,-22,-46,-40,-70,-54v-18,-10,-40,-18,-66,-23v-26,-5,-48,-9,-69,-10r0,-78r813,0r0,78v-75,2,-125,7,-151,15v-26,8,-39,20,-39,35v0,7,4,22,14,44v10,22,27,56,52,102r100,179r157,267r261,-421v47,-80,71,-128,71,-146v0,-23,-13,-40,-41,-52v-28,-12,-73,-20,-135,-23r0,-78r526,0r0,78","w":1499},"Z":{"d":"1397,-479r-48,479r-1332,0r0,-61r917,-1266r-311,0v-63,0,-109,1,-137,5v-28,4,-54,12,-79,23v-29,11,-60,39,-95,85v-35,46,-81,121,-139,228r-81,0r44,-433r1234,0r0,61r-917,1266r357,0v112,0,188,-5,228,-14v40,-9,70,-25,89,-48v38,-46,73,-97,105,-152v32,-55,63,-112,90,-173r75,0","w":1412},"[":{"d":"847,310r-662,0r0,-1829r662,0r0,99r-347,0r0,1630r347,0r0,100","w":915},"\\":{"d":"939,424r-180,0r-691,-1947r182,0","w":966},"]":{"d":"731,310r-662,0r0,-100r347,0r0,-1630r-347,0r0,-99r662,0r0,1829","w":915},"^":{"d":"1233,-760r-196,0r-317,-513r-317,513r-194,0r442,-696r140,0"},"_":{"d":"1445,302r-1450,0r0,-122r1450,0r0,122"},"`":{"d":"741,-1139r-42,38v-111,-67,-195,-115,-251,-145v-56,-30,-104,-58,-144,-85v-31,-21,-53,-41,-66,-57v-13,-16,-20,-40,-20,-72v0,-24,12,-45,38,-62v26,-17,55,-26,87,-26v41,0,73,6,97,18v24,12,51,41,82,86r90,128","w":1024},"a":{"d":"1201,-21v-29,13,-64,24,-104,35v-40,11,-82,16,-127,16v-82,0,-142,-12,-181,-36v-39,-24,-65,-60,-79,-105r-6,0v-23,23,-45,42,-66,58v-21,16,-43,30,-67,41v-31,15,-62,25,-91,32v-29,7,-69,11,-121,11v-77,0,-143,-23,-198,-69v-55,-46,-82,-106,-82,-181v0,-43,6,-81,18,-111v12,-30,29,-57,51,-80v20,-21,44,-39,70,-53v26,-14,55,-27,86,-39v60,-22,132,-44,216,-68v84,-24,145,-45,184,-64r0,-96v0,-17,-1,-39,-4,-66v-3,-27,-8,-50,-17,-69v-9,-21,-24,-39,-44,-54v-20,-15,-46,-22,-79,-22v-29,0,-54,5,-74,13v-20,8,-35,16,-47,25v2,13,8,34,17,61v9,27,14,54,14,79v0,11,-3,26,-9,43v-6,17,-15,30,-26,40v-15,13,-32,24,-51,31v-19,7,-49,11,-88,11v-56,0,-98,-13,-127,-40v-29,-27,-43,-63,-43,-106v0,-37,14,-70,44,-100v30,-30,66,-55,109,-74v42,-20,90,-35,145,-46v55,-11,105,-17,152,-17v65,0,124,3,178,11v54,8,103,24,146,48v41,23,74,58,98,102v24,44,37,102,37,173v0,75,-2,165,-5,268v-3,103,-4,171,-4,204v0,30,5,54,14,71v9,17,22,30,41,39v11,5,29,8,53,9v24,1,47,2,67,2r0,73xm704,-542v-37,13,-74,28,-111,44v-37,16,-67,33,-90,51v-25,19,-44,42,-58,71v-14,29,-21,64,-21,103v0,52,12,90,36,113v24,23,52,35,87,35v37,0,67,-8,91,-23v24,-15,44,-33,62,-55","w":1220},"b":{"d":"1251,-489v0,150,-50,274,-149,373v-99,99,-224,148,-376,148v-59,0,-110,-4,-152,-12v-42,-8,-78,-19,-107,-31v-31,-13,-55,-25,-73,-37v-18,-12,-33,-23,-44,-31r-143,130r-59,-23v3,-49,6,-101,8,-158v2,-57,4,-134,4,-231r0,-936v0,-25,-6,-49,-16,-71v-10,-22,-24,-38,-41,-49v-13,-8,-31,-15,-55,-21v-24,-6,-47,-10,-68,-11r0,-73r494,-26r15,16r0,650r6,0v49,-47,99,-82,150,-104v51,-22,103,-33,154,-33v140,0,250,48,331,143v81,95,121,224,121,387xm892,-477v0,-51,-4,-100,-12,-147v-8,-47,-20,-88,-38,-124v-18,-36,-42,-64,-71,-86v-29,-22,-66,-33,-109,-33v-41,0,-74,7,-101,20v-27,13,-51,33,-72,59r0,582v4,13,12,30,23,52v11,22,22,39,33,51v16,17,33,30,51,39v18,9,43,14,76,14v68,0,122,-38,161,-112v39,-74,59,-179,59,-315","w":1322},"c":{"d":"629,32v-93,0,-174,-13,-245,-40v-71,-27,-130,-64,-176,-111v-46,-47,-80,-103,-103,-168v-23,-65,-34,-135,-34,-211v0,-69,13,-135,41,-198v28,-63,66,-118,113,-165v49,-49,109,-88,181,-117v72,-29,153,-43,240,-43v123,0,220,23,291,69v71,46,107,109,107,188v0,48,-13,87,-38,116v-25,29,-69,44,-131,44v-50,0,-91,-12,-125,-36v-34,-24,-51,-55,-51,-94v0,-33,5,-65,16,-97v11,-32,17,-56,19,-73v-7,-12,-17,-22,-28,-28v-11,-6,-29,-9,-53,-9v-30,0,-57,7,-82,21v-25,14,-48,39,-69,74v-21,33,-38,78,-50,134v-12,56,-18,123,-18,202v0,119,28,214,84,287v56,73,122,109,199,109v74,0,133,-17,177,-50v44,-33,82,-79,116,-140r75,52v-21,41,-45,78,-74,112v-29,34,-63,63,-103,89v-42,27,-85,48,-128,62v-43,14,-94,21,-151,21","w":1088},"d":{"d":"1351,-21r-493,29r-15,-14r0,-92r-7,-2v-33,35,-76,66,-132,92v-56,26,-112,40,-169,40v-135,0,-246,-50,-333,-150v-87,-100,-131,-229,-131,-388v0,-141,49,-261,147,-362v98,-101,215,-151,354,-151v55,0,106,7,154,19v48,12,86,26,115,43r0,-327v0,-25,-5,-48,-15,-70v-10,-22,-23,-38,-40,-50v-21,-15,-47,-26,-78,-32v-31,-6,-62,-10,-93,-13r0,-73r540,-26r15,16r0,1311v0,25,4,47,12,64v8,17,22,31,41,41v14,7,34,13,61,16v27,3,50,5,67,6r0,73xm841,-199r0,-565v-5,-15,-11,-32,-19,-51v-8,-19,-20,-36,-35,-53v-13,-14,-31,-26,-53,-37v-22,-11,-48,-16,-76,-16v-67,0,-121,38,-164,113v-43,75,-64,182,-64,319v0,54,4,102,12,145v8,43,21,83,40,118v19,35,44,63,74,83v30,20,67,30,110,30v41,0,74,-7,101,-23v27,-16,51,-37,74,-63","w":1358},"e":{"d":"1133,-239v-23,38,-52,73,-85,107v-33,34,-70,63,-112,87v-45,25,-90,44,-136,57v-46,13,-98,20,-157,20v-99,0,-183,-14,-255,-42v-72,-28,-131,-66,-178,-113v-47,-47,-81,-103,-104,-167v-23,-64,-35,-135,-35,-210v0,-68,12,-134,37,-196v25,-62,61,-117,107,-166v45,-47,102,-86,171,-115v69,-29,147,-44,232,-44v93,0,170,11,230,34v60,23,110,54,149,94v38,38,66,83,83,135v17,52,26,105,26,162r0,65r-676,0v0,137,26,241,79,312v53,71,136,107,251,107v63,0,119,-18,169,-52v50,-34,93,-77,128,-130xm751,-619v0,-40,-2,-81,-6,-123v-4,-42,-11,-76,-21,-103v-11,-31,-26,-55,-46,-71v-20,-16,-45,-24,-75,-24v-51,0,-92,26,-123,78v-31,52,-47,134,-50,247","w":1171},"f":{"d":"1004,-1379v0,17,-3,35,-8,55v-5,20,-14,37,-26,51v-14,17,-30,29,-47,38v-17,9,-43,13,-78,13v-53,0,-94,-18,-124,-55v-30,-37,-62,-98,-96,-183v-27,11,-48,41,-65,88v-17,47,-25,149,-25,305r0,79r276,0r0,108r-274,0r0,689v0,26,6,47,18,61v12,14,28,24,47,31v16,5,37,10,63,15v26,5,49,9,70,11r0,73r-675,0r0,-73v17,-1,34,-3,50,-5v16,-2,31,-5,44,-10v21,-8,36,-19,44,-34v8,-15,11,-35,11,-60r0,-698r-203,0r0,-108r203,0v0,-71,10,-141,31,-208v21,-67,53,-126,96,-179v42,-52,97,-94,166,-126v69,-32,149,-48,242,-48v83,0,147,16,192,47v45,31,68,72,68,123","w":805},"g":{"d":"1178,-880r-220,0v26,29,45,60,58,93v13,33,20,67,20,102v0,46,-12,89,-37,129v-25,40,-57,74,-97,99v-41,26,-88,46,-143,61v-55,15,-114,22,-178,22r-163,0v-8,6,-16,15,-26,28v-10,13,-15,26,-15,38v0,29,12,50,35,61v23,11,66,18,127,19v61,1,122,4,184,8v62,4,106,5,133,6v39,2,77,10,115,24v38,14,71,31,99,53v31,23,56,53,76,89v20,36,30,79,30,126v0,51,-12,98,-36,143v-24,45,-62,83,-112,116v-53,34,-116,60,-190,79v-74,19,-164,28,-273,28v-175,0,-309,-21,-400,-64v-91,-43,-137,-107,-137,-192v0,-53,25,-96,74,-130v49,-34,126,-53,230,-56r0,-12v-61,-21,-110,-48,-144,-82v-34,-34,-51,-75,-51,-120v0,-28,7,-52,21,-71v14,-19,31,-36,52,-51v19,-13,41,-23,68,-32v27,-9,49,-17,67,-22r0,-11v-90,-33,-157,-74,-199,-122v-42,-48,-63,-107,-63,-176v0,-98,45,-176,135,-235v90,-59,205,-88,344,-88v45,0,90,4,132,12v42,8,74,14,96,20r388,0r0,108xm709,-689v0,-78,-12,-140,-37,-185v-25,-45,-63,-68,-114,-68v-26,0,-49,6,-68,18v-19,12,-35,31,-47,54v-11,23,-19,50,-23,80v-4,30,-6,61,-6,93v0,73,13,132,38,179v25,47,61,70,108,70v48,0,84,-21,110,-63v26,-42,39,-101,39,-178xm877,151v0,-23,-6,-45,-19,-67v-13,-22,-41,-41,-85,-55v-24,-4,-64,-7,-119,-8v-55,-1,-130,-2,-226,-2v-23,20,-42,44,-58,71v-16,27,-24,60,-24,99v0,17,5,35,14,55v9,20,24,39,44,56v23,19,49,35,78,46v29,11,72,16,130,16v86,0,152,-17,197,-50v45,-33,68,-87,68,-161","w":1181},"h":{"d":"1358,0r-602,0r0,-73v13,-1,29,-3,47,-5v18,-2,31,-5,40,-10v14,-7,23,-18,29,-32v6,-14,9,-35,9,-62r0,-468v0,-69,-13,-120,-39,-154v-26,-34,-62,-51,-109,-51v-27,0,-52,4,-75,12v-23,8,-45,20,-67,35v-19,13,-35,27,-47,41v-12,14,-21,26,-29,37r0,537v0,25,3,45,9,59v6,14,17,26,34,35v10,6,24,11,40,16v16,5,32,8,47,10r0,73r-608,0r0,-73v17,-1,35,-3,51,-5v16,-2,30,-5,43,-10v21,-8,35,-19,43,-34v8,-15,12,-35,12,-60r0,-1115v0,-21,-5,-44,-15,-68v-10,-24,-24,-42,-42,-54v-13,-9,-33,-16,-58,-21v-25,-5,-48,-8,-68,-9r0,-73r497,-26r15,16r0,688r4,0r69,-62v20,-18,45,-36,74,-55v25,-16,56,-30,96,-41v40,-11,83,-17,129,-17v108,0,189,31,243,93v54,62,82,144,82,245r0,490v0,25,4,44,11,59v7,15,21,26,41,35v12,5,25,10,40,14v15,4,33,7,54,10r0,73","w":1392},"i":{"d":"690,0r-632,0r0,-73v17,-1,34,-3,51,-5v17,-2,31,-5,43,-10v21,-8,36,-19,45,-34v9,-15,13,-35,13,-60r0,-582v0,-23,-5,-44,-16,-62v-11,-18,-24,-31,-40,-42v-12,-8,-30,-16,-54,-23v-24,-7,-47,-12,-67,-14r0,-73r490,-26r15,15r0,794v0,23,5,43,15,59v10,16,24,29,43,37v13,6,28,11,44,16v16,5,33,8,50,10r0,73xm544,-1364v0,51,-19,94,-58,130v-39,36,-86,53,-139,53v-54,0,-100,-17,-139,-53v-39,-36,-59,-79,-59,-130v0,-51,20,-94,59,-130v39,-36,85,-54,139,-54v54,0,100,18,139,54v39,36,58,79,58,130","w":724},"j":{"d":"551,-118v0,69,-12,138,-35,208v-23,70,-57,130,-100,180v-47,55,-105,97,-172,128v-67,31,-144,46,-231,46v-81,0,-143,-15,-187,-46v-44,-31,-65,-73,-65,-126v0,-19,3,-36,7,-52v4,-16,13,-33,27,-50v11,-15,27,-28,49,-38v22,-10,48,-15,76,-15v55,0,98,19,128,59v30,40,61,100,92,179v27,-15,47,-48,60,-98v13,-50,20,-159,20,-326r0,-691v0,-23,-5,-44,-15,-62v-10,-18,-24,-32,-41,-44v-13,-9,-32,-16,-60,-24v-28,-8,-53,-13,-74,-15r0,-73r506,-26r15,15r0,871xm555,-1364v0,51,-20,94,-59,130v-39,36,-85,53,-138,53v-54,0,-101,-17,-140,-53v-39,-36,-58,-79,-58,-130v0,-51,19,-94,58,-130v39,-36,86,-54,140,-54v54,0,100,18,139,54v39,36,58,79,58,130","w":709},"k":{"d":"1341,0r-471,0v-58,-102,-111,-189,-159,-260r-136,-197r-60,51r0,218v0,24,4,44,11,59v7,15,20,27,40,34v12,5,26,10,42,14v16,4,32,7,48,8r0,73r-619,0r0,-73v17,-1,33,-3,50,-5v17,-2,31,-6,44,-10v21,-7,35,-19,43,-34v8,-15,12,-35,12,-60r0,-1115v0,-22,-4,-45,-14,-69v-10,-24,-24,-41,-43,-53v-13,-8,-32,-15,-57,-20v-25,-5,-48,-9,-69,-10r0,-73r497,-26r15,16r0,1032r167,-153r148,-144v22,-23,34,-39,36,-51v2,-12,4,-19,4,-22v0,-12,-11,-22,-32,-30v-21,-8,-52,-15,-94,-21r0,-71r508,0r0,69v-67,19,-117,37,-152,53v-35,16,-74,38,-115,65v-27,18,-53,37,-79,57v-26,20,-56,44,-89,73r181,263r174,256v21,31,46,52,77,63v31,11,61,17,92,20r0,73","w":1294},"l":{"d":"667,0r-627,0r0,-73v17,-1,34,-3,50,-5v16,-2,31,-5,44,-10v21,-8,36,-19,44,-34v8,-15,11,-35,11,-60r0,-1108v0,-25,-5,-48,-15,-70v-10,-22,-25,-39,-42,-50v-13,-9,-33,-17,-60,-25v-27,-8,-51,-13,-72,-14r0,-73r503,-26r15,16r0,1337v0,25,4,45,13,60v9,15,23,27,42,36v13,6,27,11,42,16v15,5,32,8,52,10r0,73","w":705},"m":{"d":"2045,0r-596,0r0,-73v15,-2,30,-4,46,-5v16,-1,29,-5,40,-10v15,-7,24,-18,28,-34v4,-16,6,-35,6,-60r0,-467v0,-69,-13,-121,-37,-155v-24,-34,-59,-51,-104,-51v-29,0,-54,4,-76,13v-22,9,-43,21,-62,34v-19,14,-34,28,-45,42r-27,36r0,537v0,24,2,44,8,59v6,15,17,26,32,35v11,6,22,11,36,16v14,5,29,8,44,10r0,73r-571,0r0,-73r46,-5v18,-2,31,-5,40,-10v14,-7,23,-18,27,-32v4,-14,7,-35,7,-62r0,-467v0,-69,-13,-121,-37,-155v-24,-34,-59,-51,-104,-51v-29,0,-54,4,-76,13v-22,9,-43,21,-62,34v-19,14,-34,28,-45,42r-27,36r0,537v0,23,3,43,9,58v6,15,17,27,32,36v11,6,23,11,37,16v14,5,28,8,43,10r0,73r-599,0r0,-73v17,-1,34,-3,51,-5v17,-2,31,-5,43,-10v21,-8,36,-19,44,-34v8,-15,12,-35,12,-60r0,-582v0,-21,-6,-42,-17,-62v-11,-20,-25,-37,-41,-48v-12,-8,-28,-15,-46,-20v-18,-5,-38,-9,-60,-11r0,-73r477,-26r15,15r0,141r4,0r66,-60v26,-23,50,-41,73,-55v25,-16,56,-29,95,-40v39,-11,81,-16,127,-16v76,0,140,16,191,49v51,33,87,77,108,132r9,0r71,-64v28,-24,54,-43,77,-58v26,-17,59,-31,99,-42v40,-11,84,-17,130,-17v101,0,178,30,232,89v54,59,82,144,82,253r0,486v0,25,4,44,11,59v7,15,21,27,40,35v11,5,23,9,39,14v16,5,34,8,55,10r0,73","w":2080},"n":{"d":"1378,0r-602,0r0,-73r46,-5v18,-2,32,-5,41,-10v14,-7,24,-18,30,-32v6,-14,9,-35,9,-62r0,-468v0,-68,-13,-120,-38,-154v-25,-34,-61,-51,-110,-51v-27,0,-51,4,-74,12v-23,8,-46,20,-68,35v-19,13,-34,27,-46,41v-12,14,-22,26,-30,37r0,537v0,23,3,43,10,59v7,16,18,27,33,35v11,6,24,11,40,16v16,5,32,8,47,10r0,73r-608,0r0,-73v17,-1,33,-3,50,-5v17,-2,32,-6,44,-10v21,-7,36,-19,44,-34v8,-15,12,-35,12,-60r0,-582v0,-21,-5,-41,-16,-61v-11,-20,-25,-36,-42,-49v-12,-8,-28,-15,-46,-20v-18,-5,-38,-9,-60,-11r0,-73r477,-26r15,15r0,145r4,0r68,-60v27,-23,51,-42,74,-57v25,-16,57,-30,97,-41v40,-11,83,-17,128,-17v109,0,191,31,245,93v54,62,81,143,81,245r0,490v0,25,4,44,11,59v7,15,21,26,41,35v11,5,23,9,39,14v16,5,34,8,54,10r0,73","w":1413},"o":{"d":"1079,-874v49,46,87,101,113,165v26,64,39,133,39,208v0,74,-13,143,-39,209v-26,66,-63,122,-112,169v-53,50,-115,88,-188,115v-73,27,-157,40,-251,40v-81,0,-157,-12,-225,-35v-68,-23,-128,-58,-181,-105v-51,-45,-91,-100,-120,-166v-29,-66,-44,-139,-44,-220v0,-80,13,-152,39,-214v26,-62,64,-117,115,-166v49,-47,111,-82,183,-108v72,-26,153,-39,242,-39v93,0,175,13,246,39v71,26,132,61,183,108xm823,-181v15,-37,26,-83,33,-136v7,-53,10,-115,10,-186v0,-47,-3,-100,-10,-160v-7,-60,-17,-107,-30,-142v-16,-42,-38,-75,-66,-99v-28,-24,-65,-36,-108,-36v-47,0,-86,13,-114,39v-28,26,-50,60,-65,101v-14,38,-24,83,-29,134v-5,51,-8,104,-8,159v0,73,2,133,7,181v5,48,16,95,34,143v15,41,37,74,66,98v29,24,65,36,109,36v40,0,74,-11,103,-33v29,-22,51,-56,68,-99","w":1302},"p":{"d":"1276,-487v0,141,-47,261,-141,362v-94,101,-213,151,-357,151v-64,0,-116,-7,-156,-20v-40,-13,-73,-28,-99,-47r-8,0r0,281v0,23,5,44,15,61v10,17,25,30,44,38v18,7,43,14,76,20v33,6,61,10,83,11r0,74r-722,0r0,-74v17,-1,38,-4,63,-8v25,-4,44,-7,57,-11v21,-7,35,-19,43,-37v8,-18,12,-38,12,-61r0,-1023v-2,-22,-8,-41,-16,-58v-8,-17,-21,-31,-39,-44v-13,-9,-31,-16,-53,-22v-22,-6,-44,-9,-65,-11r0,-73r487,-26r15,13r0,111r8,2v44,-45,93,-79,147,-104v54,-25,106,-37,159,-37v138,0,247,49,327,147v80,98,120,226,120,385xm917,-483v0,-50,-4,-97,-11,-143v-7,-46,-20,-87,-39,-123v-18,-36,-41,-65,-71,-86v-30,-21,-66,-32,-109,-32v-43,0,-78,8,-104,23v-26,15,-49,34,-68,58r0,567v4,13,12,30,23,51v11,21,23,38,34,51v17,18,36,31,57,40v21,9,45,13,70,13v66,0,119,-35,159,-106v40,-71,59,-176,59,-313","w":1347},"q":{"d":"1355,444r-700,0r0,-74v19,-1,41,-3,67,-6v26,-3,47,-8,62,-13v21,-7,35,-19,44,-36v9,-17,13,-38,13,-62r0,-349r-8,-2v-11,11,-27,24,-45,39v-18,15,-40,29,-66,41v-29,14,-56,24,-82,32v-26,8,-62,12,-105,12v-139,0,-251,-48,-336,-144v-85,-96,-128,-225,-128,-388v0,-147,51,-270,153,-367v102,-97,231,-146,387,-146v79,0,150,9,213,27v63,18,122,40,177,69r130,-128r55,13v-2,42,-6,96,-10,164v-4,68,-6,124,-6,169r0,941v0,25,5,46,14,64v9,18,23,30,43,39v15,7,35,13,60,19v25,6,48,10,68,12r0,74xm841,-199r0,-565v-5,-17,-11,-35,-19,-54v-8,-19,-21,-38,-36,-56v-15,-17,-32,-30,-54,-41v-22,-11,-48,-16,-79,-16v-67,0,-120,39,-161,117v-41,78,-62,186,-62,323v0,56,4,106,13,149v9,43,22,80,39,112v20,35,44,63,72,82v28,19,65,29,112,29v43,0,77,-7,104,-21v27,-14,50,-34,71,-59","w":1328},"r":{"d":"1054,-809v0,51,-16,95,-47,133v-31,38,-73,58,-124,58v-49,0,-89,-12,-123,-37v-34,-25,-51,-61,-51,-109v0,-23,2,-41,5,-54r9,-37v-31,1,-63,12,-97,32v-34,20,-64,47,-90,80r0,549v0,23,4,43,11,58v7,15,20,27,37,36v15,7,39,13,72,18v33,5,56,8,71,9r0,73r-669,0r0,-73v17,-1,33,-3,50,-5v17,-2,32,-6,44,-10v21,-7,36,-19,44,-34v8,-15,12,-35,12,-60r0,-582v0,-24,-6,-45,-17,-64v-11,-19,-25,-35,-41,-46v-12,-8,-28,-15,-46,-20v-18,-5,-38,-9,-60,-11r0,-73r477,-26r15,15r0,145r4,0v46,-53,94,-96,146,-126v52,-30,106,-45,162,-45v62,0,112,19,150,57v38,38,56,88,56,149","w":1065},"s":{"d":"521,34v-65,0,-127,-9,-189,-28v-62,-19,-110,-40,-144,-61r-30,68r-78,0r-13,-373r73,0v10,30,27,64,50,102v23,38,50,71,80,101v31,30,68,55,108,76v40,21,83,31,129,31v61,0,105,-12,135,-36v30,-24,45,-60,45,-109v0,-27,-7,-49,-20,-66v-13,-17,-32,-32,-55,-45v-26,-13,-55,-25,-86,-34r-114,-34v-45,-13,-84,-26,-116,-40v-32,-14,-66,-36,-101,-65v-30,-26,-54,-57,-72,-94v-18,-37,-27,-80,-27,-131v0,-94,39,-170,118,-228v79,-58,183,-87,311,-87v61,0,116,7,167,19v51,12,94,25,129,40r21,-59r76,0r16,341r-71,0v-23,-69,-63,-130,-120,-180v-57,-50,-118,-75,-183,-75v-51,0,-92,11,-121,32v-29,21,-44,51,-44,89v0,51,22,87,65,110v43,23,103,44,180,64v119,31,207,73,262,126v55,53,83,120,83,202v0,109,-43,194,-129,254v-86,60,-197,90,-335,90","w":1050},"t":{"d":"802,-46v-43,19,-88,35,-137,50v-49,15,-108,23,-178,23v-104,0,-181,-25,-231,-76v-50,-51,-76,-123,-76,-217r0,-614r-180,0r0,-108r184,0r0,-303r325,0r0,303r280,0r0,108r-278,0r0,548v0,78,11,133,33,166v22,33,60,49,116,49v18,0,43,-1,75,-4v32,-3,54,-6,67,-9r0,84","w":814},"u":{"d":"1363,-21r-477,29r-15,-14r0,-131r-6,0r-67,61v-22,20,-47,37,-77,53v-34,18,-67,31,-97,40v-30,9,-74,13,-132,13v-101,0,-178,-30,-232,-91v-54,-61,-80,-146,-80,-257r0,-450v0,-26,-5,-48,-15,-64v-10,-16,-23,-30,-40,-43v-13,-10,-31,-17,-52,-21v-21,-4,-41,-8,-58,-9r0,-73r485,-26r11,15r0,665v0,69,13,119,39,152v26,33,63,49,109,49v47,0,89,-12,127,-37v38,-25,66,-51,83,-79r0,-539v0,-23,-4,-43,-13,-61v-9,-18,-21,-33,-38,-44v-12,-8,-30,-13,-52,-16v-22,-3,-45,-5,-68,-6r0,-73r485,-26r15,15r0,772v0,23,5,43,14,59v9,16,23,31,41,42v13,8,29,13,49,16v20,3,41,5,61,6r0,73","w":1386},"v":{"d":"1198,-919v-30,5,-60,16,-88,34v-28,18,-51,46,-70,84r-138,295r-132,287v-13,28,-29,64,-46,108v-17,44,-31,84,-42,120r-184,0v-115,-267,-114,-267,-196,-443r-173,-378v-14,-31,-35,-56,-65,-74v-30,-18,-60,-29,-91,-33r0,-73r616,0r0,73v-23,1,-49,6,-80,15v-31,9,-46,21,-46,36v0,4,1,10,4,18v3,8,6,17,10,27v32,76,33,76,97,219r136,301r96,-213v0,0,45,-105,112,-267v6,-16,9,-29,10,-39v1,-10,2,-17,2,-20v0,-12,-6,-23,-18,-32v-12,-9,-25,-16,-41,-23v-17,-7,-33,-12,-48,-15v-15,-3,-28,-6,-38,-7r0,-73r413,0r0,73","w":1161},"w":{"d":"1782,-919v-31,5,-59,15,-85,31v-26,16,-48,44,-66,87r-112,276r-118,303v-11,27,-24,65,-39,113v-15,48,-26,87,-35,118r-195,0r-252,-680r-236,680r-193,0r-159,-423r-155,-398v-12,-31,-32,-56,-61,-74v-29,-18,-59,-29,-90,-33r0,-73r614,0r0,73v-23,2,-50,7,-81,16v-31,9,-47,20,-47,35v0,7,0,13,2,18v2,5,5,14,9,27v18,52,43,119,74,201r110,288r222,-658r198,0r253,680r90,-242v0,0,31,-89,79,-229v5,-14,8,-26,9,-37v1,-11,1,-19,0,-22v0,-12,-6,-22,-18,-32v-12,-10,-26,-18,-43,-24v-17,-6,-33,-11,-49,-14v-16,-3,-28,-6,-39,-7r0,-73r413,0r0,73","w":1768},"x":{"d":"1198,0r-625,0r0,-73v33,-2,60,-5,82,-9v22,-4,33,-11,33,-22v0,-5,-2,-14,-8,-25v-6,-11,-13,-24,-22,-38v-13,-21,-35,-53,-66,-98r-87,-124r-97,115r-82,103v-10,12,-17,23,-21,33v-4,10,-6,16,-6,18v0,15,11,27,33,35v22,8,47,12,77,12r0,73r-406,0r0,-73v54,-11,97,-29,129,-54v32,-25,55,-44,66,-57r124,-130r135,-144r-138,-193r-135,-187v-18,-24,-40,-43,-66,-56v-26,-13,-60,-21,-101,-25r0,-73r611,0r0,73v-22,0,-44,1,-65,4v-21,3,-32,7,-32,14v0,5,2,12,5,20v3,8,8,16,13,25r60,94r88,130r75,-90v20,-23,47,-56,79,-99v12,-16,20,-28,23,-36v3,-8,4,-13,4,-15v0,-11,-8,-21,-22,-30v-14,-9,-42,-15,-84,-17r0,-73r398,0r0,73v-33,5,-64,16,-95,33v-31,17,-63,43,-96,78r-113,118r-118,125r133,189r150,209v18,25,39,46,61,62v22,16,57,27,106,32r0,73","w":1204},"y":{"d":"1188,-919v-30,5,-60,16,-88,34v-28,18,-51,46,-70,84r-177,387r-202,445v-41,89,-81,161,-120,214v-39,53,-75,94,-109,123v-32,27,-64,46,-95,58v-31,12,-63,18,-95,18v-63,0,-115,-18,-154,-53v-39,-35,-58,-75,-58,-119v0,-19,2,-36,6,-52v4,-16,14,-33,28,-50v11,-15,28,-28,50,-38v22,-10,47,-15,75,-15v37,0,73,13,107,39v34,26,69,62,106,108v22,-22,50,-54,82,-98v32,-44,56,-89,71,-135r-211,-433r-206,-410v-17,-32,-39,-56,-67,-74v-28,-18,-58,-29,-89,-33r0,-73r612,0r0,73v-23,1,-48,6,-78,15v-30,9,-45,21,-45,36v0,5,1,12,3,18v2,6,6,15,11,27r97,195r145,291r105,-245r85,-201v7,-17,10,-29,11,-39v1,-10,2,-17,2,-20v0,-12,-6,-23,-18,-32v-12,-9,-25,-16,-41,-23v-17,-7,-33,-12,-48,-15v-15,-3,-28,-6,-38,-7r0,-73r413,0r0,73","w":1151},"z":{"d":"1028,0r-984,0r0,-69r574,-832v-79,0,-151,1,-214,3v-63,2,-113,10,-150,24v-13,5,-29,28,-50,72v-21,44,-38,90,-50,137r-71,0r0,-327r930,0r0,62r-576,839v16,0,39,0,70,1v31,1,60,1,88,1v33,0,68,-1,105,-3v37,-2,66,-3,87,-6v27,-3,49,-13,65,-28v16,-15,30,-34,39,-55v9,-19,20,-48,34,-87v14,-39,25,-74,32,-105r71,0r0,373","w":1076},"{":{"d":"956,333v-88,0,-169,-4,-242,-12v-73,-8,-135,-25,-187,-52v-52,-27,-92,-65,-120,-115v-28,-50,-42,-118,-42,-201v0,-40,3,-82,7,-125v4,-43,6,-82,6,-119v0,-48,-7,-87,-20,-116v-13,-29,-34,-53,-61,-70v-27,-17,-60,-29,-99,-35v-39,-6,-81,-12,-126,-15r0,-150v44,-3,86,-9,126,-15v40,-6,72,-18,99,-35v27,-18,48,-40,61,-67v13,-27,20,-66,20,-119v0,-38,-2,-79,-6,-121v-4,-42,-7,-83,-7,-123v0,-82,14,-148,41,-198v27,-50,68,-89,121,-118v49,-26,111,-43,187,-51v76,-8,157,-13,242,-13r0,87v-36,3,-67,6,-94,10v-27,4,-54,16,-83,33v-24,15,-44,37,-59,67v-15,30,-22,70,-22,119r0,190v0,69,-9,128,-28,175v-19,47,-46,85,-81,114v-33,27,-71,48,-114,64v-43,16,-90,29,-141,38r0,76v48,9,95,22,140,38v45,16,83,38,115,65v33,28,59,65,79,111v20,46,30,106,30,177r0,190v0,49,7,89,22,119v15,30,34,52,59,68v24,15,52,25,83,31v31,6,63,10,94,11r0,87","w":1024},"|":{"d":"483,424r-171,0r0,-1947r171,0r0,1947","w":794},"}":{"d":"953,-527v-45,3,-86,9,-125,15v-39,6,-73,18,-100,35v-27,17,-48,41,-61,70v-13,29,-20,68,-20,116v0,37,3,76,7,119v4,43,6,85,6,125v0,83,-14,151,-42,201v-28,50,-68,88,-120,115v-52,27,-115,44,-188,52v-73,8,-153,12,-241,12r0,-87v31,-1,63,-5,95,-11v32,-6,59,-16,82,-31v25,-16,44,-38,59,-68v15,-30,22,-70,22,-119r0,-190v0,-71,9,-131,29,-177v20,-46,47,-83,80,-111v32,-27,71,-49,116,-65v45,-16,91,-29,139,-38r0,-76v-51,-9,-98,-22,-141,-38v-43,-16,-81,-37,-114,-64v-35,-29,-61,-67,-80,-114v-19,-47,-29,-106,-29,-175r0,-190v0,-49,-8,-89,-23,-119v-15,-30,-34,-52,-58,-67v-29,-17,-56,-29,-83,-33v-27,-4,-58,-7,-94,-10r0,-87v85,0,166,3,241,11v75,8,137,26,188,53v53,29,94,68,121,118v27,50,41,116,41,198v0,40,-2,81,-6,123v-4,42,-7,83,-7,121v0,53,7,92,20,119v13,27,34,49,61,67v25,17,58,28,98,35v40,7,83,12,127,15r0,150","w":1024},"~":{"d":"1295,-735v-13,37,-31,74,-53,113v-22,39,-48,73,-75,103v-34,37,-71,67,-111,89v-40,22,-81,34,-126,34v-51,0,-96,-8,-138,-26v-42,-18,-82,-38,-121,-61v-31,-19,-66,-38,-106,-58v-40,-20,-76,-30,-107,-30v-44,0,-82,15,-115,47v-33,32,-64,83,-94,152r-104,-42v10,-29,25,-64,47,-103v22,-39,49,-77,81,-113v30,-34,66,-63,107,-87v41,-24,84,-36,130,-36v55,0,104,10,146,29v42,19,80,38,115,59v35,21,71,41,105,59v34,18,69,28,106,28v47,0,86,-17,119,-52v33,-35,63,-84,90,-147"}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2006 Microsoft Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Georgia is either a registered trademark or a trademark of Microsoft
 * Corporation in the United States and/or other countries.
 * 
 * Manufacturer:
 * Carter & Cone
 * 
 * Designer:
 * Matthew Carter
 * 
 * License information:
 * http://www.microsoft.com/typography/fonts/
 */
Cufon.registerFont({"w":1317,"face":{"font-family":"Georgia","font-weight":400,"font-style":"italic","font-stretch":"normal","units-per-em":"2048","panose-1":"2 4 5 2 5 4 5 9 3 3","ascent":"1638","descent":"-410","x-height":"25","bbox":"-361 -1549 2232 444","underline-thickness":"96","underline-position":"-135","slope":"-13","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":494},"\u00a0":{"w":494},"!":{"d":"667,-1356v0,12,-2,28,-6,48v-4,20,-11,45,-22,76r-115,336r-157,464r-78,0v23,-154,47,-332,71,-534v24,-202,40,-320,47,-355v9,-41,29,-73,59,-98v30,-25,63,-37,100,-37v32,0,56,9,74,28v18,19,27,43,27,72xm410,-115v0,37,-13,69,-40,95v-27,26,-60,40,-97,40v-37,0,-70,-14,-97,-40v-27,-26,-40,-58,-40,-95v0,-37,13,-70,40,-97v27,-27,60,-40,97,-40v37,0,70,13,97,40v27,27,40,60,40,97","w":678},"\"":{"d":"908,-1441v0,26,-19,81,-56,167v-37,86,-77,188,-121,307r-61,0v3,-113,5,-209,5,-288v0,-79,3,-133,8,-162v5,-30,20,-57,44,-79v24,-22,54,-33,89,-33v31,0,55,8,70,25v15,17,22,38,22,63xm532,-1441v0,26,-19,81,-56,167v-37,86,-77,188,-121,307r-61,0v3,-113,5,-209,5,-288v0,-79,3,-133,8,-162v5,-30,20,-57,44,-79v24,-22,54,-33,89,-33v31,0,55,8,70,25v15,17,22,38,22,63","w":843},"#":{"d":"1180,-745r-232,0r-94,251r261,0r-28,123r-279,0r-139,371r-111,0r139,-371r-217,0r-139,371r-111,0r139,-371r-214,0r28,-123r232,0r95,-251r-262,0r28,-123r279,0r137,-362r111,0r-137,362r217,0r137,-362r111,0r-137,362r214,0xm841,-747r-222,0r-96,255r221,0"},"$":{"d":"1181,-1053v0,37,-9,70,-29,101v-20,31,-48,46,-85,46v-33,0,-59,-7,-79,-22v-20,-15,-30,-36,-30,-62v0,-18,6,-40,20,-68v14,-28,25,-52,33,-72v-1,-5,-6,-12,-13,-23v-7,-11,-17,-20,-28,-29v-12,-9,-28,-18,-48,-25v-20,-7,-47,-12,-80,-15r-110,482r58,23r58,24v77,33,136,73,177,121v41,48,61,103,61,165v0,118,-50,217,-151,298v-101,81,-227,123,-379,128r-63,280r-92,0r67,-278v-109,-5,-198,-33,-264,-83v-66,-50,-99,-113,-99,-187v0,-48,13,-89,38,-123v25,-34,57,-50,95,-50v33,0,58,9,76,26v18,17,27,37,27,62v0,24,-11,54,-31,88v-20,34,-34,57,-43,70v12,37,36,64,72,84v36,20,84,32,145,37r121,-522r-75,-29r-71,-30v-60,-27,-107,-62,-141,-106v-34,-44,-51,-97,-51,-157v0,-117,51,-213,152,-287v101,-74,219,-111,352,-111r51,-227r92,0r-55,227v98,10,177,38,235,83v58,45,87,98,87,161xm754,-1220v-98,0,-174,23,-226,68v-52,45,-78,105,-78,178v0,45,11,81,34,110v23,29,56,53,101,73r29,13v12,5,23,10,34,14xm895,-332v0,-46,-12,-86,-37,-119v-25,-33,-65,-62,-120,-85v-7,-3,-16,-7,-25,-10v-9,-3,-17,-5,-24,-8r-117,500v95,0,173,-24,233,-72v60,-48,90,-117,90,-206","w":1249},"%":{"d":"884,-1172v0,128,-39,237,-118,326v-79,89,-179,133,-301,133v-88,0,-156,-25,-205,-75v-49,-50,-74,-117,-74,-204v0,-59,10,-116,30,-171v20,-55,47,-103,82,-145v36,-43,80,-78,132,-105v52,-27,112,-40,177,-40v88,0,157,25,205,76v48,51,72,119,72,205xm720,-1197v0,-54,-10,-99,-30,-135v-20,-36,-53,-54,-97,-54v-70,0,-128,41,-173,122v-45,81,-68,180,-68,298v0,52,10,96,30,132v20,36,53,54,98,54v66,0,123,-41,170,-122v47,-81,70,-180,70,-295xm1559,-428v0,128,-39,237,-118,326v-79,89,-179,133,-301,133v-88,0,-157,-25,-206,-75v-49,-50,-73,-117,-73,-204v0,-59,10,-116,30,-171v20,-55,47,-103,82,-145v36,-43,81,-78,133,-105v52,-27,111,-40,176,-40v88,0,156,25,204,76v48,51,73,119,73,205xm1395,-453v0,-54,-11,-99,-31,-135v-20,-36,-52,-54,-96,-54v-70,0,-128,41,-173,122v-45,81,-68,180,-68,298v0,52,10,96,30,132v20,36,53,54,98,54v66,0,122,-41,169,-122v47,-81,71,-180,71,-295xm1676,-1424r-1458,1424r-144,0r1455,-1424r147,0","w":1674},"&":{"d":"1540,-899r-16,66v-29,3,-66,9,-111,20v-45,11,-85,31,-119,62v-17,15,-37,39,-60,71r-84,117r-96,129v-40,52,-76,95,-109,128v25,40,50,77,77,110v27,33,51,58,74,73v23,16,58,29,104,39v46,10,86,17,117,18r-17,66r-384,0r-114,-181r-90,77v-30,25,-64,48,-104,70v-40,23,-79,40,-118,52v-39,12,-79,17,-121,17v-101,0,-185,-29,-251,-86v-66,-57,-100,-135,-100,-234v0,-102,36,-192,106,-271v70,-79,178,-157,324,-232v-31,-58,-55,-109,-72,-153v-17,-44,-25,-90,-25,-138v0,-57,11,-108,33,-154v22,-46,52,-86,89,-119v35,-31,79,-56,130,-74v51,-18,103,-27,155,-27v77,0,141,21,192,63v51,42,76,101,76,174v0,83,-28,155,-84,217v-56,62,-153,126,-293,193r125,227v34,60,78,133,132,219v35,-39,66,-78,94,-116v28,-38,57,-82,86,-131v19,-31,34,-60,44,-86v10,-26,15,-47,15,-64v0,-17,-14,-32,-41,-43v-27,-11,-65,-22,-115,-33r16,-66r535,0xm893,-1213v0,-49,-13,-87,-39,-115v-26,-28,-62,-42,-111,-42v-63,0,-114,23,-153,68v-39,45,-58,100,-58,163v0,43,8,87,23,131v15,44,37,92,64,145v97,-47,166,-99,209,-155v43,-56,65,-120,65,-195xm764,-236r-154,-258v-47,-80,-90,-160,-131,-237v-76,41,-135,93,-177,159v-42,66,-63,139,-63,219v0,78,21,139,61,185v40,46,97,69,170,69v53,0,105,-12,155,-36v50,-24,96,-58,139,-101","w":1455},"'":{"d":"519,-1441v0,26,-18,81,-55,167v-37,86,-78,188,-122,307r-61,0v3,-113,5,-209,5,-288v0,-79,3,-133,8,-162v5,-30,20,-57,44,-79v24,-22,54,-33,89,-33v31,0,54,8,69,25v15,17,23,38,23,63","w":441},"(":{"d":"910,-1532r-16,81v-86,15,-166,61,-242,135v-76,74,-142,174,-199,301v-50,111,-89,238,-117,382v-28,144,-42,281,-42,412v0,131,20,239,62,323v42,84,110,135,203,152r-17,74v-138,-17,-245,-79,-321,-186v-76,-107,-114,-250,-114,-431v0,-332,77,-614,231,-847v154,-233,345,-365,572,-396","w":768},")":{"d":"712,-915v0,332,-78,614,-232,847v-154,233,-344,365,-571,396r16,-81v86,-15,167,-61,243,-135v76,-74,141,-174,198,-301v49,-111,88,-238,116,-382v28,-144,43,-281,43,-412v0,-131,-21,-239,-63,-323v-42,-84,-109,-135,-202,-152r17,-74v138,17,245,79,321,186v76,107,114,250,114,431","w":768},"*":{"d":"1008,-1099v0,25,-7,43,-21,54v-14,11,-32,17,-54,17v-15,0,-49,-8,-105,-22v-56,-14,-119,-25,-188,-33v30,41,58,75,84,103r65,70v18,19,32,36,42,51v10,15,15,30,15,47v0,18,-8,34,-24,47v-16,13,-33,20,-51,20v-12,0,-23,-4,-34,-11v-11,-7,-20,-16,-27,-29v-11,-19,-22,-50,-32,-93v-10,-43,-33,-105,-68,-188v-32,79,-54,142,-67,188v-13,46,-24,78,-33,93v-9,13,-17,23,-26,30v-9,7,-21,10,-35,10v-19,0,-35,-6,-51,-19v-16,-13,-24,-29,-24,-48v0,-16,5,-31,14,-45v9,-14,24,-32,43,-53r67,-71v28,-30,55,-64,82,-102v-65,7,-126,18,-182,33v-56,15,-94,22,-111,22v-22,0,-40,-5,-54,-16v-14,-11,-21,-30,-21,-55v0,-23,7,-41,21,-53v14,-12,32,-18,54,-18v20,0,55,7,105,21v50,14,113,25,188,32v-26,-35,-53,-69,-82,-101r-67,-72v-19,-20,-33,-38,-43,-52v-10,-14,-14,-29,-14,-46v0,-18,8,-34,24,-47v16,-13,33,-20,51,-20v12,0,23,3,33,10v10,7,20,17,28,30v9,16,22,51,37,107v15,56,36,114,63,174v30,-68,52,-127,66,-178v14,-51,25,-86,34,-103v7,-13,16,-22,26,-29v10,-7,22,-11,35,-11v19,0,35,6,51,19v16,13,24,29,24,48v0,27,-19,59,-56,96v-37,37,-87,95,-150,175v72,-8,135,-19,188,-33v53,-14,88,-20,105,-20v22,0,40,6,54,18v14,12,21,30,21,53","w":967},"+":{"d":"1198,-497r-451,0r0,451r-127,0r0,-451r-451,0r0,-125r451,0r0,-451r127,0r0,451r451,0r0,125"},",":{"d":"413,-98v0,57,-13,109,-39,158v-26,49,-59,94,-100,133v-39,38,-79,70,-120,97v-41,27,-78,49,-110,64r-32,-67v31,-17,62,-36,93,-57v31,-21,58,-42,79,-63v27,-26,50,-52,68,-77v18,-25,32,-56,43,-92r-47,0v-41,0,-72,-10,-92,-30v-20,-20,-30,-47,-30,-80v0,-35,13,-67,40,-96v27,-29,63,-44,108,-44v49,0,84,14,106,42v22,28,33,66,33,112","w":552},"-":{"d":"711,-620r-36,152r-596,0r36,-152r596,0","w":766},"\u00ad":{"d":"711,-620r-36,152r-596,0r36,-152r596,0","w":766},".":{"d":"400,-115v0,37,-13,69,-40,95v-27,26,-60,40,-97,40v-37,0,-70,-14,-97,-40v-27,-26,-40,-58,-40,-95v0,-37,13,-70,40,-97v27,-27,60,-40,97,-40v37,0,70,13,97,40v27,27,40,60,40,97","w":552},"\/":{"d":"1055,-1523r-1033,1947r-138,0r1031,-1947r140,0","w":960},"0":{"d":"1205,-697v0,95,-17,187,-51,276v-34,89,-82,166,-141,231v-63,69,-134,122,-214,162v-80,40,-171,60,-274,60v-133,0,-238,-38,-313,-115v-75,-77,-113,-173,-113,-288v0,-101,18,-195,53,-283v35,-88,83,-167,145,-235v61,-67,133,-119,217,-158v84,-39,172,-58,265,-58v137,0,241,40,315,119v74,79,111,175,111,289xm992,-742v0,-95,-20,-166,-60,-215v-40,-49,-96,-73,-167,-73v-73,0,-139,23,-198,68v-59,45,-108,107,-148,188v-35,70,-61,145,-79,226v-18,81,-28,154,-28,220v0,89,19,160,58,210v39,50,96,75,171,75v69,0,133,-20,191,-61v58,-41,109,-106,153,-194v37,-74,64,-151,81,-230v17,-79,26,-151,26,-214","w":1257},"1":{"d":"716,-1105r-46,171v-17,64,-28,110,-34,137r-138,598v-1,5,-2,11,-3,17v-1,6,-1,12,-1,17v0,17,4,31,12,43v8,12,18,21,29,26v13,7,39,13,76,19v37,6,67,10,90,11r-16,66r-674,0r16,-66v21,-1,52,-4,95,-8v43,-4,74,-9,91,-14v18,-5,36,-18,53,-36v17,-18,29,-39,34,-64r164,-712r-249,0r18,-79r55,0v69,0,134,-11,195,-35v61,-24,111,-54,150,-91r83,0","w":880},"2":{"d":"1076,-792v0,73,-18,136,-54,186v-36,50,-85,93,-147,128v-47,27,-101,50,-163,70v-62,20,-129,42,-203,64v-63,19,-124,42,-183,70v-59,28,-108,61,-146,100r797,0r-41,174r-937,0r33,-136v20,-27,44,-53,72,-78v28,-25,61,-50,99,-74v33,-21,70,-41,111,-61v41,-20,86,-39,134,-58v62,-24,116,-48,162,-71v46,-23,86,-46,118,-70v49,-36,84,-76,104,-118v20,-42,30,-91,30,-148v0,-66,-18,-118,-54,-156v-36,-38,-83,-58,-140,-58v-55,0,-102,10,-141,29v-39,19,-66,40,-81,62v0,8,1,19,2,34v1,15,1,32,1,53v0,60,-12,104,-35,134v-23,30,-61,45,-112,45v-37,0,-62,-8,-76,-25v-14,-17,-22,-38,-22,-63v0,-39,12,-79,36,-119v24,-40,59,-78,104,-113v43,-34,95,-62,156,-83v61,-21,126,-31,197,-31v113,0,205,28,275,84v70,56,104,132,104,229","w":1144},"3":{"d":"997,-1007v25,27,43,56,53,88v10,32,15,63,15,94v0,33,-7,70,-21,111v-14,41,-34,78,-60,110v-29,35,-67,68,-114,98v-47,30,-105,53,-174,71r-6,16v32,3,66,9,102,21v36,12,67,28,95,48v29,21,53,48,72,82v19,34,28,74,28,121v0,76,-18,145,-53,209v-35,64,-80,118,-137,161v-59,45,-126,80,-201,105v-75,25,-156,37,-241,37v-107,0,-196,-23,-266,-71v-70,-48,-105,-107,-105,-177v0,-43,12,-82,37,-115v25,-33,58,-50,99,-50v37,0,64,8,81,26v17,18,26,38,26,60v0,29,-8,58,-23,88v-15,30,-28,56,-37,76v3,5,10,12,20,22v10,10,24,20,42,29v18,9,40,18,67,25v27,7,59,10,94,10v44,0,89,-10,136,-30v47,-20,89,-49,124,-86v37,-39,67,-86,90,-140v23,-54,34,-120,34,-196v0,-61,-20,-108,-60,-140v-40,-32,-100,-49,-178,-49r-134,0r26,-111r89,0v103,0,184,-36,244,-108v60,-72,90,-163,90,-270v0,-61,-15,-106,-46,-138v-31,-32,-76,-48,-137,-48v-47,0,-89,8,-127,26v-38,18,-67,38,-87,60v0,7,0,18,1,34v1,16,1,33,1,51v0,64,-13,111,-40,141v-27,30,-67,45,-120,45v-33,0,-55,-8,-68,-25v-13,-17,-20,-39,-20,-64v0,-39,11,-77,34,-115v23,-38,57,-75,104,-112v41,-33,95,-60,160,-83v65,-23,135,-35,210,-35v68,0,126,9,172,27v46,18,82,42,109,71","w":1130},"4":{"d":"1102,-216r-30,126r-210,0r-105,455r-192,0r105,-455r-643,0r40,-164r887,-845r141,0r-204,883r211,0xm851,-876r-696,660r544,0","w":1157},"5":{"d":"1114,-1073r-43,176r-635,0r-137,426v35,-22,77,-43,127,-63v50,-20,106,-30,167,-30v45,0,89,6,131,17v42,11,82,31,121,59v37,27,68,61,91,103v23,42,34,94,34,157v0,83,-18,161,-52,234v-34,73,-81,136,-141,189v-61,54,-128,95,-201,125v-73,30,-151,45,-235,45v-105,0,-193,-23,-263,-70v-70,-47,-104,-103,-104,-170v0,-43,12,-81,38,-113v26,-32,58,-47,97,-47v39,0,66,9,83,27v17,18,25,39,25,60v0,26,-8,55,-23,87r-35,72v16,21,40,39,72,54v32,15,76,23,133,23v101,0,191,-47,272,-142v81,-95,121,-213,121,-355v0,-72,-21,-131,-63,-178v-42,-47,-99,-70,-171,-70v-68,0,-127,13,-177,39v-50,26,-92,56,-127,93r-66,-26r239,-722r722,0","w":1082},"6":{"d":"1093,-546v0,77,-15,151,-45,222v-30,71,-72,133,-123,185v-53,54,-115,96,-185,126v-70,30,-144,45,-221,45v-126,0,-226,-40,-301,-120v-75,-80,-112,-191,-112,-335v0,-130,24,-253,74,-370v50,-117,119,-222,207,-315v85,-91,188,-167,308,-228v120,-61,246,-100,378,-118r0,94r-90,11v-145,38,-270,109,-377,213v-107,104,-184,227,-233,368v66,-50,130,-86,193,-108v63,-22,127,-32,190,-32v94,0,174,34,239,102v65,68,98,155,98,260xm880,-518v0,-85,-20,-154,-61,-204v-41,-50,-97,-75,-168,-75v-57,0,-110,12,-159,35v-49,23,-94,53,-137,92v-7,19,-15,54,-26,108v-11,54,-16,113,-16,178v0,111,20,195,59,254v39,59,94,88,166,88v93,0,172,-47,240,-140v68,-93,102,-205,102,-336","w":1159},"7":{"d":"1180,-1073r-15,65r-1020,1373r-131,0r962,-1275r-390,0v-58,0,-103,1,-136,2v-33,1,-65,8,-95,19v-23,9,-45,31,-69,67v-24,36,-47,83,-70,141r-66,0r90,-392r940,0","w":1017},"8":{"d":"1206,-1151v0,82,-28,158,-85,229v-57,71,-140,130,-250,177v87,42,151,90,190,143v39,53,59,111,59,174v0,127,-58,235,-174,326v-116,91,-259,136,-426,136v-133,0,-238,-31,-313,-94v-75,-63,-113,-142,-113,-237v0,-98,31,-182,94,-253v63,-71,162,-132,297,-181v-66,-43,-115,-89,-147,-139v-32,-50,-47,-104,-47,-159v0,-116,54,-217,163,-301v109,-84,235,-126,377,-126v115,0,205,29,273,87v68,58,102,131,102,218xm1014,-1163v0,-63,-18,-116,-54,-157v-36,-41,-89,-62,-158,-62v-87,0,-161,28,-222,85v-61,57,-92,128,-92,213v0,68,26,124,78,169v52,45,132,89,242,134v65,-36,116,-90,152,-161v36,-71,54,-145,54,-221xm920,-369v0,-37,-8,-69,-23,-98v-15,-29,-39,-56,-70,-81v-31,-25,-71,-50,-118,-74v-47,-24,-101,-49,-160,-74v-84,41,-148,96,-191,164v-43,68,-65,144,-65,228v0,77,24,141,71,190v47,49,111,73,193,73v109,0,196,-33,263,-97v67,-64,100,-141,100,-231","w":1221},"9":{"d":"1108,-666v0,131,-25,256,-74,375v-49,119,-116,224,-203,316v-85,91,-189,167,-311,229v-122,62,-252,101,-391,116r0,-97r94,-9v157,-44,286,-112,387,-206v101,-94,177,-213,228,-357v-69,51,-134,85,-195,103v-61,18,-124,28,-188,28v-95,0,-174,-34,-238,-102v-64,-68,-96,-154,-96,-260v0,-74,15,-145,44,-214v29,-69,70,-130,122,-185v50,-52,111,-94,183,-127v72,-33,146,-50,225,-50v123,0,223,39,299,118v76,79,114,186,114,322xm901,-706v0,-101,-21,-180,-62,-238v-41,-58,-95,-88,-161,-88v-59,0,-110,17,-153,50v-43,33,-80,75,-109,125v-29,49,-49,102,-62,159v-13,57,-20,108,-20,152v0,79,20,144,62,193v42,49,97,74,166,74v51,0,102,-10,153,-29v51,-19,99,-49,144,-91v7,-23,17,-60,27,-110v10,-50,15,-116,15,-197","w":1159},":":{"d":"612,-853v0,37,-13,69,-40,96v-27,27,-60,40,-97,40v-37,0,-70,-13,-97,-40v-27,-27,-40,-59,-40,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm447,-115v0,37,-14,69,-41,95v-27,26,-59,40,-96,40v-37,0,-69,-14,-96,-40v-27,-26,-41,-58,-41,-95v0,-37,14,-70,41,-97v27,-27,59,-40,96,-40v37,0,69,13,96,40v27,27,41,60,41,97","w":786},";":{"d":"612,-853v0,37,-13,69,-40,96v-27,27,-60,40,-97,40v-37,0,-70,-13,-97,-40v-27,-27,-40,-59,-40,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm462,-98v0,57,-13,109,-39,158v-26,49,-59,94,-100,133v-39,38,-80,70,-121,97v-41,27,-77,49,-109,64r-32,-67v31,-17,62,-36,93,-57v31,-21,57,-42,79,-63v27,-26,49,-52,67,-77v18,-25,33,-56,44,-92r-47,0v-41,0,-71,-10,-91,-30v-20,-20,-31,-47,-31,-80v0,-35,13,-67,40,-96v27,-29,63,-44,108,-44v49,0,84,14,106,42v22,28,33,66,33,112","w":786},"\u037e":{"d":"612,-853v0,37,-13,69,-40,96v-27,27,-60,40,-97,40v-37,0,-70,-13,-97,-40v-27,-27,-40,-59,-40,-96v0,-37,13,-70,40,-97v27,-27,59,-40,97,-40v38,0,70,13,97,40v27,27,40,60,40,97xm462,-98v0,57,-13,109,-39,158v-26,49,-59,94,-100,133v-39,38,-80,70,-121,97v-41,27,-77,49,-109,64r-32,-67v31,-17,62,-36,93,-57v31,-21,57,-42,79,-63v27,-26,49,-52,67,-77v18,-25,33,-56,44,-92r-47,0v-41,0,-71,-10,-91,-30v-20,-20,-31,-47,-31,-80v0,-35,13,-67,40,-96v27,-29,63,-44,108,-44v49,0,84,14,106,42v22,28,33,66,33,112","w":786},"<":{"d":"1143,-22r-925,-481r0,-113r925,-481r0,137r-769,400r769,401r0,137"},"=":{"d":"1188,-683r-1009,0r0,-125r1009,0r0,125xm1188,-311r-1009,0r0,-125r1009,0r0,125"},">":{"d":"1149,-503r-925,481r0,-137r769,-401r-769,-400r0,-137r925,481r0,113"},"?":{"d":"1005,-1119v0,147,-50,267,-150,360v-100,93,-232,150,-395,170r-50,212r-92,0r79,-379v54,-5,106,-15,157,-30v51,-15,96,-38,135,-69v41,-32,73,-71,97,-117v24,-46,35,-107,35,-181v0,-71,-18,-125,-55,-165v-37,-40,-89,-60,-156,-60v-25,0,-50,5,-76,14v-26,9,-46,18,-61,27r0,69v0,28,-2,50,-5,68v-6,30,-22,55,-47,74v-25,19,-58,28,-99,28v-28,0,-48,-9,-62,-26v-14,-17,-21,-38,-21,-62v0,-31,9,-60,26,-90v17,-30,44,-59,80,-87v32,-25,73,-46,124,-63v51,-17,105,-26,164,-26v113,0,204,30,271,90v67,60,101,141,101,243xm462,-115v0,37,-13,69,-40,95v-27,26,-60,40,-97,40v-37,0,-70,-14,-97,-40v-27,-26,-40,-58,-40,-95v0,-37,13,-70,40,-97v27,-27,60,-40,97,-40v37,0,70,13,97,40v27,27,40,60,40,97","w":980},"@":{"d":"1557,119v-67,58,-145,105,-237,141v-92,36,-194,53,-307,53v-101,0,-200,-17,-297,-49v-97,-32,-185,-81,-263,-147v-77,-66,-140,-149,-187,-247v-47,-98,-71,-214,-71,-347v0,-114,21,-225,64,-332v43,-107,104,-203,183,-287v77,-82,171,-148,284,-198v113,-50,237,-76,370,-76v115,0,215,19,300,56v85,37,154,85,208,146v54,60,95,129,122,207v27,78,40,159,40,244v0,157,-44,294,-132,409v-88,115,-201,172,-341,172v-57,0,-105,-14,-144,-42v-39,-28,-61,-69,-66,-120r-7,-2v-32,49,-69,87,-110,116v-41,29,-82,44,-124,44v-27,0,-56,-5,-84,-14v-28,-9,-53,-23,-75,-44v-22,-22,-40,-51,-53,-86v-13,-35,-19,-79,-19,-131v0,-49,11,-103,33,-163v22,-60,53,-118,91,-173v38,-55,87,-103,147,-144v60,-41,126,-61,196,-61v37,0,71,11,100,32v29,21,46,51,53,92r6,0r43,-112r149,0r-189,538v-6,17,-10,36,-14,58v-4,22,-6,38,-6,51v0,34,9,59,26,75v17,16,40,23,67,23v103,0,190,-48,259,-145v69,-97,104,-225,104,-384v0,-79,-12,-151,-37,-218v-25,-67,-62,-127,-113,-178v-49,-51,-110,-91,-184,-120v-74,-29,-159,-44,-254,-44v-91,0,-179,18,-265,53v-86,35,-164,87,-235,156v-69,67,-124,150,-167,249v-43,99,-64,212,-64,337v0,121,17,227,50,319v33,92,80,168,141,230v59,60,129,105,210,135v81,30,168,45,262,45v106,0,200,-14,283,-43v83,-29,157,-70,223,-125xm1209,-742v-9,-54,-24,-93,-45,-118v-21,-25,-51,-37,-91,-37v-43,0,-81,17,-117,51v-36,34,-66,76,-91,123v-26,49,-47,103,-61,161v-14,58,-21,113,-21,162v0,73,9,120,27,142v18,22,39,34,61,34v55,0,99,-20,135,-60v36,-40,65,-79,88,-120","w":1902},"A":{"d":"875,-576r-89,-554r-340,554r429,0xm722,0r15,-66v21,-2,45,-4,73,-8v28,-4,49,-8,64,-13v21,-7,36,-14,46,-21v10,-7,16,-19,16,-34v0,-5,-4,-38,-12,-98r-34,-253r-498,0v-22,35,-45,75,-70,121r-57,104v-12,21,-24,46,-35,72v-11,26,-16,43,-16,52v0,22,18,40,53,53v35,13,80,22,133,25r-15,66r-545,0r15,-66v17,-1,39,-6,67,-12v28,-6,51,-14,70,-25v23,-13,46,-29,68,-49v22,-20,44,-50,69,-89r379,-610r364,-588r80,0r189,1229v4,25,11,45,20,62v9,17,23,33,42,48v13,9,31,18,54,24v23,6,43,9,60,10r-15,66r-580,0","w":1374},"B":{"d":"1181,-1363v37,20,65,46,86,79v21,33,31,72,31,116v0,61,-12,114,-36,160v-24,46,-55,85,-94,116v-39,32,-84,59,-134,80v-50,21,-99,36,-150,46r0,9v39,5,79,13,120,27v41,14,79,32,112,55v35,23,64,54,86,91v22,37,34,80,34,131v0,75,-17,141,-52,199v-35,58,-80,105,-133,141v-57,39,-119,67,-185,85v-66,18,-133,28,-202,28r-693,0r16,-66v16,-1,40,-4,72,-8v32,-4,55,-10,69,-16v23,-9,42,-22,54,-38v12,-16,21,-37,26,-60r237,-1030v1,-7,2,-14,3,-20v1,-6,2,-12,2,-19v0,-14,-2,-27,-8,-37v-6,-10,-16,-19,-30,-26v-19,-11,-40,-19,-62,-24v-22,-5,-41,-8,-60,-9r16,-66r626,0v47,0,91,5,132,13v41,8,80,22,117,43xm969,-902v31,-37,53,-75,67,-116v14,-41,21,-88,21,-140v0,-35,-6,-65,-19,-90v-13,-25,-30,-44,-52,-59v-22,-14,-46,-23,-73,-29v-27,-6,-55,-9,-84,-9v-22,0,-46,0,-73,1v-40,2,-41,2,-69,3r-127,552r125,0v65,0,121,-10,169,-31v48,-21,86,-48,115,-82xm904,-216v29,-39,50,-82,65,-129v15,-47,22,-93,22,-138v0,-71,-24,-127,-72,-168v-48,-41,-115,-61,-202,-61v-42,0,-78,1,-108,2v-30,1,-53,1,-68,2r-113,489v-2,9,-3,18,-4,26v-1,8,-2,16,-2,23v0,35,18,60,53,75v35,15,80,23,135,23v67,0,126,-14,176,-42v50,-28,89,-61,118,-102","w":1339},"C":{"d":"631,33v-73,0,-141,-13,-206,-38v-65,-25,-121,-62,-169,-111v-49,-49,-86,-109,-114,-179v-28,-70,-42,-149,-42,-237v0,-126,21,-244,64,-353v43,-109,101,-207,176,-293v72,-83,159,-149,260,-199v101,-50,206,-75,316,-75v83,0,157,10,220,29v63,19,114,43,155,72r56,-68r80,0r-108,506r-82,0r0,-40v0,-55,-4,-107,-13,-157v-9,-50,-25,-94,-50,-134v-24,-39,-56,-69,-98,-92v-42,-23,-95,-35,-160,-35v-82,0,-158,21,-228,65v-70,44,-132,102,-183,175v-51,71,-91,158,-122,261v-31,103,-46,209,-46,316v0,142,35,258,105,346v70,88,163,132,280,132v98,0,188,-29,270,-87v82,-58,150,-136,202,-233r72,38v-84,143,-178,244,-281,303v-103,59,-221,88,-354,88","w":1315},"D":{"d":"1515,-872v0,135,-26,258,-79,368v-53,110,-122,202,-207,275v-89,75,-188,132,-297,171v-109,39,-223,58,-342,58r-619,0r15,-66v17,0,42,-2,74,-5v32,-3,54,-8,67,-13v24,-9,43,-23,55,-40v12,-17,20,-37,25,-60r236,-1021v2,-8,3,-17,5,-27v2,-10,3,-17,3,-23v0,-15,-2,-28,-7,-39v-5,-11,-16,-20,-31,-27v-17,-8,-39,-15,-64,-21v-25,-6,-45,-9,-58,-11r15,-66r601,0v60,0,125,8,196,25v71,17,137,47,198,88v65,43,116,102,155,174v39,72,59,159,59,260xm1280,-871v0,-149,-40,-265,-120,-348v-80,-83,-186,-124,-319,-124v-27,0,-56,0,-85,1v-29,1,-52,2,-69,3r-254,1101v-2,9,-4,18,-5,27v-1,9,-2,17,-2,25v0,40,17,68,50,84v33,16,88,25,164,25v99,0,190,-23,272,-68v82,-45,149,-106,203,-181v55,-78,97,-163,124,-255v27,-92,41,-189,41,-290","w":1534},"E":{"d":"1388,-1419r-79,342r-75,0v-4,-71,-18,-130,-44,-178v-26,-48,-61,-75,-104,-82v-20,-3,-44,-5,-73,-6v-29,-1,-61,-2,-97,-2r-228,0r-131,571r160,0v49,0,88,-4,115,-14v27,-10,52,-26,73,-49v20,-20,39,-48,58,-83v19,-35,32,-64,40,-88r75,0r-128,555r-74,0v0,-7,1,-17,2,-27v1,-10,1,-21,1,-33v0,-25,-2,-48,-5,-71v-3,-23,-8,-39,-14,-50v-14,-26,-34,-43,-60,-51v-26,-8,-60,-12,-102,-12r-160,0r-99,433v-4,16,-7,33,-10,52v-3,19,-4,33,-4,44v0,37,13,61,39,73v26,12,85,18,175,18v112,0,188,-4,228,-12v40,-8,70,-20,89,-35v38,-31,83,-80,134,-147v51,-67,85,-116,102,-147r72,0r-123,418r-1178,0r15,-66v21,-1,48,-4,82,-8v34,-4,57,-9,69,-14v23,-9,41,-22,53,-39v12,-17,21,-38,26,-61r238,-1030v1,-5,3,-11,4,-18v1,-7,1,-13,1,-19v0,-13,-3,-25,-9,-36v-6,-11,-15,-20,-30,-27v-16,-9,-39,-16,-68,-23v-29,-7,-52,-11,-69,-12r15,-66r1098,0","w":1338},"F":{"d":"1404,-1419r-82,355r-75,0v-3,-71,-17,-134,-45,-186v-28,-52,-62,-81,-102,-87v-21,-3,-44,-5,-72,-6v-28,-1,-60,-2,-96,-2r-243,0r-133,577r163,0v39,0,74,-4,106,-12v32,-8,63,-26,93,-53v15,-14,33,-37,52,-68v19,-31,34,-65,45,-100r76,0r-128,557r-76,0v1,-8,2,-17,3,-28v1,-11,1,-22,1,-35v0,-19,-1,-40,-4,-64v-3,-24,-8,-42,-15,-54v-18,-27,-41,-45,-70,-54v-29,-9,-63,-13,-102,-13r-163,0r-114,497v-1,5,-2,11,-3,17v-1,6,-1,11,-1,16v0,15,3,27,9,38v6,11,16,21,31,30v11,5,32,11,63,17v31,6,57,10,77,11r-16,66r-618,0r16,-66v21,-1,47,-3,80,-6v33,-3,55,-7,67,-12v23,-9,41,-23,53,-40v12,-17,21,-37,26,-60r239,-1034v1,-7,3,-14,4,-20v1,-6,1,-12,1,-19v0,-13,-2,-25,-7,-35v-5,-10,-16,-18,-32,-26v-15,-8,-36,-15,-65,-22v-29,-7,-53,-11,-72,-13r16,-66r1113,0","w":1227},"G":{"d":"667,33v-80,0,-154,-13,-223,-38v-69,-25,-129,-63,-180,-112v-51,-49,-91,-109,-120,-180v-29,-71,-44,-152,-44,-243v0,-129,23,-248,68,-358v45,-110,106,-207,184,-290v77,-82,167,-147,272,-194v105,-47,215,-70,331,-70v92,0,171,11,237,32v66,21,117,44,154,69r56,-68r80,0r-105,496r-82,0v-1,-55,-6,-110,-14,-163v-8,-53,-25,-101,-50,-144v-26,-43,-62,-78,-107,-103v-45,-25,-109,-38,-190,-38v-82,0,-159,21,-232,63v-73,42,-138,102,-193,179v-54,74,-96,163,-127,267v-31,104,-47,215,-47,334v0,148,35,265,105,350v70,85,167,128,290,128v59,0,110,-9,153,-26v43,-17,78,-37,103,-58v9,-27,18,-56,26,-86v8,-30,18,-68,28,-112r19,-86v2,-11,3,-11,5,-26v2,-10,2,-19,2,-28v0,-17,-2,-30,-6,-41v-4,-11,-15,-20,-32,-27v-19,-10,-47,-17,-84,-22v-37,-5,-66,-9,-86,-10r15,-68r623,0r-15,68v-17,2,-39,6,-67,10v-28,4,-51,10,-70,18v-24,11,-42,25,-54,43v-12,18,-20,39,-26,64r-26,115v-15,63,-26,111,-32,142v-6,31,-11,61,-16,89r-118,47v-34,13,-77,26,-128,39v-47,12,-91,21,-134,28v-43,7,-91,10,-143,10","w":1485},"H":{"d":"1771,-1419r-15,66v-19,1,-42,4,-70,9v-28,5,-49,10,-64,15v-26,9,-45,22,-56,41v-11,19,-20,39,-25,60r-238,1033v-1,5,-2,11,-3,18v-1,7,-1,12,-1,17v0,14,3,26,9,37v6,11,16,20,29,29v10,6,29,12,55,18v26,6,48,9,67,10r-15,66r-589,0r15,-66v17,-1,40,-3,71,-6v31,-3,52,-7,65,-12v23,-9,41,-21,54,-38v13,-17,22,-37,27,-62r118,-512r-667,0r-115,501v-1,5,-2,11,-3,17v-1,6,-1,12,-1,17v0,13,3,26,9,38v6,12,16,22,29,29v10,6,29,12,55,18v26,6,48,9,67,10r-15,66r-589,0r15,-66v17,-1,40,-3,71,-6v31,-3,52,-7,65,-12v23,-9,41,-21,54,-38v13,-17,22,-37,27,-62r239,-1034v1,-5,2,-10,3,-16v1,-6,1,-12,1,-18v0,-15,-2,-27,-8,-38v-6,-11,-16,-20,-31,-28v-16,-9,-36,-16,-60,-23v-24,-7,-45,-11,-64,-12r15,-66r589,0r-15,66v-19,1,-42,4,-70,9v-28,5,-49,10,-64,15v-26,9,-45,22,-56,41v-11,19,-20,39,-25,60r-102,447r667,0r100,-437v1,-5,2,-10,3,-16v1,-6,1,-12,1,-17v0,-15,-2,-28,-8,-39v-6,-11,-16,-20,-31,-28v-16,-9,-36,-16,-60,-23v-24,-7,-45,-11,-64,-12r15,-66r589,0","w":1669},"I":{"d":"922,-1419r-15,66v-21,1,-48,4,-81,9v-33,5,-58,10,-74,15v-28,9,-48,22,-60,40v-12,18,-21,38,-26,59r-240,1037v-1,5,-2,10,-3,16v-1,6,-1,11,-1,16v0,15,3,28,10,39v7,11,19,20,36,28v10,5,32,10,66,16v34,6,59,11,76,12r-15,66r-639,0r15,-66r80,-6v35,-3,59,-7,74,-12v26,-9,46,-22,59,-38v13,-16,22,-37,27,-60r239,-1038r3,-18v0,0,1,-12,1,-18v0,-13,-2,-25,-8,-35v-6,-10,-18,-19,-36,-27v-18,-8,-43,-15,-74,-22v-31,-7,-53,-12,-68,-13r15,-66r639,0","w":798},"J":{"d":"1209,-1419r-15,66v-19,1,-43,3,-72,7v-29,4,-53,10,-74,17v-26,9,-45,22,-56,39v-11,17,-19,38,-25,62r-190,846v-10,45,-29,92,-57,142v-28,50,-63,94,-106,133v-46,42,-98,76,-155,102v-57,26,-124,39,-201,39v-93,0,-168,-23,-224,-70v-56,-47,-84,-111,-84,-194v0,-66,17,-124,50,-173v33,-49,76,-74,129,-74v40,0,68,10,85,29v17,19,25,42,25,68v0,23,-6,47,-17,72v-11,25,-26,49,-44,72v-16,21,-34,42,-53,64v-19,22,-34,42,-45,57v10,20,29,38,56,54v27,16,68,24,122,24v49,0,90,-11,126,-33v36,-22,66,-53,89,-90v23,-37,44,-81,61,-132v17,-51,32,-107,46,-170r170,-756v1,-3,1,-8,2,-15v1,-7,2,-13,2,-18v0,-14,-3,-27,-9,-38v-6,-11,-16,-21,-31,-29v-17,-11,-43,-18,-76,-24v-33,-6,-58,-10,-74,-11r15,-66r630,0","w":1060},"K":{"d":"1597,-1419r-15,66v-3,0,-16,1,-38,3v-22,2,-44,6,-65,11v-27,6,-52,15,-77,25v-25,10,-49,25,-71,44r-282,252v-101,90,-195,170,-283,241r172,275r159,268v19,32,40,60,63,85v23,25,45,43,66,55v15,9,35,15,62,20v27,5,48,7,65,8r-17,66r-361,0v-53,-115,-112,-229,-176,-341v-64,-112,-134,-223,-210,-333r-55,0r-111,479v-1,5,-2,11,-3,17v-1,6,-1,11,-1,17v0,16,2,29,7,39v5,10,15,19,32,28v9,5,28,10,58,17v30,7,52,10,67,11r-15,66r-589,0r15,-66v17,-1,40,-3,69,-6v29,-3,51,-7,64,-12v24,-9,43,-23,55,-40v12,-17,20,-37,25,-60r239,-1034r3,-18v0,0,1,-12,1,-18v0,-15,-3,-27,-9,-38v-6,-11,-16,-19,-29,-26v-12,-7,-30,-13,-54,-20v-24,-7,-47,-12,-67,-15r15,-66r589,0r-15,66v-19,1,-43,4,-72,9v-29,5,-51,10,-66,15v-25,8,-43,22,-55,41v-12,19,-21,39,-26,60r-116,505r20,0v95,-67,189,-141,282,-221v93,-80,168,-150,227,-210v36,-37,63,-67,82,-92v19,-25,29,-46,29,-62v0,-12,-12,-22,-35,-30v-23,-8,-56,-13,-100,-15r15,-66r532,0","w":1422},"L":{"d":"1211,-422r-127,422r-1109,0r15,-66v17,-1,40,-4,71,-7v31,-3,53,-8,67,-13v24,-9,42,-22,54,-40v12,-18,21,-39,26,-62r237,-1026r3,-18v0,0,2,-13,2,-19v0,-13,-2,-26,-8,-37v-6,-11,-16,-20,-31,-28v-13,-8,-33,-16,-59,-23v-26,-7,-47,-12,-65,-14r15,-66r599,0r-15,66v-15,1,-37,4,-66,9v-29,5,-55,10,-77,17v-26,9,-45,23,-57,42v-12,19,-21,40,-26,61r-222,963v-5,23,-9,43,-12,61v-3,18,-5,33,-5,44v0,37,15,60,45,69v30,9,83,14,162,14v44,0,94,-3,150,-11v56,-8,96,-22,118,-42v34,-30,76,-77,128,-140v52,-63,91,-115,116,-156r71,0","w":1236},"M":{"d":"2008,-1419r-15,66v-19,1,-44,4,-74,9v-30,5,-52,10,-67,15v-26,9,-45,22,-56,41v-11,19,-20,39,-25,60r-239,1033v-1,5,-2,11,-3,18v-1,7,-1,12,-1,16v0,14,3,26,9,37v6,11,16,21,30,30v9,6,29,12,59,18v30,6,55,9,72,10r-16,66r-625,0r16,-66v24,-1,54,-4,90,-8v36,-4,61,-9,76,-16v23,-13,43,-27,57,-44v14,-17,23,-37,28,-61r245,-1057r-11,0r-775,1229r-47,0r-178,-1254r-10,0r-201,872v-8,35,-15,70,-20,103v-5,33,-8,60,-8,81v0,22,2,41,7,57v5,16,11,28,20,38v12,14,37,27,76,38v39,11,69,19,91,22r-16,66r-573,0r16,-66v31,-3,63,-8,94,-14v31,-6,60,-17,87,-34v27,-18,49,-47,68,-88v19,-41,38,-105,57,-192r170,-736v3,-15,6,-30,8,-42v2,-12,2,-24,2,-36v0,-21,-3,-40,-8,-54v-5,-14,-12,-26,-21,-36v-17,-19,-41,-33,-71,-41v-30,-8,-56,-13,-81,-14r15,-66r478,0r155,1067r552,-893v21,-34,40,-69,57,-105v17,-36,27,-59,30,-69r476,0","w":1899},"N":{"d":"1759,-1419r-16,66v-18,1,-48,6,-89,16v-41,10,-71,20,-90,31v-29,17,-52,49,-70,96v-18,47,-37,107,-54,180r-241,1044r-90,0r-582,-1198r-178,774v-8,35,-15,70,-20,105v-5,35,-8,64,-8,86v0,23,2,43,7,57v5,14,11,26,19,35v11,14,40,27,85,40v45,13,75,20,90,21r-15,66r-582,0r15,-66v22,-2,54,-9,97,-20v43,-11,71,-21,85,-31v27,-18,49,-47,68,-87v19,-40,38,-106,58,-195r159,-688v5,-22,8,-41,10,-57v2,-16,3,-30,3,-43v0,-16,-2,-31,-6,-45v-4,-14,-12,-30,-25,-46v-23,-27,-51,-46,-85,-56v-34,-10,-64,-16,-91,-19r16,-66r407,0r540,1109r163,-707v8,-35,15,-69,20,-103v5,-34,8,-63,8,-87v0,-22,-3,-40,-7,-55v-4,-15,-10,-27,-19,-34v-16,-14,-43,-26,-81,-36v-38,-10,-69,-18,-94,-21r16,-66r577,0","w":1571},"O":{"d":"1477,-873v0,127,-23,245,-70,357v-47,112,-108,208,-183,287v-77,81,-165,146,-264,193v-99,47,-202,70,-308,70v-165,0,-299,-54,-400,-161v-101,-107,-152,-245,-152,-413v0,-129,23,-249,70,-360v47,-111,107,-207,182,-288v75,-82,164,-147,264,-194v100,-47,203,-71,309,-71v163,0,295,52,398,157v103,105,154,246,154,423xm1095,-339v47,-83,84,-176,109,-280v25,-104,38,-208,38,-312v0,-133,-28,-240,-85,-319v-57,-79,-140,-119,-250,-119v-85,0,-165,25,-238,76v-73,51,-137,125,-192,223v-47,86,-83,181,-107,284v-24,103,-35,201,-35,292v0,140,29,249,87,327v58,78,140,117,247,117v91,0,173,-27,246,-82v73,-55,133,-124,180,-207","w":1496},"P":{"d":"1312,-1133v0,81,-18,153,-54,216v-36,63,-81,116,-137,158v-59,44,-124,77,-197,99v-73,22,-149,34,-228,34r-173,0r-102,438v-1,6,-2,12,-3,19v-1,7,-1,12,-1,17v0,15,3,28,8,39v5,11,16,20,32,27v10,5,31,9,61,13v30,4,57,6,81,7r-15,66r-609,0r15,-66v17,-1,40,-4,71,-7v31,-3,53,-8,67,-13v24,-9,42,-22,54,-40v12,-18,21,-39,26,-62r239,-1034v1,-6,2,-13,3,-20v1,-7,2,-14,2,-21v0,-14,-3,-27,-8,-38v-5,-11,-15,-20,-30,-26v-21,-8,-44,-14,-68,-18v-24,-4,-46,-7,-66,-8r15,-66r631,0v114,0,206,26,278,77v72,51,108,120,108,209xm992,-862v27,-39,47,-82,58,-126v11,-44,17,-85,17,-124v0,-31,-5,-60,-13,-87v-8,-27,-22,-52,-42,-74v-20,-21,-46,-39,-77,-51v-31,-12,-71,-18,-118,-18r-130,0r-145,634r113,0v77,0,144,-12,200,-38v56,-26,102,-65,137,-116","w":1249},"Q":{"d":"1477,-873v0,127,-23,245,-70,357v-47,112,-108,208,-183,287v-51,53,-108,100,-170,139v-62,39,-126,68,-193,89v-3,9,-4,21,-5,35v-1,14,-1,26,-1,37v0,68,18,121,55,158v37,37,82,56,136,56v57,0,100,-2,130,-7v30,-5,55,-10,73,-15r-17,75v-41,13,-89,24,-146,34v-57,10,-112,14,-165,14v-94,0,-167,-25,-218,-75v-51,-50,-77,-124,-77,-221v0,-7,0,-17,1,-29v1,-12,2,-22,3,-29v-158,-5,-286,-60,-384,-165v-98,-105,-146,-240,-146,-407v0,-129,23,-249,70,-360v47,-111,107,-207,182,-288v75,-82,164,-147,264,-194v100,-47,203,-71,309,-71v163,0,295,52,398,157v103,105,154,246,154,423xm1242,-931v0,-133,-28,-240,-85,-319v-57,-79,-140,-119,-250,-119v-85,0,-165,25,-238,76v-73,51,-137,125,-192,223v-47,86,-83,181,-107,284v-24,103,-35,201,-35,292v0,140,29,249,87,327v58,78,140,117,247,117v91,0,173,-27,246,-82v73,-55,133,-124,180,-207v47,-83,84,-176,109,-280v25,-104,38,-208,38,-312","w":1496},"R":{"d":"1370,-66r-16,66r-359,0v-57,-135,-111,-250,-161,-346r-159,-300r-148,0r-106,458v-1,5,-2,12,-3,19v-1,7,-2,13,-2,16v0,15,2,29,8,40v6,11,16,20,31,27v9,4,29,8,59,12v30,4,56,7,76,8r-16,66r-600,0r16,-66v17,-1,40,-4,71,-7v31,-3,53,-8,66,-13v24,-9,42,-22,55,-40v13,-18,21,-39,26,-62r239,-1036r3,-20v0,0,2,-14,2,-21v0,-14,-3,-26,-8,-37v-5,-11,-15,-19,-30,-25v-14,-5,-34,-11,-61,-16v-27,-5,-49,-9,-66,-10r15,-66r638,0v57,0,110,6,157,17v47,11,87,27,119,47v35,21,64,49,84,84v20,35,30,76,30,123v0,63,-12,120,-35,172v-23,52,-55,95,-95,132v-42,38,-90,69,-143,94v-53,25,-112,45,-176,60r127,239r115,217v23,43,43,75,61,94v18,19,37,34,57,45v17,9,38,16,65,21v27,5,48,7,64,8xm1084,-1127v0,-68,-20,-121,-62,-159v-42,-38,-101,-57,-176,-57r-159,0r-141,616r142,0v109,0,203,-39,280,-115v77,-76,116,-171,116,-285","w":1437},"S":{"d":"493,29v-82,0,-153,-11,-215,-31v-62,-20,-112,-43,-150,-70r-57,73r-80,0r98,-486r81,0v3,58,12,112,24,163v12,51,32,96,60,137v28,42,64,74,109,97v45,23,100,35,166,35v99,0,179,-28,239,-83v60,-55,90,-130,90,-225v0,-51,-13,-97,-38,-137v-25,-40,-63,-71,-114,-93v-48,-21,-95,-39,-142,-55v-47,-16,-94,-36,-139,-58v-60,-29,-108,-70,-145,-124v-37,-54,-55,-114,-55,-181v0,-64,15,-123,43,-177v28,-54,65,-101,112,-140v45,-38,100,-68,164,-91v64,-23,129,-34,192,-34v59,0,115,7,168,21v53,14,107,40,160,79r55,-68r80,0r-101,471r-81,0v-2,-51,-7,-104,-15,-159v-8,-55,-23,-100,-43,-136v-22,-39,-53,-71,-92,-93v-39,-22,-92,-33,-157,-33v-79,0,-145,27,-198,81v-53,54,-80,119,-80,194v0,49,10,92,30,126v20,34,50,62,91,83v44,23,91,43,139,59v48,16,91,33,129,51v77,36,136,79,179,130v43,51,65,113,65,186v0,71,-15,137,-46,198v-31,61,-72,113,-123,154v-54,44,-115,78,-182,101v-67,23,-140,35,-221,35","w":1149},"T":{"d":"1455,-1419r-89,385r-69,0v-1,-23,-3,-53,-9,-89v-6,-36,-14,-68,-25,-97v-11,-31,-27,-57,-45,-79v-18,-22,-40,-35,-65,-39v-20,-3,-46,-5,-77,-6v-31,-1,-59,-2,-86,-2r-63,0r-264,1145v-1,5,-2,11,-3,17v-1,6,-1,13,-1,19v0,16,3,29,9,39v6,10,17,20,34,28v13,5,37,12,72,20v35,8,64,11,86,12r-16,66r-670,0r16,-66v20,-1,49,-4,87,-8v38,-4,66,-9,83,-15v27,-10,47,-24,60,-41v13,-17,23,-38,28,-62r266,-1154r-53,0v-20,0,-45,1,-75,2v-30,1,-61,3,-92,6v-22,3,-48,16,-77,40v-29,24,-59,51,-88,83v-28,31,-53,63,-76,95v-23,32,-40,61,-53,86r-70,0r89,-385r1236,0","w":1267},"U":{"d":"659,34v-140,0,-250,-30,-329,-89v-79,-59,-118,-138,-118,-237v0,-14,0,-28,2,-40v2,-12,5,-26,8,-42r195,-844v1,-5,2,-11,3,-17v1,-6,1,-12,1,-17v0,-13,-3,-26,-9,-38v-6,-12,-16,-21,-29,-30v-15,-9,-34,-17,-59,-22v-25,-5,-45,-9,-62,-11r16,-66r590,0r-16,66v-19,1,-43,4,-72,9v-29,5,-51,10,-66,15v-26,9,-45,22,-56,41v-11,19,-20,39,-25,60r-182,789v-4,17,-8,37,-11,58v-3,21,-4,42,-4,62v0,35,4,65,11,91v7,26,23,51,48,77v21,23,50,41,87,55v37,14,83,22,139,22v76,0,141,-12,195,-36v54,-24,99,-53,135,-88v34,-34,61,-72,83,-113v22,-41,37,-81,46,-119r67,-280r66,-299v11,-53,19,-97,23,-130v4,-33,7,-61,7,-82v0,-19,-2,-35,-6,-47v-4,-12,-11,-21,-21,-30v-19,-17,-48,-29,-87,-38v-39,-9,-68,-15,-88,-17r16,-66r580,0r-16,66v-18,1,-46,5,-85,13v-39,8,-70,18,-94,32v-27,16,-51,52,-72,106v-21,54,-39,111,-52,170r-64,288v-22,97,-46,203,-74,316v-23,93,-59,170,-106,230v-47,60,-99,107,-158,141v-57,33,-115,56,-176,70v-61,14,-121,21,-181,21","w":1549},"V":{"d":"1614,-1419r-15,66v-17,1,-39,4,-65,11v-26,7,-49,15,-68,26v-29,16,-52,35,-70,56v-18,21,-36,47,-55,76r-317,498r-440,704r-83,0r-103,-732r-73,-504v-3,-22,-9,-41,-19,-56v-10,-15,-24,-29,-43,-43v-15,-11,-33,-19,-54,-25v-21,-6,-40,-10,-58,-11r15,-66r575,0r-15,66v-71,3,-121,11,-150,21v-29,10,-43,25,-43,45v0,7,0,13,1,21v1,8,1,14,1,17v13,98,13,97,45,323r91,635r283,-450r209,-341v40,-67,64,-114,73,-141v9,-27,14,-44,14,-51v0,-13,-6,-25,-19,-34v-13,-9,-29,-17,-48,-23v-19,-7,-41,-12,-64,-15v-23,-3,-43,-6,-60,-7r15,-66r540,0","w":1365},"W":{"d":"2232,-1419r-15,66v-17,1,-37,4,-61,11v-24,7,-46,17,-67,28v-27,15,-50,33,-69,53v-19,20,-37,47,-56,82r-280,523r-362,674r-89,0r-116,-1094r-621,1094r-88,0r-39,-766r-24,-470v-1,-21,-5,-39,-12,-54v-7,-15,-20,-30,-39,-45v-14,-11,-32,-19,-54,-25v-22,-6,-41,-10,-58,-11r15,-66r571,0r-15,66v-79,5,-132,13,-159,25v-27,12,-41,28,-41,45v0,13,0,33,1,59r3,80v2,46,7,138,15,278v12,210,11,210,28,528r596,-1061r92,0r119,1084r218,-425r166,-333v29,-61,49,-107,61,-138v12,-31,18,-53,18,-66v0,-21,-16,-38,-46,-51v-30,-13,-74,-22,-131,-25r15,-66r524,0","w":1998},"X":{"d":"1614,-1419r-15,66v-17,1,-39,3,-65,7v-26,4,-50,10,-71,19v-39,17,-68,34,-88,53r-88,85r-210,213r-208,214r111,248r125,280v13,30,30,59,50,88v20,29,37,48,52,58v13,9,34,16,61,18v27,2,50,3,68,4r-15,66r-639,0r15,-66v39,-1,82,-6,129,-14v47,-8,71,-24,71,-49v0,-18,-5,-43,-15,-75v-10,-32,-20,-62,-32,-91r-62,-152r-74,-171r-172,180r-172,189v-28,32,-49,59,-64,80v-15,21,-23,37,-23,47v0,23,15,38,47,45v32,7,68,10,109,11r-15,66r-534,0r15,-66v17,-1,40,-4,67,-8v27,-4,50,-9,69,-18v38,-18,70,-39,97,-62v27,-23,54,-48,80,-75r218,-225r239,-248r-103,-232r-114,-254v-20,-45,-35,-76,-46,-93v-11,-17,-29,-33,-55,-46v-13,-7,-33,-12,-61,-17v-28,-5,-51,-8,-68,-9r15,-66r632,0r-15,66v-57,2,-104,7,-142,17v-38,10,-57,25,-57,44v0,21,4,45,13,71v9,26,22,57,37,94r53,129r70,159r190,-200v55,-59,101,-112,139,-160v21,-27,37,-47,46,-61v9,-14,14,-26,14,-36v0,-19,-15,-33,-47,-42v-32,-9,-67,-14,-106,-15r15,-66r529,0","w":1455},"Y":{"d":"1517,-1419r-16,66v-12,1,-31,5,-56,13v-25,8,-45,16,-60,25v-29,15,-49,28,-61,37v-12,9,-35,31,-70,68v-63,67,-131,145,-202,234r-224,280v-35,43,-58,78,-72,104v-14,26,-27,64,-39,113r-63,276v-1,5,-2,11,-3,18v-1,7,-1,12,-1,17v0,17,3,31,9,42v6,11,17,21,34,29v15,7,39,13,73,20v34,7,62,10,82,11r-15,66r-664,0r15,-66v19,-1,48,-4,85,-7v37,-3,65,-8,82,-15v27,-10,46,-24,59,-42v13,-18,23,-38,28,-63r72,-311r6,-30v2,-10,3,-16,3,-18v0,-16,-3,-36,-9,-62v-6,-26,-13,-53,-22,-82r-72,-247r-77,-240v-13,-37,-26,-65,-39,-85v-13,-20,-28,-38,-47,-52v-13,-10,-30,-18,-51,-23v-21,-5,-41,-9,-59,-10r16,-66r582,0r-16,66v-15,1,-35,2,-59,3v-24,1,-46,3,-65,6v-19,3,-36,8,-51,16v-15,8,-22,17,-22,29v0,13,4,34,13,65v9,31,22,78,41,139r56,179r73,227r261,-321r154,-201v21,-29,33,-47,37,-55v4,-8,6,-16,6,-22v0,-23,-16,-39,-49,-48v-33,-9,-74,-15,-123,-17r16,-66r504,0","w":1260},"Z":{"d":"1387,-1419r-8,35r-1173,1309r323,0v57,0,117,-5,183,-14v66,-9,111,-24,135,-43v53,-41,105,-92,157,-151v52,-59,93,-113,124,-160r70,0r-150,443r-1138,0r9,-35r1173,-1309r-313,0v-39,0,-71,1,-95,4v-24,3,-49,6,-73,10v-47,9,-106,46,-177,112v-71,66,-129,132,-174,200r-70,0r136,-401r1061,0","w":1232},"[":{"d":"928,-1519r-20,86r-355,0r-382,1656r355,0r-20,87r-533,0r422,-1829r533,0","w":768},"\\":{"d":"700,424r-130,0r-241,-1947r132,0","w":960},"]":{"d":"827,-1519r-422,1829r-533,0r20,-87r355,0r382,-1656r-355,0r20,-86r533,0","w":768},"^":{"d":"1175,-796r-145,0r-321,-524r-324,524r-145,0r412,-660r113,0"},"_":{"d":"1167,183r-23,96r-1327,0r23,-96r1327,0"},"`":{"d":"920,-1142r-40,32r-187,-154r-101,-83v-21,-19,-36,-35,-46,-49v-10,-14,-14,-32,-14,-54v0,-23,8,-44,24,-62v16,-18,37,-26,65,-26v26,0,47,7,62,20v15,13,32,36,51,68r78,130","w":1024},"a":{"d":"696,-132r-7,0v-15,12,-33,28,-53,46v-20,18,-44,35,-71,52v-26,17,-54,32,-85,44v-31,12,-64,18,-100,18v-97,0,-173,-35,-228,-104v-55,-69,-82,-164,-82,-284v0,-83,15,-163,46,-241v31,-78,73,-148,127,-210v51,-59,112,-107,183,-143v71,-36,143,-55,218,-55v47,0,93,6,136,19v43,13,76,27,101,43r183,-47r12,15r-152,645v-5,21,-10,46,-16,76v-6,30,-9,51,-9,65v0,38,8,64,24,77v16,13,43,20,81,20v13,0,31,-2,54,-6v23,-4,41,-8,54,-13r-15,64r-134,52v0,0,-65,16,-107,16v-48,0,-86,-14,-114,-42v-28,-28,-43,-64,-46,-107xm839,-764v0,-22,-2,-43,-7,-63v-5,-20,-14,-39,-29,-56v-13,-17,-32,-30,-55,-40v-23,-10,-53,-15,-88,-15v-49,0,-96,16,-142,48v-46,32,-87,75,-124,129v-35,51,-63,112,-85,184v-22,72,-33,145,-33,219v0,41,2,77,7,108v5,31,14,60,27,86v13,25,31,45,55,59v24,14,54,21,91,21v37,0,77,-11,118,-32v41,-21,87,-57,138,-110","w":1173},"b":{"d":"1064,-627v0,89,-16,174,-48,255v-32,81,-74,150,-127,209v-54,60,-115,107,-183,141v-68,34,-140,52,-216,52v-57,0,-108,-4,-152,-14v-44,-10,-80,-23,-111,-40v-31,-17,-57,-36,-78,-58v-21,-22,-39,-46,-56,-73r258,-1132v5,-23,5,-23,9,-39v2,-11,3,-23,3,-34v0,-24,-4,-43,-12,-56v-8,-13,-19,-22,-34,-29v-14,-6,-32,-10,-53,-12v-21,-2,-43,-4,-65,-7r14,-61r371,-23r10,15r-152,665r4,0v60,-53,112,-90,158,-110v46,-20,91,-31,134,-31v101,0,181,34,239,103v58,69,87,162,87,279xm858,-622v0,-35,-4,-70,-10,-106v-6,-36,-16,-66,-31,-90v-15,-25,-36,-45,-63,-60v-27,-15,-60,-22,-99,-22v-23,0,-45,4,-66,12v-21,8,-42,19,-64,32v-19,12,-39,27,-57,44r-50,45r-133,593v2,13,8,28,18,44v10,16,23,30,38,42v19,15,40,27,63,35v23,8,49,12,77,12v53,0,103,-16,149,-47v46,-31,86,-72,119,-125v37,-57,64,-121,82,-192v18,-71,27,-143,27,-217","w":1134},"c":{"d":"445,28v-117,0,-209,-34,-277,-102v-68,-68,-101,-165,-101,-290v0,-83,13,-164,39,-240v26,-76,61,-144,107,-203v46,-59,105,-107,175,-145v70,-38,148,-57,234,-57v95,0,168,21,218,61v50,40,74,91,74,152v0,46,-10,86,-32,121v-22,35,-55,52,-98,52v-36,0,-63,-9,-81,-27v-18,-18,-27,-38,-27,-60v0,-21,7,-51,22,-88r35,-89v-7,-18,-24,-31,-49,-39v-25,-8,-52,-13,-79,-13v-91,0,-169,53,-235,159v-66,106,-98,235,-98,388v0,95,22,170,64,226v42,56,99,83,171,83v65,0,123,-17,173,-52v50,-35,98,-84,144,-147r57,42v-46,73,-108,135,-187,188v-79,53,-162,80,-249,80","w":929},"d":{"d":"705,-137r-7,0r-57,49v-23,20,-48,39,-73,54v-32,20,-61,35,-88,46v-27,11,-61,16,-100,16v-97,0,-173,-34,-228,-104v-55,-70,-82,-165,-82,-285v0,-84,14,-165,44,-243v30,-78,71,-147,122,-208v50,-59,110,-106,180,-142v70,-36,144,-55,221,-55v46,0,92,6,137,18v45,12,83,27,112,44r78,-340v4,-18,6,-32,8,-42v2,-10,3,-21,3,-33v0,-24,-5,-42,-15,-55v-10,-13,-23,-22,-40,-28v-16,-6,-38,-10,-66,-12v-28,-2,-53,-4,-76,-7r14,-61r405,-23r10,15r-277,1199v-5,22,-10,48,-16,76v-6,28,-9,49,-9,64v0,38,8,64,24,78v16,14,43,20,81,20v13,0,31,-2,54,-6v23,-4,41,-8,54,-13r-15,64v-56,25,-102,43,-139,53v-37,10,-71,15,-102,15v-48,0,-86,-12,-114,-37v-28,-25,-43,-64,-43,-117xm846,-774v-1,-19,-6,-38,-15,-56v-9,-18,-20,-35,-33,-50v-15,-17,-36,-31,-60,-42v-24,-11,-53,-16,-86,-16v-51,0,-100,16,-146,48v-46,32,-85,75,-120,128v-33,51,-60,114,-80,186v-20,72,-30,144,-30,217v0,41,2,77,7,108v5,31,14,60,27,87v13,25,31,44,54,58v23,14,54,22,93,22v37,0,76,-11,119,-33v43,-22,91,-60,144,-115","w":1178},"e":{"d":"926,-801v0,71,-22,131,-66,182v-44,51,-109,91,-194,121v-62,23,-125,41,-188,55v-63,14,-133,26,-210,35v0,105,19,186,58,242v39,56,97,83,172,83v67,0,125,-17,176,-50v51,-33,102,-83,151,-149r57,42v-53,81,-120,146,-200,195v-80,49,-163,73,-249,73v-118,0,-209,-33,-271,-99v-62,-66,-93,-160,-93,-281v0,-84,13,-164,39,-240v26,-76,65,-147,116,-210v49,-62,110,-112,182,-150v72,-38,150,-57,237,-57v96,0,167,20,213,59v46,39,70,88,70,149xm742,-826v0,-26,-4,-47,-11,-62v-7,-15,-17,-26,-28,-33v-12,-8,-25,-13,-38,-15v-13,-2,-27,-3,-41,-3v-80,0,-154,44,-222,132v-68,88,-110,198,-128,329v47,-7,99,-16,158,-28v59,-12,107,-29,146,-49v55,-29,97,-66,124,-111v27,-45,40,-98,40,-160","w":966},"f":{"d":"495,-886r-176,826v-31,148,-97,269,-198,363v-101,94,-204,141,-311,141v-59,0,-102,-12,-130,-34v-28,-22,-41,-50,-41,-84v0,-29,9,-54,26,-76v17,-22,42,-33,75,-33v21,0,38,5,54,14v16,9,30,21,42,35v9,11,20,27,32,46r30,50v51,-4,96,-39,132,-104v36,-65,67,-159,94,-280r184,-864r-195,0r21,-91r193,0r14,-68v16,-77,41,-147,76,-209v35,-62,74,-115,118,-158v43,-43,92,-76,147,-100v55,-24,108,-37,159,-37v59,0,101,11,129,33v28,22,42,51,42,85v0,29,-8,54,-24,76v-16,22,-42,33,-77,33v-21,0,-39,-5,-54,-14v-15,-9,-29,-20,-41,-35v-13,-17,-24,-32,-32,-47v-8,-15,-18,-31,-30,-49v-46,2,-87,32,-122,91v-35,59,-67,156,-96,293r-22,106r251,0r-21,91r-249,0","w":673},"g":{"d":"709,-135r-7,-2r-56,45v-24,19,-50,36,-77,51v-31,18,-62,33,-93,44v-31,11,-66,17,-104,17v-97,0,-172,-34,-224,-102v-52,-68,-78,-163,-78,-283v0,-83,16,-163,46,-241v30,-78,71,-147,124,-208v51,-59,111,-106,182,-142v71,-36,145,-53,222,-53v48,0,93,7,136,19v43,12,77,26,103,43r183,-47r12,15r-168,788v-25,119,-58,221,-98,303v-40,82,-85,147,-137,195v-53,49,-113,84,-177,105v-64,21,-137,32,-218,32v-55,0,-101,-4,-136,-13v-35,-9,-62,-20,-82,-34v-20,-14,-33,-29,-40,-47v-7,-18,-11,-35,-11,-51v0,-30,9,-55,27,-75v18,-20,43,-31,74,-31v25,0,46,7,63,21v17,14,31,30,42,47v11,17,22,38,33,62r24,54r30,0v37,0,76,-8,118,-25v42,-17,80,-44,115,-81v35,-39,68,-90,99,-155v31,-65,55,-149,73,-251xm843,-774v0,-19,-3,-38,-9,-58v-6,-20,-16,-37,-31,-54v-15,-16,-33,-29,-56,-38v-23,-9,-52,-14,-87,-14v-51,0,-100,15,-146,46v-46,31,-86,74,-123,128v-34,51,-62,112,-83,184v-21,72,-32,144,-32,217v0,39,2,76,8,109v6,33,16,61,30,86v14,25,33,44,56,58v23,14,52,20,89,20v47,0,93,-13,139,-40v46,-27,90,-62,131,-104","w":1173},"h":{"d":"1094,-116r-15,64v-60,24,-107,41,-140,52v-33,11,-67,17,-101,17v-53,0,-93,-13,-120,-41v-27,-28,-40,-62,-40,-103v0,-15,1,-31,4,-49v3,-18,7,-38,13,-62r98,-373v7,-29,13,-55,17,-78v4,-23,7,-42,7,-56v0,-45,-11,-80,-32,-106v-21,-26,-53,-39,-95,-39v-43,0,-88,14,-138,41v-50,27,-97,66,-142,115r-169,734r-186,0r297,-1287v5,-23,4,-23,8,-39v2,-11,4,-22,4,-34v0,-24,-4,-43,-12,-56v-8,-13,-19,-22,-34,-29v-13,-6,-30,-10,-52,-12v-22,-2,-44,-4,-66,-7r14,-61r371,-23r10,15r-160,692r4,0v69,-55,130,-97,184,-125v54,-28,115,-43,184,-43v64,0,114,18,150,55v36,37,54,86,54,146v0,12,-1,33,-5,64v-4,31,-10,61,-18,91r-84,321v-5,21,-11,46,-17,74v-6,28,-9,49,-9,64v0,38,8,64,25,78v17,14,44,20,82,20v13,0,31,-2,55,-6v24,-4,41,-9,54,-14","w":1152},"i":{"d":"551,-109r-15,64v-61,25,-110,41,-147,51v-37,10,-68,15,-94,15v-53,0,-93,-13,-120,-41v-27,-28,-40,-62,-40,-103v0,-15,1,-31,4,-48v3,-17,7,-38,13,-63r106,-425v5,-23,11,-48,16,-75v5,-27,7,-49,7,-68v0,-37,-7,-62,-19,-74v-12,-12,-37,-19,-75,-19v-15,0,-35,2,-59,7v-24,5,-42,9,-55,12r15,-64v52,-23,99,-41,140,-52v41,-11,74,-17,98,-17v55,0,94,13,119,39v25,26,37,61,37,105v0,12,-1,28,-4,49v-3,21,-7,41,-12,62r-107,425v-7,26,-12,52,-17,77v-5,25,-8,45,-8,61v0,38,9,64,26,78v17,14,44,21,82,21v13,0,30,-2,54,-5v24,-3,42,-7,55,-12xm622,-1387v0,38,-12,71,-37,99v-25,28,-55,43,-92,43v-34,0,-63,-14,-88,-41v-25,-27,-37,-57,-37,-92v0,-37,12,-69,37,-96v25,-27,54,-41,88,-41v38,0,69,13,93,39v24,26,36,55,36,89","w":609},"j":{"d":"497,-865v0,13,-2,31,-5,52v-3,21,-6,41,-10,59r-70,341v-23,111,-49,229,-78,353v-35,148,-101,269,-198,363v-97,94,-201,141,-310,141v-59,0,-102,-12,-130,-34v-28,-22,-41,-50,-41,-84v0,-29,9,-54,26,-76v17,-22,42,-33,75,-33v21,0,38,5,54,14v16,9,30,21,42,35v9,11,20,27,32,46r30,50v47,-3,90,-36,128,-100v38,-64,70,-158,98,-284r72,-322v20,-92,41,-197,64,-315v5,-27,10,-53,14,-77v4,-24,6,-47,6,-66v0,-37,-6,-62,-18,-74v-12,-12,-38,-19,-76,-19v-17,0,-40,3,-66,9v-26,6,-45,10,-57,13r15,-64v52,-23,100,-41,144,-53v44,-12,78,-19,103,-19v55,0,94,13,119,39v25,26,37,61,37,105xm631,-1387v0,38,-12,71,-37,99v-25,28,-55,43,-92,43v-34,0,-63,-14,-88,-41v-25,-27,-37,-57,-37,-92v0,-37,12,-69,37,-96v25,-27,54,-41,88,-41v38,0,69,13,93,39v24,26,36,55,36,89","w":596},"k":{"d":"1071,-895v0,29,-12,56,-35,81v-23,25,-51,38,-85,38v-22,0,-44,-3,-65,-9v-21,-6,-45,-15,-70,-27v-37,21,-75,46,-114,76v-39,30,-81,68,-127,111v57,148,57,149,97,243v26,63,48,114,67,154v24,50,50,85,79,106v29,21,61,32,96,32v16,0,38,-3,66,-8v28,-5,50,-10,65,-15r-15,66v-62,25,-111,42,-146,51v-35,9,-71,13,-107,13v-43,0,-79,-11,-109,-35v-30,-24,-60,-67,-88,-129v-27,-59,-52,-117,-73,-175r-63,-164r-117,100r-86,386r-186,0r297,-1287v5,-21,8,-35,10,-43v2,-8,2,-18,2,-30v0,-24,-4,-43,-12,-56v-8,-13,-19,-22,-34,-29v-14,-6,-32,-10,-53,-12v-21,-2,-43,-4,-65,-7r14,-61r371,-23r10,15r-244,1041r4,0v75,-81,143,-152,205,-212r194,-182v48,-44,86,-74,114,-90v28,-16,58,-25,90,-25v34,0,61,10,82,29v21,19,31,44,31,77","w":1081},"l":{"d":"600,-1533r-279,1204v-6,25,-12,51,-17,76v-5,25,-8,46,-8,62v0,38,9,64,26,78v17,14,44,21,82,21v13,0,34,-2,60,-5v26,-3,46,-7,59,-12r-15,64v-60,24,-106,41,-138,51v-32,10,-69,15,-110,15v-53,0,-94,-13,-122,-41v-28,-28,-41,-62,-41,-103v0,-15,2,-31,5,-48v3,-17,7,-38,12,-63r243,-1053v5,-21,7,-35,9,-43v2,-8,3,-18,3,-30v0,-24,-4,-43,-12,-56v-8,-13,-19,-22,-34,-29v-14,-6,-32,-10,-53,-12v-21,-2,-43,-4,-65,-7r14,-61r371,-23","w":584},"m":{"d":"1743,-113r-15,64v-61,25,-110,41,-147,51v-37,10,-68,15,-94,15v-53,0,-93,-13,-120,-41v-27,-28,-40,-62,-40,-103v0,-15,1,-31,4,-49v3,-18,7,-38,13,-62r98,-373v7,-29,14,-55,18,-78v4,-23,6,-42,6,-56v0,-45,-10,-80,-29,-106v-19,-26,-50,-39,-92,-39v-45,0,-88,11,-131,32v-43,21,-92,60,-146,117r-174,741r-186,0r157,-668r9,-46v0,0,5,-29,5,-37v0,-43,-11,-77,-33,-102v-22,-25,-53,-37,-95,-37v-38,0,-80,9,-126,28v-46,19,-99,62,-160,128r-169,734r-186,0r149,-648v5,-23,10,-48,15,-75v5,-27,8,-49,8,-68v0,-39,-6,-65,-19,-77v-13,-12,-37,-18,-74,-18v-15,0,-34,3,-57,8v-23,5,-40,10,-53,13r15,-64v52,-23,98,-41,138,-52v40,-11,74,-17,103,-17v53,0,91,15,113,44v22,29,35,68,36,118r6,0v79,-62,143,-106,194,-133v51,-27,111,-40,181,-40v59,0,108,17,145,51v37,34,57,78,62,130r4,0v71,-59,134,-104,190,-135v56,-31,121,-46,195,-46v64,0,113,18,147,55v34,37,52,86,52,146v0,12,-2,33,-6,64v-4,31,-9,61,-17,91r-84,321v-6,21,-12,46,-17,74v-5,28,-8,49,-8,64v0,38,8,64,24,78v16,14,43,20,81,20v13,0,31,-2,55,-5v24,-3,42,-7,55,-12","w":1801},"n":{"d":"1149,-116r-15,64v-60,24,-107,41,-140,52v-33,11,-67,17,-101,17v-53,0,-93,-13,-120,-41v-27,-28,-40,-62,-40,-103v0,-15,1,-31,4,-49v3,-18,7,-38,13,-62r98,-373v7,-29,14,-55,18,-78v4,-23,6,-42,6,-56v0,-45,-11,-80,-32,-106v-21,-26,-53,-39,-95,-39v-41,0,-86,13,-137,40v-51,27,-98,65,-143,116r-169,734r-186,0r149,-648r15,-70v6,-30,9,-54,9,-73v0,-37,-6,-62,-19,-75v-13,-13,-38,-19,-76,-19v-15,0,-33,2,-56,7v-23,5,-40,10,-53,13r15,-64v52,-23,98,-41,138,-52v40,-11,74,-17,103,-17v53,0,90,14,113,43v23,29,35,68,36,119r6,0v73,-59,137,-102,190,-130v53,-28,114,-43,182,-43v64,0,114,18,150,55v36,37,54,86,54,146v0,12,-2,33,-6,64v-4,31,-9,61,-17,91r-84,321v-6,21,-11,46,-17,74v-6,28,-9,49,-9,64v0,38,8,64,25,78v17,14,44,20,82,20v13,0,30,-2,54,-6v24,-4,42,-9,55,-14","w":1208},"o":{"d":"1033,-616v0,79,-13,157,-40,236v-27,79,-65,148,-116,207v-51,61,-113,110,-185,147v-72,37,-157,56,-252,56v-111,0,-201,-36,-270,-107v-69,-71,-103,-167,-103,-288v0,-89,15,-171,44,-248v29,-77,69,-144,118,-202v50,-58,111,-105,185,-141v74,-36,154,-53,240,-53v119,0,211,37,278,109v67,72,101,167,101,284xm829,-654v0,-95,-17,-166,-51,-213v-34,-47,-82,-71,-145,-71v-55,0,-108,17,-157,51v-49,34,-91,89,-126,166v-27,58,-47,122,-60,193v-13,71,-19,137,-19,197v0,95,16,168,49,217v33,49,83,73,150,73v59,0,112,-19,158,-56v46,-37,83,-85,112,-142v29,-56,51,-121,66,-193v15,-72,23,-146,23,-222","w":1100},"p":{"d":"1114,-627v0,89,-16,174,-47,254v-31,80,-73,149,-125,208v-58,65,-120,113,-188,144v-68,31,-138,47,-209,47v-57,0,-104,-7,-141,-21v-37,-14,-69,-31,-98,-52r-58,262v-4,17,-8,32,-10,47v-2,15,-3,26,-3,35v0,18,6,32,19,43v13,11,28,18,45,23v17,5,35,9,56,12v21,3,39,5,56,6r-14,63r-551,0r14,-63v21,-1,41,-3,60,-5v19,-2,36,-5,53,-10v21,-6,37,-18,49,-34v12,-16,22,-36,27,-60r209,-920r15,-76v0,0,7,-48,7,-67v0,-37,-6,-62,-18,-75v-12,-13,-36,-19,-75,-19v-15,0,-33,3,-56,9v-34,8,-34,8,-53,13r15,-64v51,-23,96,-41,137,-53v41,-12,75,-18,104,-18v47,0,82,12,106,36v24,24,39,56,45,98r8,0v45,-42,93,-77,145,-104v52,-27,104,-41,155,-41v101,0,181,34,237,103v56,69,84,162,84,279xm802,-214v34,-55,60,-116,78,-186v18,-70,28,-144,28,-222v0,-35,-4,-70,-10,-106v-6,-36,-16,-66,-30,-89v-15,-26,-35,-47,-60,-61v-25,-14,-59,-21,-100,-21v-31,0,-65,9,-102,28v-37,19,-82,54,-135,105r-128,567v5,38,25,74,61,107v36,33,81,49,132,49v53,0,102,-15,148,-46v46,-31,85,-72,118,-125","w":1184},"q":{"d":"704,-139r-7,0v-17,14,-33,30,-51,47v-18,17,-43,35,-75,55v-27,18,-56,33,-88,46v-32,13,-66,19,-102,19v-97,0,-173,-35,-228,-104v-55,-69,-83,-164,-83,-284v0,-83,15,-163,46,-241v31,-78,74,-148,128,-210v52,-59,113,-107,184,-143v71,-36,144,-55,219,-55v47,0,93,6,137,19v44,13,79,27,104,43r179,-47r12,15r-271,1193v-4,17,-8,32,-10,47v-2,15,-3,27,-3,36v0,18,7,32,19,43v12,11,26,18,42,23v15,5,32,9,52,12v20,3,38,5,53,6r-14,63r-551,0r14,-63v21,-1,43,-3,65,-5v22,-2,41,-5,58,-10v21,-6,37,-18,49,-34v12,-16,22,-36,27,-60xm846,-764v0,-21,-3,-42,-8,-62v-5,-20,-15,-40,-30,-57v-14,-17,-32,-30,-56,-40v-24,-10,-54,-15,-89,-15v-49,0,-97,16,-143,48v-46,32,-87,75,-124,129v-36,53,-65,115,-87,185v-22,70,-33,143,-33,218v0,39,3,75,8,108v5,33,14,62,27,87v13,25,30,45,53,59v23,14,54,21,92,21v45,0,90,-13,133,-41v43,-28,88,-65,135,-111","w":1137},"r":{"d":"954,-846v0,19,-3,40,-8,62v-5,22,-13,40,-23,55v-12,18,-25,31,-39,41v-14,10,-35,15,-62,15v-36,0,-63,-9,-81,-27v-18,-18,-27,-38,-27,-60v0,-21,5,-44,15,-70r31,-76v-8,0,-22,2,-40,6v-18,4,-40,13,-66,26v-26,13,-55,32,-88,57v-33,25,-69,59,-106,101r-161,716r-186,0r146,-648r15,-72v6,-32,9,-56,9,-71v0,-37,-6,-62,-19,-75v-13,-13,-38,-19,-76,-19v-15,0,-33,2,-56,7v-23,5,-40,10,-53,13r15,-64v52,-23,98,-41,138,-52v40,-11,74,-17,103,-17v53,0,91,15,114,44v23,29,34,72,34,130r6,0v79,-69,140,-117,181,-144v41,-27,83,-41,128,-41v21,0,42,3,62,8v20,5,37,14,51,27v15,14,26,30,33,48v7,18,10,45,10,80","w":945},"s":{"d":"362,29v-99,0,-180,-18,-246,-53v-66,-35,-99,-80,-99,-137v0,-27,10,-52,29,-75v19,-23,43,-35,71,-35v27,0,49,7,65,19v16,12,29,26,38,43v10,17,18,38,26,62r20,59v10,11,24,22,42,32v18,10,43,14,76,14v72,0,127,-18,164,-54v37,-36,55,-85,55,-146v0,-45,-17,-81,-52,-108v-35,-27,-86,-52,-155,-75v-25,-8,-54,-21,-87,-37v-33,-16,-60,-33,-80,-52v-24,-21,-43,-47,-58,-76v-15,-29,-22,-64,-22,-104v0,-85,39,-160,115,-222v76,-62,170,-93,281,-93v26,0,54,1,84,4v30,3,63,10,99,22v31,11,58,26,80,47v22,21,33,49,33,82v0,27,-9,52,-27,74v-18,22,-43,34,-73,34v-25,0,-45,-5,-61,-16v-16,-11,-29,-25,-40,-43v-11,-18,-19,-37,-26,-58v-7,-21,-14,-41,-22,-61v-13,-5,-24,-9,-34,-11v-10,-2,-23,-3,-40,-3v-65,0,-114,17,-148,52v-34,35,-51,77,-51,125v0,47,15,81,45,105v30,24,81,49,151,74v91,33,156,70,197,112v41,42,62,94,62,156v0,101,-39,184,-117,248v-78,64,-176,95,-295,95","w":883},"t":{"d":"303,21v-63,0,-110,-13,-139,-39v-29,-26,-44,-62,-44,-110v0,-15,1,-30,3,-44v2,-14,5,-29,8,-46r155,-668r-178,0r21,-91r182,0r70,-293r180,0r-68,293r279,0r-21,91r-277,0r-128,551v-6,25,-11,49,-15,73v-4,24,-6,44,-6,61v0,37,9,64,27,81v18,17,52,25,100,25v17,0,42,-3,73,-7v31,-4,56,-9,73,-16r-17,73v-47,18,-91,34,-132,47v-41,13,-90,19,-146,19","w":711},"u":{"d":"707,-140r-6,0r-88,68v-28,21,-56,38,-83,52v-32,16,-61,27,-87,34v-26,7,-60,11,-102,11v-64,0,-114,-18,-149,-55v-35,-37,-53,-86,-53,-146v0,-16,1,-35,4,-57v3,-22,9,-55,19,-98r78,-317v7,-29,12,-55,16,-78v4,-23,7,-44,7,-65v0,-37,-7,-63,-19,-75v-12,-12,-37,-18,-75,-18v-15,0,-33,3,-56,8v-23,5,-40,10,-53,13r15,-64v52,-23,97,-41,137,-53v40,-12,72,-18,96,-18v53,0,93,13,118,38v25,25,37,60,37,106v0,12,-1,28,-4,49v-3,21,-7,41,-12,62r-89,370v-7,28,-12,55,-16,79v-4,24,-7,42,-7,55v0,45,10,80,29,106v19,26,50,39,92,39v43,0,87,-12,132,-34v45,-22,90,-56,135,-101r175,-753r174,-12r12,15r-149,644v-7,27,-13,55,-18,83v-5,28,-8,47,-8,58v0,38,9,64,25,78v16,14,43,20,81,20v13,0,31,-2,54,-6v23,-4,41,-8,54,-13r-15,64v-55,23,-101,40,-138,51v-37,11,-72,17,-103,17v-54,0,-95,-16,-121,-47v-26,-31,-39,-68,-39,-110","w":1178},"v":{"d":"1039,-824v0,101,-15,204,-46,308v-31,104,-73,196,-126,274v-54,81,-118,146,-193,196v-75,50,-157,76,-246,76v-87,0,-157,-24,-209,-72v-52,-48,-78,-114,-78,-195v0,-15,1,-33,5,-52r8,-39r87,-320v7,-26,12,-51,17,-76v5,-25,8,-47,8,-66v0,-37,-7,-62,-20,-75v-13,-13,-38,-19,-76,-19v-14,0,-33,3,-57,9r-54,14r15,-64v52,-23,98,-41,138,-54v40,-13,73,-19,97,-19v53,0,93,12,119,37v26,25,38,60,38,107v0,13,-2,29,-4,48v-2,19,-6,40,-12,63r-96,373v-7,25,-12,50,-15,73v-3,23,-5,38,-5,45v0,35,5,62,16,84v11,22,25,39,42,51v16,11,33,19,52,24v19,5,39,7,59,7v45,0,93,-14,141,-43v48,-29,90,-66,126,-112v39,-50,71,-105,95,-167v24,-62,36,-130,36,-205v0,-40,-6,-71,-17,-93v-11,-22,-23,-40,-36,-56v-13,-17,-25,-34,-36,-52v-11,-18,-17,-45,-17,-78v0,-38,13,-67,38,-87v25,-20,52,-30,80,-30v39,0,71,15,93,47v22,32,33,78,33,138","w":1102},"w":{"d":"1621,-824v0,105,-15,208,-45,311v-30,103,-71,193,-123,271v-58,87,-124,154,-197,201v-73,47,-153,71,-239,71v-63,0,-120,-17,-173,-52v-53,-35,-89,-82,-107,-143r-67,65v-20,20,-46,41,-79,62v-33,21,-62,38,-89,49v-27,11,-62,17,-104,17v-51,0,-93,-8,-126,-24v-33,-16,-59,-36,-79,-61v-19,-24,-32,-51,-40,-81v-8,-30,-12,-63,-12,-96v0,-13,2,-29,5,-48v3,-19,6,-36,9,-50r85,-316v8,-30,14,-57,18,-82v4,-25,5,-45,5,-61v0,-37,-7,-63,-19,-75v-12,-12,-37,-18,-75,-18v-15,0,-33,3,-56,8v-23,5,-40,10,-53,13r15,-64v52,-23,97,-41,137,-53v40,-12,72,-18,96,-18v53,0,93,13,118,38v25,25,37,60,37,106v0,12,-1,28,-4,49v-3,21,-7,41,-12,62r-93,369v-6,25,-11,50,-15,76v-4,26,-6,45,-6,58v0,50,10,88,30,114v20,26,54,38,101,38v42,0,86,-11,132,-34v46,-23,88,-57,126,-101r177,-759r174,-12r12,15r-141,609v-5,20,-9,45,-14,74v-5,29,-8,47,-8,54v0,37,6,66,18,87v12,21,26,37,44,47v17,10,35,16,54,18v19,2,37,4,54,4v45,0,92,-14,140,-43v48,-29,89,-66,124,-112v39,-51,70,-109,93,-171v23,-62,34,-129,34,-201v0,-40,-6,-71,-17,-93v-11,-22,-23,-40,-36,-56v-13,-17,-25,-34,-36,-52v-11,-18,-17,-45,-17,-78v0,-38,13,-67,38,-87v25,-20,52,-30,80,-30v39,0,71,15,93,47v22,32,33,78,33,138","w":1684},"x":{"d":"1069,-899v-1,39,-15,67,-43,85v-28,18,-57,28,-90,28v-20,0,-43,-3,-68,-10v-25,-7,-45,-13,-60,-18v-30,27,-64,66,-104,118v-40,52,-78,109,-113,172v16,63,30,117,43,162v13,45,26,91,41,136v13,41,32,74,59,98v27,24,63,36,107,36v16,0,38,-2,66,-6v28,-4,50,-10,65,-15r-18,66v-64,27,-112,44,-144,52v-32,8,-68,12,-105,12v-47,0,-85,-11,-115,-32v-30,-21,-55,-65,-74,-132v-13,-49,-24,-90,-32,-123v-12,-50,-13,-49,-25,-98r-76,118v-20,32,-53,76,-100,133v-41,49,-78,84,-112,105v-34,21,-69,31,-104,31v-31,0,-57,-9,-77,-27v-20,-18,-31,-44,-31,-77v0,-31,12,-59,36,-81v24,-22,57,-33,99,-33v21,0,42,3,62,11v20,8,42,15,64,22v25,-24,58,-61,100,-112v42,-51,81,-108,117,-173r-41,-156v-15,-57,-30,-106,-43,-149v-17,-54,-37,-89,-60,-104v-23,-15,-52,-23,-87,-23v-19,0,-40,3,-62,8v-22,5,-41,11,-60,16r19,-66v51,-21,98,-39,139,-53v41,-14,68,-20,83,-20v46,0,85,12,115,34v30,22,54,65,72,129v21,74,32,119,36,135v6,24,6,25,22,97v32,-49,58,-91,78,-125v20,-34,53,-79,98,-135v42,-53,80,-89,116,-109v36,-20,70,-29,103,-29v29,0,55,10,75,29v20,19,30,43,29,73","w":1026},"y":{"d":"717,-145r-6,0v-61,51,-120,92,-175,121v-55,29,-118,44,-189,44v-64,0,-115,-19,-152,-56v-37,-37,-56,-85,-56,-145v0,-16,1,-35,4,-57v3,-22,9,-55,19,-98r78,-312v7,-30,13,-56,17,-78v4,-22,6,-44,6,-65v0,-37,-7,-63,-19,-75v-12,-12,-37,-18,-75,-18v-15,0,-33,3,-56,8v-23,5,-40,10,-53,13r15,-64v52,-23,97,-41,137,-53v40,-12,72,-18,96,-18v53,0,92,12,118,36v26,24,39,60,39,108v0,12,-1,28,-4,49v-3,21,-7,41,-12,62r-91,365v-7,28,-12,54,-17,78v-5,24,-7,43,-7,56v0,45,10,80,32,106v22,26,54,39,96,39v49,0,96,-12,142,-36v46,-24,90,-57,131,-99r166,-748r173,-12r12,15r-172,783v-25,115,-58,213,-97,294v-39,81,-85,147,-138,197v-55,53,-115,91,-179,114v-64,23,-137,35,-219,35v-57,0,-102,-4,-135,-12v-33,-8,-60,-19,-79,-33v-19,-13,-32,-28,-39,-45v-7,-17,-10,-33,-10,-50v0,-29,9,-54,26,-76v17,-22,42,-33,75,-33v25,0,46,7,63,21v17,14,31,29,42,46v12,18,23,38,33,61r24,54r24,0v38,0,79,-9,121,-28v42,-19,81,-48,116,-87v38,-43,72,-98,102,-165v30,-67,55,-148,73,-242","w":1146},"z":{"d":"934,-979r-13,59r-714,841v24,1,50,1,78,1v28,0,59,1,92,1v26,0,53,0,82,-1v29,-1,65,-3,109,-5v27,-1,49,-11,66,-28v17,-17,31,-37,42,-58v10,-17,24,-44,43,-81v19,-37,34,-70,46,-98r60,0r-68,348r-784,0r16,-70r703,-830r-131,0v-58,0,-104,1,-137,3v-33,2,-65,9,-94,20v-22,8,-45,31,-68,69v-23,38,-45,82,-66,132r-61,0r59,-303r740,0","w":909},"{":{"d":"689,-1463v41,-25,90,-43,149,-55v59,-12,128,-19,207,-19r-19,77v-29,1,-61,4,-95,10v-34,6,-64,16,-90,29v-30,15,-55,37,-75,67v-20,30,-37,69,-48,116r-51,224v-17,72,-39,132,-67,178v-28,46,-61,83,-100,111v-37,27,-77,48,-122,63v-45,15,-94,28,-147,37r-7,31v38,7,74,18,108,30v34,12,63,27,85,44v25,20,45,44,58,72v13,28,20,65,20,112v0,32,-4,70,-13,114v-9,44,-18,84,-27,118v-10,37,-19,76,-28,117v-9,41,-13,73,-13,98v0,32,7,57,20,76v13,19,29,33,49,42v20,9,42,16,67,20v25,4,52,7,82,9r-19,75v-135,0,-231,-19,-289,-59v-58,-40,-87,-101,-87,-184v0,-34,5,-71,15,-110v10,-39,20,-82,33,-128v10,-36,20,-76,31,-120v11,-44,17,-79,17,-103v0,-55,-20,-97,-59,-126v-39,-29,-107,-46,-202,-52r30,-125v46,-4,90,-10,134,-20v44,-10,80,-24,108,-43v31,-20,58,-45,79,-75v21,-30,37,-71,48,-120v9,-39,16,-82,22,-128v6,-46,12,-84,17,-117v13,-73,34,-132,65,-177v31,-45,69,-82,114,-109","w":881},"|":{"d":"475,424r-127,0r0,-1947r127,0r0,1947","w":768},"}":{"d":"838,-655r-30,125v-115,9,-201,33,-257,73v-56,40,-93,102,-112,185v-8,33,-15,73,-21,121v-6,48,-12,89,-18,124v-13,72,-34,131,-64,177v-30,46,-68,83,-115,110v-48,27,-101,46,-160,57v-59,11,-124,16,-196,16r19,-77v27,-2,59,-6,96,-12v37,-6,66,-14,89,-27v29,-16,54,-38,75,-67v21,-29,37,-68,48,-116r51,-224v17,-74,39,-133,67,-178v28,-45,62,-82,100,-111v36,-27,78,-48,126,-63v48,-15,95,-27,143,-37r7,-31v-38,-8,-74,-18,-108,-30v-34,-12,-62,-26,-85,-44v-25,-20,-45,-44,-58,-72v-13,-28,-20,-65,-20,-112v0,-35,5,-74,15,-118v10,-44,18,-82,26,-114v17,-72,16,-72,28,-120v8,-32,12,-64,12,-95v0,-31,-6,-56,-19,-75v-13,-19,-29,-33,-50,-43v-21,-10,-44,-17,-70,-21v-26,-4,-52,-6,-79,-8r19,-75v134,0,231,20,289,59v58,39,87,100,87,184v0,33,-6,72,-17,118v-11,46,-21,86,-31,120v-11,35,-21,75,-32,120v-11,45,-16,80,-16,103v0,57,19,99,59,127v40,28,107,44,202,51","w":881},"~":{"d":"1212,-714v-9,25,-24,55,-46,92v-22,37,-46,69,-73,96v-33,33,-67,59,-103,78v-36,19,-76,28,-119,28v-48,0,-92,-8,-132,-22v-40,-14,-77,-29,-110,-46v-34,-17,-68,-33,-101,-47v-33,-14,-66,-21,-99,-21v-46,0,-85,16,-115,50v-30,34,-57,76,-81,126r-78,-31v9,-25,25,-56,47,-92v22,-36,46,-68,73,-96v26,-28,59,-53,99,-74v40,-21,81,-32,122,-32v49,0,94,7,134,21v40,14,76,30,110,47v54,27,54,27,98,47v30,14,63,21,100,21v47,0,87,-18,118,-53v31,-35,57,-76,78,-123"}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 2006 Microsoft Corporation. All Rights Reserved.
 * 
 * Trademark:
 * Georgia is either a registered trademark or a trademark of Microsoft
 * Corporation in the United States and/or other countries.
 * 
 * Manufacturer:
 * Carter & Cone
 * 
 * Designer:
 * Matthew Carter
 * 
 * License information:
 * http://www.microsoft.com/typography/fonts/
 */
Cufon.registerFont({"w":1440,"face":{"font-family":"Georgia","font-weight":700,"font-style":"italic","font-stretch":"normal","units-per-em":"2048","panose-1":"2 4 8 2 5 4 5 9 2 3","ascent":"1638","descent":"-410","x-height":"27","bbox":"-435 -1552 2549 444","underline-thickness":"120","underline-position":"-121","slope":"-13","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":520},"\u00a0":{"w":520},"!":{"d":"697,-1106r-119,261v-51,113,-103,241,-158,383r-77,0v8,-170,11,-307,11,-412r0,-227v0,-39,1,-70,2,-93v1,-23,5,-46,10,-70v14,-61,44,-106,89,-137v45,-31,94,-46,146,-46v45,0,83,14,113,41v30,27,44,61,44,102v0,21,-5,47,-14,78v-9,31,-24,71,-47,120xm509,-156v0,51,-19,94,-57,130v-38,36,-84,55,-135,55v-52,0,-97,-19,-135,-55v-38,-36,-58,-79,-58,-130v0,-51,20,-95,58,-132v38,-37,83,-55,135,-55v51,0,97,18,135,55v38,37,57,81,57,132","w":771},"\"":{"d":"588,-1219r-92,176v-35,66,-69,139,-104,220r-67,0v0,-123,-2,-223,-5,-299v-3,-76,-5,-140,-5,-192v0,-59,18,-110,55,-152v37,-42,85,-63,144,-63v44,0,78,11,104,35v26,24,39,53,39,87v0,20,-6,45,-17,74v-11,29,-29,67,-52,114xm1061,-1219r-92,176v-35,66,-69,139,-104,220r-67,0v0,-123,-2,-223,-5,-299v-3,-76,-5,-140,-5,-192v0,-59,19,-110,56,-152v37,-42,84,-63,143,-63v44,0,79,11,105,35v26,24,38,53,38,87v0,20,-5,45,-16,74v-11,29,-29,67,-53,114","w":1044},"#":{"d":"1335,-748r-269,0r-100,257r273,0r0,160r-335,0r-130,331r-149,0r130,-331r-230,0r-130,331r-149,0r130,-331r-207,0r0,-160r269,0r101,-257r-274,0r0,-160r336,0r134,-341r149,0r-134,341r230,0r134,-341r149,0r-134,341r206,0r0,160xm920,-750r-233,0r-101,261r232,0"},"$":{"d":"677,-816r90,-407v-97,8,-170,32,-220,73v-50,41,-75,91,-75,151v0,52,17,94,51,125v34,31,85,50,154,58xm936,-312v0,-58,-20,-104,-59,-138v-39,-34,-95,-54,-168,-61r-98,446v106,-10,187,-36,242,-79v55,-43,83,-99,83,-168xm512,-65r100,-456v-122,-15,-219,-52,-290,-109v-71,-57,-107,-130,-107,-221v0,-51,10,-100,31,-148v21,-48,56,-95,105,-142v45,-43,104,-79,179,-110v75,-31,160,-49,255,-55r49,-218r99,0r-49,218v129,6,228,34,296,82v68,48,102,113,102,194v0,46,-14,84,-42,116v-28,32,-65,48,-112,48v-51,0,-90,-15,-119,-44v-29,-29,-43,-65,-43,-110v0,-33,5,-64,16,-94v11,-30,19,-54,25,-73v-18,-9,-38,-17,-61,-23v-23,-6,-49,-11,-80,-13r-92,417v135,21,238,60,310,118v72,58,108,135,108,230v0,74,-17,140,-50,197v-33,57,-77,105,-131,143v-57,41,-121,72,-193,94v-72,22,-148,37,-225,42r-62,281r-99,0r62,-281v-136,-3,-244,-35,-324,-96v-80,-61,-120,-133,-120,-216v0,-48,14,-88,41,-120v27,-32,67,-48,119,-48v53,0,94,15,124,44v30,29,46,68,46,115v0,33,-5,66,-16,99v-11,33,-21,60,-28,79v33,21,63,35,92,45v29,10,57,15,84,15","w":1312},"%":{"d":"985,-1145v0,120,-45,223,-134,307v-89,84,-197,126,-324,126v-99,0,-181,-29,-244,-87v-63,-58,-95,-134,-95,-228v0,-121,46,-223,136,-307v90,-84,197,-126,322,-126v100,0,181,29,244,87v63,58,95,134,95,228xm730,-1219v0,-55,-7,-97,-22,-126v-15,-29,-40,-44,-75,-44v-56,0,-102,42,-137,127v-35,85,-53,190,-53,315v0,52,8,92,23,121v15,29,41,43,76,43v54,0,98,-42,134,-125v36,-83,54,-186,54,-311xm1692,-398v0,120,-45,222,-134,306v-89,84,-197,127,-324,127v-99,0,-181,-29,-244,-87v-63,-58,-95,-134,-95,-228v0,-121,45,-224,135,-308v90,-84,198,-125,323,-125v100,0,182,29,245,87v63,58,94,134,94,228xm1437,-472v0,-55,-7,-97,-22,-126v-15,-29,-40,-44,-75,-44v-56,0,-102,43,-137,128v-35,85,-53,189,-53,314v0,52,8,92,23,121v15,29,41,43,76,43v54,0,99,-41,135,-124v36,-83,53,-187,53,-312xm1745,-1428r-1453,1428r-155,0r1450,-1428r158,0","w":1801},"&":{"d":"1528,0r-586,0r-44,-66v-15,-23,-32,-51,-50,-82v-93,71,-174,120,-242,145v-68,25,-141,38,-220,38v-112,0,-202,-28,-270,-84v-68,-56,-102,-130,-102,-223v0,-59,10,-112,31,-160v21,-48,51,-93,92,-135v38,-39,87,-75,147,-109v60,-34,126,-65,195,-92v-33,-57,-58,-108,-73,-152v-15,-44,-23,-87,-23,-127v0,-118,46,-215,139,-293v93,-78,206,-117,337,-117v95,0,171,20,229,61v58,41,88,97,88,170v0,77,-28,148,-85,212v-57,64,-145,127,-265,188v49,87,92,161,129,220r113,178v59,-63,108,-128,148,-194v40,-66,60,-109,60,-132v0,-17,-14,-31,-42,-42v-28,-11,-67,-22,-115,-32r16,-71r559,0r-16,71v-64,6,-110,14,-140,24v-30,10,-61,28,-93,55v-18,15,-40,38,-65,69r-71,89r-91,113v-38,47,-74,86,-107,119v48,74,87,127,115,159v28,32,53,55,75,69v25,15,62,27,109,37v47,10,92,16,135,19xm1015,-1218v0,-44,-13,-78,-37,-104v-24,-26,-56,-39,-97,-39v-49,0,-92,17,-129,51v-37,34,-56,80,-56,139v0,38,8,77,24,119v16,42,39,95,72,159v73,-43,128,-94,166,-153v38,-59,57,-116,57,-172xm809,-213r-156,-255r-141,-235v-55,44,-96,94,-123,149v-27,55,-40,111,-40,168v0,72,22,130,67,176v45,46,104,69,179,69v41,0,77,-5,107,-15v30,-10,65,-28,107,-57","w":1637},"'":{"d":"578,-1219r-92,176v-35,66,-69,139,-104,220r-67,0v0,-123,-2,-223,-5,-299v-3,-76,-5,-140,-5,-192v0,-59,18,-110,55,-152v37,-42,85,-63,144,-63v44,0,78,11,104,35v26,24,39,53,39,87v0,20,-6,45,-17,74v-11,29,-28,67,-52,114","w":551},"(":{"d":"667,328v-74,-10,-146,-31,-215,-62v-69,-31,-131,-75,-185,-131v-53,-55,-95,-123,-127,-203v-32,-80,-48,-172,-48,-278v0,-167,29,-322,86,-467v57,-145,136,-270,238,-377v93,-98,198,-176,316,-234v118,-58,229,-94,335,-108r-20,90v-84,15,-165,59,-245,132v-80,73,-150,169,-209,286v-56,111,-100,236,-131,374v-31,138,-47,276,-47,415v0,131,22,239,66,323v44,84,113,134,206,152","w":915},")":{"d":"275,-1532v74,10,146,31,215,62v69,31,131,75,185,131v53,55,95,123,127,203v32,80,48,172,48,278v0,167,-29,322,-86,467v-57,145,-136,270,-238,377v-93,97,-199,176,-316,234v-117,58,-229,94,-335,108r20,-90v84,-15,165,-59,245,-132v80,-73,150,-169,209,-286v56,-111,100,-236,131,-374v31,-138,47,-276,47,-415v0,-131,-22,-239,-66,-323v-44,-84,-113,-134,-206,-152","w":915},"*":{"d":"1037,-1083v0,30,-8,51,-25,65v-17,14,-39,21,-65,21v-17,0,-51,-7,-103,-22v-52,-15,-108,-26,-167,-33v39,51,81,98,128,143v47,45,70,83,70,114v0,22,-10,41,-29,57v-19,16,-40,25,-61,25v-15,0,-28,-5,-41,-13v-13,-8,-24,-20,-33,-35v-9,-15,-20,-48,-33,-100v-13,-52,-31,-105,-54,-160v-22,52,-40,106,-54,161v-14,55,-26,88,-33,99v-11,17,-22,29,-33,37v-11,8,-24,11,-41,11v-22,0,-42,-7,-61,-23v-19,-16,-29,-36,-29,-59v0,-31,23,-69,70,-114v47,-45,89,-92,128,-143v-56,7,-111,17,-165,32v-54,15,-89,23,-105,23v-26,0,-48,-7,-65,-21v-17,-14,-25,-35,-25,-65v0,-27,8,-48,25,-63v17,-15,39,-23,65,-23v21,0,53,7,99,21v46,14,103,24,171,32v-44,-56,-88,-106,-132,-148v-44,-42,-66,-78,-66,-109v0,-22,10,-41,29,-57v19,-16,40,-25,61,-25v15,0,29,4,41,12v12,8,24,20,33,35v9,15,19,48,33,101v14,53,32,106,54,160v22,-55,40,-108,54,-161v14,-53,25,-87,33,-100v8,-14,18,-25,31,-34v13,-9,28,-13,43,-13v22,0,42,7,61,23v19,16,29,36,29,59v0,31,-21,66,-63,107v-42,41,-86,91,-134,150v67,-9,124,-20,172,-33v48,-13,80,-20,97,-20v26,0,48,8,65,23v17,15,25,36,25,63","w":987},"+":{"d":"1275,-493r-473,0r0,473r-165,0r0,-473r-473,0r0,-163r473,0r0,-473r165,0r0,473r473,0r0,163"},",":{"d":"511,-132v0,103,-42,204,-127,300v-85,96,-188,170,-309,221r-32,-71v41,-20,75,-38,104,-55v29,-17,59,-40,90,-71v27,-25,51,-53,71,-84v20,-31,35,-67,46,-108r-59,0v-62,0,-108,-12,-137,-37v-29,-25,-44,-59,-44,-102v0,-52,20,-98,62,-139v42,-41,90,-62,145,-62v65,0,113,19,144,58v31,39,46,89,46,150","w":672},"-":{"d":"671,-435r-606,0r50,-219r606,0","w":776},"\u00ad":{"d":"671,-435r-606,0r50,-219r606,0","w":776},".":{"d":"504,-166v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-19,-139,-57v-39,-38,-59,-85,-59,-138v0,-53,20,-99,59,-138v39,-39,85,-59,139,-59v53,0,100,20,139,59v39,39,58,85,58,138","w":672},"\/":{"d":"1068,-1523r-1034,1947r-183,0r1032,-1947r185,0","w":966},"0":{"d":"1256,-973v41,40,72,87,93,139v21,52,31,108,31,168v0,100,-21,194,-62,281v-41,87,-95,161,-163,222v-71,63,-151,111,-241,145v-90,34,-189,52,-294,52v-86,0,-162,-12,-227,-36v-65,-24,-119,-55,-162,-94v-43,-39,-75,-85,-97,-138v-22,-53,-33,-110,-33,-172v0,-93,17,-180,51,-262v34,-82,85,-157,152,-224v65,-65,145,-117,240,-157v95,-40,201,-60,317,-60v90,0,167,12,233,37v66,25,120,58,162,99xm916,-286v33,-71,58,-149,76,-232v18,-83,27,-170,27,-261v0,-38,-3,-71,-9,-99v-6,-28,-17,-53,-32,-76v-14,-22,-32,-39,-54,-52v-22,-13,-49,-20,-80,-20v-53,0,-104,20,-151,60v-47,40,-91,102,-132,189v-33,70,-57,147,-74,230v-17,83,-25,166,-25,247v0,42,3,76,9,103v6,27,16,52,31,76v13,22,31,40,54,53v23,13,50,20,82,20v56,0,108,-22,156,-65v48,-43,89,-101,122,-173","w":1436},"1":{"d":"822,0r-825,0r16,-72v21,-1,53,-5,98,-10v45,-5,76,-11,93,-16v19,-6,38,-17,54,-34v16,-17,27,-39,33,-66r149,-642r-253,0r21,-91r28,0v59,0,112,-6,160,-19v48,-13,90,-28,125,-46v36,-18,67,-37,94,-58v27,-21,46,-39,59,-53r176,0r-42,154v-14,53,-27,104,-38,154r-133,572v-2,8,-3,17,-5,28v-2,11,-3,19,-3,26v0,16,4,29,11,40v7,11,16,20,29,27v15,8,41,15,80,22v39,7,68,11,89,12","w":1003},"2":{"d":"347,-1014v43,-29,98,-52,163,-69v65,-17,137,-26,215,-26v153,0,273,27,363,79v90,52,135,130,135,233v0,64,-15,118,-43,162v-28,44,-71,82,-130,113v-51,27,-115,52,-192,74v-77,22,-166,43,-268,64v-57,12,-111,26,-162,43v-51,17,-98,35,-141,55r-4,16r847,0r-62,270r-1084,0r45,-200v24,-19,51,-38,81,-57r92,-56v43,-25,87,-48,132,-69r119,-55v86,-38,153,-70,199,-95v46,-25,83,-52,111,-81v33,-33,55,-68,67,-103v12,-35,17,-73,17,-113v0,-61,-16,-108,-49,-139v-33,-31,-77,-47,-132,-47v-39,0,-70,4,-94,11v-24,7,-47,15,-67,23r29,85v10,31,15,63,15,98v0,47,-16,87,-49,118v-33,31,-75,46,-128,46v-50,0,-90,-16,-120,-49v-30,-33,-44,-72,-44,-119v0,-37,12,-74,36,-111v24,-37,58,-71,103,-101","w":1283},"3":{"d":"768,-1109v95,0,172,9,232,29v60,20,106,44,139,73v33,29,56,60,69,95v13,35,20,67,20,98v0,34,-8,71,-24,110v-16,39,-40,76,-74,111v-34,35,-78,67,-134,96v-56,29,-125,52,-206,68r-4,16v43,1,85,7,126,19v41,12,77,28,107,48v33,22,59,51,80,87v21,36,31,80,31,131v0,73,-20,141,-58,203v-38,62,-90,115,-157,158v-71,46,-147,81,-227,103v-80,22,-172,33,-276,33v-135,0,-245,-29,-328,-86v-83,-57,-124,-128,-124,-213v0,-47,16,-87,46,-120v30,-33,70,-49,121,-49v53,0,95,15,127,45v32,30,49,69,49,116v0,34,-6,68,-17,102v-11,34,-20,60,-28,80v15,9,34,16,55,23v21,7,47,10,76,10v45,0,88,-9,131,-28v43,-19,81,-46,114,-81v36,-39,64,-85,84,-136v20,-51,30,-117,30,-198v0,-52,-14,-95,-42,-130v-28,-35,-80,-52,-158,-52r-127,0r28,-117r90,0v97,0,174,-33,232,-99v58,-66,87,-159,87,-276v0,-53,-14,-96,-42,-128v-28,-32,-72,-47,-133,-47v-29,0,-60,4,-93,13v-33,9,-60,19,-81,30r26,84v10,34,15,65,15,94v0,47,-16,86,-47,116v-31,30,-73,44,-126,44v-50,0,-89,-16,-119,-49v-30,-33,-45,-72,-45,-119v0,-77,54,-148,161,-212v107,-64,238,-95,394,-95","w":1279},"4":{"d":"1197,-10r-222,0r-88,379r-329,0r88,-379r-668,0r44,-194r918,-899r287,0r-205,886r222,0xm693,-217r150,-643r-656,643r506,0","w":1330},"5":{"d":"431,369v-132,0,-243,-29,-333,-87v-90,-58,-136,-127,-136,-207v0,-47,16,-87,46,-120v30,-33,70,-49,121,-49v53,0,95,14,127,44v32,30,49,69,49,116v0,33,-6,69,-17,106v-11,37,-21,66,-28,87v11,3,30,7,57,11v27,4,53,7,79,7v34,0,71,-11,111,-33v40,-22,76,-52,109,-93v35,-44,64,-93,85,-148v21,-55,32,-122,32,-203v0,-75,-19,-136,-57,-180v-38,-44,-92,-66,-161,-66v-34,0,-65,4,-91,13v-26,9,-51,20,-76,34v-25,15,-47,29,-65,43v-18,14,-37,31,-57,52r-74,-27r256,-746r845,0r-63,275r-764,0r-109,337v62,-37,119,-63,170,-79v51,-16,107,-23,168,-23v54,0,106,6,156,17v50,11,98,31,145,62v45,30,82,68,109,115v27,47,41,103,41,169v0,161,-66,296,-198,407v-132,111,-292,166,-477,166","w":1227},"6":{"d":"595,35v-149,0,-268,-42,-357,-127v-89,-85,-134,-197,-134,-337v0,-267,100,-496,300,-687v200,-191,464,-305,792,-342r5,99r-109,18v-84,22,-158,53,-220,92v-62,39,-115,83,-158,130v-43,47,-79,99,-108,156v-29,57,-54,118,-77,181v45,-37,98,-69,160,-94v62,-25,136,-38,222,-38v100,0,183,33,251,100v68,67,102,153,102,260v0,159,-65,297,-194,414v-129,117,-287,175,-475,175xm892,-550v0,-70,-16,-125,-48,-166v-32,-41,-73,-61,-122,-61v-39,0,-77,8,-112,23v-35,15,-72,44,-111,89v-5,21,-13,60,-25,119v-12,59,-18,132,-18,218v0,88,15,157,44,206v29,49,67,74,115,74v75,0,140,-48,195,-146v55,-98,82,-217,82,-356","w":1327},"7":{"d":"1259,-948r-1022,1317r-170,0r947,-1177r-454,0v-54,0,-98,1,-134,2v-36,1,-68,7,-96,19v-21,9,-43,30,-66,63v-23,33,-46,80,-71,140r-73,0r114,-493r1055,0","w":1160},"8":{"d":"1363,-1156v0,88,-33,163,-98,224v-65,61,-156,109,-272,142v104,40,181,88,231,146v50,58,74,122,74,192v0,138,-66,254,-197,348v-131,94,-300,141,-505,141v-155,0,-278,-30,-370,-91v-92,-61,-138,-142,-138,-241v0,-96,34,-177,101,-245v67,-68,170,-118,308,-149v-81,-39,-139,-88,-175,-146v-36,-58,-54,-119,-54,-182v0,-63,17,-121,50,-175v33,-54,79,-102,138,-143v55,-38,124,-68,204,-91v80,-23,161,-34,244,-34v140,0,251,28,334,86v83,58,125,131,125,218xm1032,-1174v0,-59,-14,-107,-42,-145v-28,-38,-69,-57,-122,-57v-69,0,-129,26,-178,78v-49,52,-73,115,-73,187v0,35,8,66,24,91v16,25,38,48,65,68v23,17,56,36,100,60r121,66v29,-45,53,-99,74,-164v21,-65,31,-126,31,-184xm945,-338v0,-39,-10,-71,-30,-98v-20,-27,-47,-52,-81,-74v-36,-23,-79,-47,-128,-70v-49,-23,-97,-48,-144,-73v-32,32,-63,82,-93,149v-30,67,-45,137,-45,212v0,75,20,134,59,178v39,44,92,66,159,66v91,0,164,-29,220,-86v56,-57,83,-125,83,-204","w":1385},"9":{"d":"1274,-641v0,267,-99,493,-297,676v-198,183,-464,297,-798,340r-6,-99r110,-18v85,-23,159,-53,221,-90v62,-37,116,-80,160,-128v43,-47,80,-100,112,-158v32,-58,58,-117,77,-174v-65,49,-128,84,-188,103v-60,19,-125,29,-196,29v-101,0,-185,-35,-253,-106v-68,-71,-102,-161,-102,-268v0,-157,65,-292,194,-405v129,-113,286,-170,473,-170v150,0,270,43,359,128v89,85,134,199,134,340xm923,-746v0,-87,-14,-156,-43,-205v-29,-49,-67,-74,-112,-74v-75,0,-141,47,-197,142v-56,95,-84,211,-84,350v0,72,15,130,45,173v30,43,71,65,120,65v38,0,77,-9,116,-25v39,-16,77,-45,112,-86r25,-116v12,-56,18,-131,18,-224","w":1327},":":{"d":"674,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138xm534,-166v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-19,-139,-57v-39,-38,-59,-85,-59,-138v0,-53,20,-99,59,-138v39,-39,85,-59,139,-59v53,0,100,20,139,59v39,39,58,85,58,138","w":752},";":{"d":"541,-132v0,103,-42,204,-127,300v-85,96,-188,170,-309,221r-32,-71v41,-20,75,-38,104,-55v29,-17,59,-40,90,-71v27,-25,51,-53,71,-84v20,-31,35,-67,46,-108r-59,0v-62,0,-108,-12,-137,-37v-29,-25,-44,-59,-44,-102v0,-52,20,-98,62,-139v42,-41,90,-62,145,-62v65,0,113,19,144,58v31,39,46,89,46,150xm674,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138","w":752},"\u037e":{"d":"541,-132v0,103,-42,204,-127,300v-85,96,-188,170,-309,221r-32,-71v41,-20,75,-38,104,-55v29,-17,59,-40,90,-71v27,-25,51,-53,71,-84v20,-31,35,-67,46,-108r-59,0v-62,0,-108,-12,-137,-37v-29,-25,-44,-59,-44,-102v0,-52,20,-98,62,-139v42,-41,90,-62,145,-62v65,0,113,19,144,58v31,39,46,89,46,150xm674,-799v0,53,-19,98,-58,137v-39,39,-86,58,-139,58v-54,0,-100,-20,-139,-58v-39,-38,-59,-84,-59,-137v0,-53,20,-100,59,-139v39,-39,85,-58,139,-58v53,0,100,20,139,59v39,39,58,85,58,138","w":752},"<":{"d":"1231,-6r-1000,-500r0,-139r1000,-500r0,188r-786,382r786,381r0,188"},"=":{"d":"1277,-700r-1070,0r0,-163r1070,0r0,163xm1277,-286r-1070,0r0,-163r1070,0r0,163"},">":{"d":"1253,-506r-1000,500r0,-188r786,-381r-786,-382r0,-188r1000,500r0,139"},"?":{"d":"597,-156v0,51,-19,94,-57,130v-38,36,-84,55,-135,55v-52,0,-97,-19,-135,-55v-38,-36,-58,-79,-58,-130v0,-51,20,-95,58,-132v38,-37,83,-55,135,-55v51,0,97,18,135,55v38,37,57,81,57,132xm720,-1452v123,0,226,33,308,98v82,65,124,151,124,260v0,149,-57,271,-172,365v-115,94,-267,148,-456,161r-29,136r-86,0r77,-389v117,-9,211,-42,282,-99v71,-57,107,-138,107,-244v0,-65,-17,-115,-51,-150v-34,-35,-83,-53,-144,-53v-25,0,-50,4,-73,11v-23,7,-46,18,-69,32v7,21,13,47,20,76v7,29,11,57,11,82v0,47,-16,84,-47,112v-31,28,-72,42,-125,42v-48,0,-87,-14,-116,-43v-29,-29,-44,-65,-44,-109v0,-80,47,-148,141,-204v94,-56,209,-84,342,-84","w":1123},"@":{"d":"1678,-1173v57,61,100,132,129,211v29,79,43,160,43,245v0,168,-47,310,-142,427v-95,117,-214,175,-355,175v-73,0,-134,-12,-181,-37v-47,-25,-78,-57,-91,-96r-5,0r-48,50v-17,17,-36,32,-55,43v-21,12,-41,21,-60,27v-19,6,-44,8,-75,8v-82,0,-146,-26,-192,-78v-46,-52,-68,-119,-68,-204v0,-64,13,-130,40,-198v27,-68,64,-129,111,-185v45,-54,99,-98,163,-133v64,-35,131,-53,200,-53v46,0,80,9,104,25v24,16,42,41,53,74r2,0r32,-87r257,0r-201,555v-5,13,-9,32,-14,56v-5,24,-7,42,-7,55v0,27,6,49,18,65v12,16,31,23,57,23v105,0,189,-49,252,-145v63,-96,95,-222,95,-378v0,-78,-13,-150,-39,-216v-26,-66,-65,-124,-116,-173v-51,-49,-116,-89,-193,-117v-77,-28,-166,-42,-265,-42v-95,0,-188,18,-277,54v-89,36,-169,88,-242,157v-71,68,-128,151,-172,248v-44,97,-66,206,-66,327v0,118,17,222,52,312v35,90,82,164,143,224v61,61,133,106,216,137v83,31,174,46,274,46v114,0,215,-15,303,-45v88,-30,167,-71,236,-125r39,62v-76,61,-162,110,-257,147v-95,37,-204,55,-328,55v-105,0,-210,-17,-316,-51v-106,-34,-199,-84,-280,-149v-82,-66,-148,-149,-198,-250v-50,-101,-76,-217,-76,-350v0,-117,23,-229,68,-337v45,-108,110,-203,193,-287v82,-83,183,-149,303,-200v120,-51,252,-76,394,-76v125,0,233,18,322,55v89,37,162,87,220,149xm1209,-760v-1,-37,-9,-67,-27,-90v-18,-23,-44,-35,-79,-35v-33,0,-66,15,-97,45v-31,30,-58,69,-83,118v-25,48,-44,102,-58,164v-14,62,-21,123,-21,182v0,45,7,80,20,104v13,24,33,36,62,36v25,0,48,-7,68,-20v20,-13,41,-34,62,-63","w":1980},"A":{"d":"892,-571r-87,-517r-324,517r411,0xm732,0r17,-73v69,-5,123,-13,161,-25v38,-12,57,-25,57,-39v0,-12,-1,-22,-2,-31v-1,-9,-3,-19,-5,-30r-50,-279r-489,0r-61,97r-61,104v-25,45,-41,76,-45,93v-4,17,-6,27,-6,32v0,20,16,36,47,49v31,13,79,23,144,29r-17,73r-596,0r17,-73v19,-1,44,-5,73,-10v29,-5,54,-13,74,-24v28,-15,54,-34,79,-57v25,-23,48,-52,69,-85r373,-577r394,-613r198,0r127,741r89,490v3,20,9,38,19,54v10,16,26,32,47,47v16,11,36,19,59,24v23,5,44,9,64,10r-17,73r-759,0","w":1553},"B":{"d":"1131,-1142v0,-66,-21,-114,-63,-145v-42,-31,-96,-46,-164,-46v-13,0,-29,0,-47,1v-18,1,-32,2,-42,3r-124,534r67,0v115,0,205,-31,272,-95v67,-64,101,-148,101,-252xm1053,-469v0,-77,-25,-136,-74,-177v-49,-41,-122,-61,-219,-61v-13,0,-30,0,-50,1v-20,1,-33,2,-40,3r-122,528v1,25,19,46,55,63v36,17,76,26,120,26v89,0,165,-36,231,-107v66,-71,99,-163,99,-276xm1026,-1419v171,0,298,21,378,63v80,42,120,108,120,195v0,58,-12,109,-38,153v-26,44,-60,81,-102,111v-42,31,-91,56,-146,77v-55,21,-111,37,-170,49r-4,19v46,5,92,15,140,30v48,15,89,34,123,57v37,25,66,55,87,90v21,35,32,78,32,129v0,146,-62,256,-184,332v-122,76,-302,114,-541,114r-776,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-10,74,-15v26,-9,46,-22,60,-39v14,-17,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r754,0","w":1555},"C":{"d":"721,38v-91,0,-176,-13,-254,-40v-78,-27,-145,-66,-202,-117v-56,-51,-100,-112,-131,-185v-31,-73,-47,-156,-47,-248v0,-122,22,-237,67,-345v45,-108,109,-204,191,-289v79,-81,175,-146,289,-196v114,-50,234,-75,362,-75v77,0,156,9,235,28v79,19,139,40,178,65r75,-55r87,0r-111,518r-88,0v-13,-151,-53,-266,-120,-345v-67,-79,-154,-119,-259,-119v-77,0,-149,23,-214,69v-65,46,-123,117,-174,212v-41,79,-73,170,-95,274v-22,104,-32,200,-32,291v0,133,32,237,97,311v65,74,151,111,260,111v95,0,184,-27,265,-80v81,-53,160,-130,235,-231r77,52v-33,51,-72,101,-117,150v-45,49,-97,91,-155,127v-61,38,-124,67,-188,87v-64,20,-141,30,-231,30","w":1465},"D":{"d":"1448,-1304v74,46,132,106,174,180v42,74,63,163,63,264v0,127,-25,244,-75,351v-50,107,-121,199,-212,274v-91,76,-196,135,-316,175v-120,40,-252,60,-397,60r-740,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-8,74,-13v26,-9,46,-22,60,-40v14,-18,23,-39,28,-62r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r727,0v75,0,152,9,231,27v79,18,151,47,218,88xm1152,-349v47,-81,82,-168,105,-263v23,-95,34,-195,34,-298v0,-129,-29,-232,-88,-308v-59,-76,-147,-115,-265,-115v-23,0,-47,0,-70,1v-23,1,-41,2,-54,3r-245,1065v-3,10,-5,22,-7,36v-2,14,-3,25,-3,31v0,42,16,71,47,87v31,16,74,24,130,24v91,0,172,-24,242,-72v70,-48,128,-112,174,-191","w":1708},"E":{"d":"1520,-1419r-83,362r-76,0v-9,-63,-31,-122,-67,-175v-36,-53,-74,-83,-113,-92v-19,-5,-46,-7,-81,-8v-35,-1,-65,-2,-88,-2r-196,0r-128,555r136,0v50,0,90,-6,118,-17v28,-11,54,-26,79,-46v19,-15,40,-42,65,-82v25,-40,43,-74,54,-102r76,0r-137,592r-76,0r0,-37v0,-30,-3,-61,-9,-93v-6,-32,-14,-53,-23,-66v-17,-25,-40,-42,-69,-50v-29,-8,-61,-13,-98,-13r-136,0r-91,395v-5,20,-9,42,-13,65v-4,23,-6,40,-6,50v0,43,14,70,42,81v28,11,80,16,155,16v96,0,166,-4,210,-12v44,-8,77,-22,99,-39v40,-33,88,-84,144,-153v56,-69,94,-119,114,-152r73,0r-129,442r-1321,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-8,74,-13v26,-9,46,-22,60,-40v14,-18,23,-39,28,-62r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r1248,0","w":1477},"F":{"d":"1548,-1419r-88,379r-77,0v-7,-63,-29,-124,-65,-185v-36,-61,-73,-94,-112,-99v-20,-3,-46,-5,-78,-7v-32,-2,-63,-3,-91,-3r-221,0r-131,565r141,0v37,0,72,-5,104,-14v32,-9,63,-26,93,-51v21,-17,43,-44,68,-83v25,-39,42,-72,52,-101r76,0r-138,597r-75,0r0,-31v0,-35,-3,-68,-10,-100v-7,-32,-15,-53,-23,-64v-16,-23,-37,-40,-63,-51v-26,-11,-61,-16,-103,-16r-141,0r-106,457v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,30,12,52,37,66v25,14,72,25,141,32r-17,73r-767,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-10,74,-15v26,-9,46,-22,60,-39v14,-17,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r1276,0","w":1375},"G":{"d":"725,39v-91,0,-175,-13,-252,-39v-77,-26,-145,-63,-202,-113v-58,-50,-103,-111,-135,-183v-32,-72,-49,-153,-49,-243v0,-133,24,-255,71,-367v47,-112,112,-209,196,-292v83,-81,181,-144,296,-190v115,-46,240,-69,373,-69v81,0,161,9,241,29v80,20,139,41,179,64r74,-55r87,0r-110,518r-88,0v-15,-154,-56,-269,-124,-347v-68,-78,-155,-117,-262,-117v-85,0,-161,25,-228,76v-67,51,-123,116,-169,197v-45,79,-80,173,-105,282v-25,109,-38,216,-38,322v0,132,26,236,78,314v52,78,127,117,228,117v55,0,102,-9,142,-27v40,-18,75,-40,106,-66r63,-271v3,-12,5,-23,7,-33v2,-10,2,-19,2,-25v0,-28,-17,-49,-52,-65v-35,-16,-84,-29,-148,-38r17,-73r768,0r-17,73v-21,1,-45,5,-72,10v-27,5,-49,10,-66,15v-28,9,-48,23,-61,41v-13,18,-22,38,-27,60r-40,173v-7,29,-12,55,-16,79v-6,36,-7,36,-14,77v-77,44,-178,83,-304,116v-126,33,-243,50,-349,50","w":1653},"H":{"d":"1994,-1419r-17,73v-21,1,-47,5,-78,10v-31,5,-55,10,-71,15v-27,9,-47,23,-60,41v-13,18,-23,38,-28,61r-229,993v-3,11,-5,22,-7,32v-2,10,-2,18,-2,23v0,30,12,53,38,67v26,14,74,24,144,31r-17,73r-767,0r17,-73v17,-1,42,-3,74,-6v32,-3,55,-7,69,-12v26,-9,46,-23,60,-40v14,-17,24,-38,29,-62r113,-497r-596,0r-106,464v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,30,12,52,37,66v25,14,72,25,141,32r-17,73r-767,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-8,74,-13v26,-9,46,-22,60,-40v14,-18,23,-39,28,-62r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r767,0r-17,73v-21,1,-46,5,-76,10v-30,5,-52,10,-69,15v-28,9,-48,22,-61,41v-13,19,-22,40,-27,61r-99,431r596,0r92,-399v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-50,-41,-65v-27,-15,-73,-27,-136,-38r17,-73r767,0","w":1870},"I":{"d":"-61,0r17,-73v19,-1,46,-3,79,-7v33,-4,59,-8,77,-14v26,-9,46,-22,60,-40v14,-18,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-15,-49,-46,-65v-31,-16,-79,-29,-143,-38r17,-73r787,0r-17,73v-21,1,-49,5,-82,10v-33,5,-58,10,-75,15v-27,9,-48,23,-61,41v-13,18,-22,38,-27,61r-229,993v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,33,16,56,47,69v31,13,78,23,143,29r-17,73r-787,0","w":923},"J":{"d":"947,-432v-18,77,-47,145,-87,204v-40,59,-87,107,-140,146v-52,38,-109,67,-170,88v-61,21,-123,32,-186,32v-125,0,-226,-30,-300,-89v-74,-59,-111,-140,-111,-243v0,-63,18,-116,55,-158v37,-42,86,-62,147,-62v59,0,105,16,138,50v33,34,49,76,49,127v0,27,-6,53,-19,78v-13,25,-35,53,-67,83r-62,58r0,13v6,16,19,29,39,37v20,8,40,12,61,12v69,0,129,-30,178,-88v49,-58,86,-144,112,-259r181,-784v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-15,-49,-44,-65v-29,-16,-75,-29,-139,-38r17,-73r766,0r-17,73v-21,1,-45,5,-73,10v-28,5,-51,10,-68,15v-28,9,-48,21,-60,38v-12,17,-21,38,-28,64","w":1219},"K":{"d":"560,-226v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,30,12,52,37,66v25,14,72,25,141,32r-17,73r-767,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-8,74,-13v26,-9,46,-22,60,-40v14,-18,23,-39,28,-62r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r767,0r-17,73v-21,1,-46,5,-76,10v-30,5,-52,10,-69,15v-28,9,-48,22,-61,41v-13,19,-22,40,-27,61r-111,483r42,0r232,-180v82,-65,150,-123,205,-172v62,-57,109,-103,143,-139v34,-36,51,-63,51,-82v0,-10,-11,-17,-32,-23v-21,-6,-57,-11,-106,-14r17,-73r617,0r-17,73v-75,8,-141,24,-198,47v-57,23,-114,56,-171,99v-93,70,-172,133,-238,190r-210,176r167,273r197,320v21,35,42,63,64,86v22,23,49,42,82,58v15,7,32,13,53,17v21,4,38,6,53,7r-17,73r-532,0v-55,-127,-111,-238,-166,-332r-194,-323r-61,0","w":1673},"L":{"d":"1385,-455r-133,455r-1307,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-10,74,-15v27,-9,47,-22,60,-39v13,-17,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r780,0r-17,73v-21,1,-49,5,-82,10v-33,5,-59,10,-76,15v-28,9,-48,22,-61,41v-13,19,-22,40,-27,61r-217,943v-5,19,-8,38,-11,56v-3,18,-4,33,-4,43v0,39,15,64,43,75v28,11,86,16,173,16v53,0,106,-4,159,-12v53,-8,92,-23,118,-44v41,-33,87,-82,138,-144v51,-62,92,-118,124,-169r73,0","w":1404},"M":{"d":"2246,-1419r-17,73v-21,1,-46,5,-77,10v-31,5,-54,10,-70,15v-27,9,-47,22,-60,41v-13,19,-23,39,-28,61r-223,993r-6,30v-2,10,-3,18,-3,25v0,30,12,52,37,66v25,14,73,25,145,32r-17,73r-767,0r17,-73v27,-3,54,-7,82,-11v28,-4,49,-9,64,-14v27,-10,48,-23,63,-40v15,-17,25,-40,31,-67r240,-1065r-10,0r-771,1247r-126,0v-1,-26,-6,-67,-14,-125r-22,-163r-136,-975r-10,0r-200,869v-8,33,-14,65,-19,97v-5,32,-7,60,-7,85v0,27,2,48,8,63v6,15,14,27,24,37v14,14,40,27,78,39v38,12,67,20,86,23r-17,73r-610,0r17,-73v17,-2,46,-6,85,-13v39,-7,73,-20,101,-37v30,-19,54,-50,74,-93v20,-43,40,-106,59,-191r162,-701v5,-24,9,-42,11,-55v2,-13,2,-25,2,-37v0,-21,-2,-39,-8,-54v-6,-15,-15,-29,-26,-40v-21,-20,-45,-34,-73,-40v-28,-6,-55,-10,-82,-12r17,-73r649,0r136,937r465,-761v21,-35,39,-70,56,-107v17,-37,26,-60,29,-69r661,0","w":2116},"N":{"d":"1883,-1419r-17,73v-19,2,-46,5,-82,10v-36,5,-70,19,-104,40v-29,18,-54,49,-74,93v-20,44,-40,108,-60,193r-235,1018r-168,0r-613,-1137r-162,710v-9,37,-15,72,-20,105v-5,33,-7,59,-7,78v0,27,3,49,8,64v5,15,13,27,23,37v15,15,42,29,80,40v38,11,67,19,86,22r-17,73r-610,0r17,-73v18,-3,47,-7,86,-14v39,-7,72,-19,100,-36v29,-19,54,-49,74,-91v20,-42,40,-107,59,-194r154,-668v3,-15,7,-30,9,-44v2,-14,3,-26,3,-37v0,-20,-2,-39,-7,-57v-5,-18,-13,-36,-26,-51v-19,-23,-42,-41,-69,-53v-27,-12,-59,-21,-96,-28r18,-73r524,0r536,1000r133,-581v9,-43,16,-77,20,-104v4,-27,7,-53,7,-76v0,-26,-3,-48,-9,-64v-6,-16,-13,-29,-24,-40v-15,-15,-41,-28,-78,-40v-37,-12,-65,-19,-85,-22r17,-73r609,0","w":1699},"O":{"d":"1661,-875v0,120,-22,235,-67,347v-45,112,-109,209,-190,292v-83,85,-181,152,-294,201v-113,49,-240,74,-383,74v-187,0,-340,-53,-460,-161v-120,-108,-180,-249,-180,-423v0,-127,24,-245,73,-357v49,-112,116,-210,202,-293v84,-82,183,-146,296,-193v113,-47,232,-70,357,-70v188,0,343,53,464,158v121,105,182,247,182,425xm1138,-351v45,-92,79,-193,101,-301v22,-108,33,-215,33,-320v0,-122,-23,-218,-70,-288v-47,-70,-116,-105,-209,-105v-81,0,-155,27,-219,82v-64,55,-118,126,-162,213v-44,87,-78,186,-101,296v-23,110,-35,219,-35,328v0,118,23,212,70,284v47,72,117,108,210,108v81,0,154,-28,220,-84v66,-56,119,-127,162,-213","w":1679},"P":{"d":"1532,-1121v0,82,-18,156,-56,221v-38,65,-92,119,-163,163v-70,43,-149,74,-235,95v-86,21,-181,31,-285,31r-144,0r-89,385v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,30,12,52,37,66v25,14,73,25,145,32r-17,73r-771,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-10,74,-15v26,-9,46,-22,60,-39v14,-17,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r769,0v165,0,288,24,369,73v81,49,122,124,122,225xm1136,-1118v0,-72,-19,-126,-58,-162v-39,-36,-102,-53,-189,-53r-73,0r-146,633r65,0v72,0,133,-10,185,-32v52,-22,94,-52,126,-91v31,-37,53,-81,68,-131v15,-50,22,-105,22,-164","w":1446},"Q":{"d":"1661,-875v0,98,-15,194,-45,287v-30,93,-74,177,-129,252v-56,77,-124,144,-203,202v-79,58,-167,101,-266,130r0,53v0,72,17,129,52,172v35,43,81,64,139,64v29,0,61,-2,97,-7v36,-5,66,-10,90,-16r-16,80v-46,19,-109,36,-190,51v-81,15,-157,22,-226,22v-97,0,-174,-27,-232,-82v-58,-55,-87,-135,-87,-242r0,-57v-165,-18,-299,-77,-403,-178v-104,-101,-155,-235,-155,-401v0,-127,24,-245,73,-357v49,-112,116,-210,202,-293v84,-82,183,-146,296,-193v113,-47,232,-70,357,-70v188,0,343,53,464,158v121,105,182,247,182,425xm1272,-972v0,-122,-23,-218,-70,-288v-47,-70,-116,-105,-209,-105v-81,0,-155,27,-219,82v-64,55,-118,126,-162,213v-44,87,-78,186,-101,296v-23,110,-35,219,-35,328v0,118,23,212,70,284v47,72,117,108,210,108v81,0,154,-28,220,-84v66,-56,119,-127,162,-213v45,-92,79,-193,101,-301v22,-108,33,-215,33,-320","w":1679},"R":{"d":"1147,-1121v0,-71,-22,-124,-67,-159v-45,-35,-111,-53,-196,-53r-68,0r-139,603r97,0v109,0,198,-34,268,-102v70,-68,105,-165,105,-289xm560,-226v-3,11,-4,22,-6,32v-2,10,-3,18,-3,23v0,30,12,52,37,66v25,14,72,25,141,32r-17,73r-767,0r17,-73v17,-1,41,-3,74,-7v33,-4,58,-10,74,-15v26,-9,46,-22,60,-39v14,-17,23,-38,28,-61r229,-992v3,-14,6,-26,7,-35v1,-9,2,-16,2,-21v0,-28,-14,-49,-42,-65v-28,-16,-75,-29,-139,-38r17,-73r782,0v163,0,284,23,366,69v82,46,123,116,123,209v0,110,-40,203,-119,277v-79,74,-191,128,-336,163r104,187r145,256v16,29,37,62,63,98v26,36,52,59,81,69v14,5,33,9,58,12v25,3,42,5,53,6r-18,73r-518,0v-63,-143,-116,-258,-160,-344v-44,-86,-100,-186,-167,-299r-72,0","w":1633},"S":{"d":"575,38v-79,0,-157,-10,-237,-29v-80,-19,-150,-46,-210,-79r-86,70r-85,0r106,-513r86,0v8,50,23,101,44,155v21,54,49,102,83,144v33,43,76,79,127,108v51,29,110,43,176,43v97,0,174,-24,232,-71v58,-47,87,-108,87,-185v0,-49,-17,-93,-50,-130v-33,-37,-86,-69,-159,-96r-135,-49v-44,-16,-86,-31,-125,-48v-78,-33,-137,-80,-176,-140v-39,-60,-59,-124,-59,-192v0,-63,14,-122,43,-180v29,-58,70,-110,124,-155v53,-45,117,-80,195,-107v78,-27,163,-41,256,-41v77,0,154,11,230,33v76,22,132,44,168,65r75,-60r87,0r-104,484r-86,0v-9,-57,-22,-110,-38,-160v-16,-50,-38,-95,-67,-135v-28,-39,-63,-69,-105,-92v-42,-23,-91,-35,-150,-35v-81,0,-150,23,-204,68v-54,45,-81,102,-81,171v0,48,16,90,49,126v33,36,84,67,155,94r130,48v45,16,89,33,130,50v77,32,138,75,183,130v45,55,67,121,67,196v0,71,-16,138,-49,201v-33,63,-78,117,-137,162v-62,48,-134,85,-217,111v-83,26,-174,38,-273,38","w":1337},"T":{"d":"1591,-1419r-94,406r-77,0v-3,-23,-8,-51,-16,-85v-8,-34,-18,-68,-31,-101v-14,-35,-29,-63,-45,-86v-16,-23,-36,-36,-59,-40v-20,-3,-46,-5,-77,-7v-31,-2,-57,-3,-80,-3r-50,0r-255,1103v-3,11,-5,22,-7,32v-2,10,-2,18,-2,23v0,16,4,31,10,43v6,12,18,22,35,29v16,7,39,13,70,19v31,6,56,11,76,13r-17,73r-791,0r17,-73v19,-1,46,-4,82,-8v36,-4,62,-9,77,-14v27,-11,47,-25,60,-43v13,-18,23,-39,28,-64r262,-1133r-39,0v-25,0,-50,1,-76,3v-26,2,-55,4,-88,7v-24,3,-50,18,-80,43v-30,25,-59,53,-87,83v-33,37,-61,71,-83,101v-22,30,-40,59,-55,85r-77,0r94,-406r1375,0","w":1401},"U":{"d":"755,39v-173,0,-307,-34,-399,-101v-92,-67,-138,-161,-138,-283v0,-21,1,-43,4,-65v3,-22,7,-45,12,-70r164,-709v3,-14,6,-25,7,-33v1,-8,2,-15,2,-21v0,-28,-13,-50,-40,-65v-27,-15,-73,-28,-139,-38r17,-73r760,0r-17,73v-22,1,-46,4,-72,8v-26,4,-48,10,-66,15v-27,8,-47,21,-60,39v-13,18,-22,40,-27,63r-162,699v-7,28,-12,58,-16,91v-4,33,-6,60,-6,82v0,86,25,150,74,191v49,41,121,61,216,61v115,0,213,-39,297,-115v84,-76,140,-177,169,-303r112,-486v9,-41,17,-77,21,-106v4,-29,6,-54,6,-74v0,-25,-2,-46,-8,-63v-6,-17,-14,-30,-25,-40v-17,-15,-45,-28,-83,-40v-38,-12,-66,-19,-83,-22r17,-73r615,0r-17,73v-20,2,-48,7,-86,14v-38,7,-72,19,-101,36v-29,17,-55,48,-75,92v-20,44,-40,108,-60,193r-123,533v-39,165,-119,292,-243,382v-124,90,-273,135,-447,135","w":1707},"V":{"d":"1787,-1346v-21,2,-42,7,-63,14v-21,7,-45,16,-70,28v-32,15,-58,33,-78,52v-20,19,-42,46,-65,80r-128,194r-204,312r-235,362r-205,320r-201,0r-132,-743r-83,-451v-8,-36,-19,-63,-31,-80v-12,-17,-30,-33,-53,-48v-19,-12,-36,-20,-53,-26v-17,-6,-38,-11,-64,-14r17,-73r753,0r-18,73v-55,6,-95,12,-122,18v-27,6,-46,13,-59,20v-12,6,-19,13,-20,21v-1,8,-2,15,-2,21v0,15,1,30,4,45v3,15,6,36,10,63v13,79,32,185,57,319r92,515r244,-388r214,-344v29,-47,53,-90,74,-131v21,-41,32,-68,32,-83v0,-20,-18,-37,-52,-50v-34,-13,-83,-22,-148,-26r18,-73r589,0","w":1561},"W":{"d":"2549,-1419r-18,73v-22,2,-44,7,-66,15v-22,8,-43,17,-64,27v-32,16,-57,34,-75,54v-18,20,-37,45,-56,78r-288,494r-400,694r-208,0r-128,-1048r-576,1048r-200,0r-78,-705v0,0,-35,-330,-53,-487v-5,-35,-13,-61,-23,-78v-10,-17,-28,-35,-53,-53v-16,-11,-33,-19,-52,-25v-19,-6,-40,-11,-65,-14r17,-73r742,0r-18,73v-48,5,-85,11,-112,17v-27,6,-47,13,-60,20v-12,7,-19,15,-21,23v-2,8,-3,16,-3,25v0,13,1,29,2,47v1,18,3,36,5,57v5,63,16,161,30,297v22,204,21,204,48,475r559,-1034r213,0r129,1066r221,-401r162,-303v25,-47,46,-91,64,-132v18,-41,28,-67,28,-79v0,-21,-17,-38,-52,-51v-35,-13,-87,-22,-154,-27r18,-73r585,0","w":2307},"X":{"d":"1792,-1419r-17,73v-27,1,-51,4,-71,10v-20,6,-37,11,-51,16v-45,18,-85,41,-120,70r-110,95r-188,172r-215,198r136,288r113,232v15,32,33,64,55,95v22,31,51,54,86,69v17,7,35,12,54,17v19,5,44,9,77,11r-17,73r-834,0r17,-73v89,-5,147,-13,173,-24v26,-11,39,-26,39,-46v0,-11,-2,-24,-7,-41v-5,-17,-15,-45,-30,-82r-55,-129r-83,-183r-176,168r-142,141v-49,49,-78,83,-88,101v-10,18,-14,30,-14,39v0,13,10,25,30,35v20,10,60,16,119,21r-17,73r-575,0r17,-73v29,-2,50,-4,64,-7v14,-3,33,-10,57,-19v43,-19,82,-41,117,-68v35,-27,73,-59,114,-97r203,-186r244,-227r-113,-242r-114,-235v-17,-35,-37,-67,-58,-96v-21,-29,-50,-51,-86,-67v-18,-8,-35,-15,-52,-19v-17,-4,-42,-7,-77,-10r17,-73r836,0r-17,73v-54,3,-103,9,-147,18v-44,9,-67,27,-67,54v0,11,3,25,7,40v4,15,12,38,25,69v13,33,29,70,47,109r76,173r174,-167v49,-48,88,-88,118,-121v45,-49,71,-79,76,-91v5,-12,7,-22,7,-29v0,-6,-2,-12,-6,-17v-4,-5,-12,-11,-24,-16v-12,-5,-28,-8,-47,-12v-19,-4,-43,-7,-74,-10r17,-73r577,0","w":1643},"Y":{"d":"1770,-1419r-17,73v-23,3,-44,7,-63,12v-19,5,-42,15,-67,28v-32,16,-61,36,-87,58v-26,22,-55,51,-88,87r-182,201r-217,254v-59,68,-94,116,-106,144v-12,28,-26,75,-41,144r-43,186v-3,11,-5,22,-7,32v-2,10,-2,18,-2,23v0,16,4,31,10,43v6,12,18,22,35,29v16,7,39,13,70,19v31,6,56,11,76,13r-17,73r-791,0r17,-73v19,-1,46,-4,82,-8v36,-4,62,-9,77,-14v25,-10,45,-24,59,-43v14,-19,24,-40,29,-64r59,-255r11,-49v3,-14,5,-27,5,-38v0,-14,-4,-32,-11,-54r-29,-84r-90,-259v-21,-59,-50,-134,-86,-227v-13,-35,-28,-64,-46,-88v-18,-24,-38,-42,-59,-57v-16,-10,-35,-18,-59,-23v-24,-5,-46,-9,-67,-10r17,-73r793,0r-17,73v-69,2,-120,7,-154,16v-34,9,-50,23,-50,42v0,9,2,26,8,52v6,26,18,68,37,127v14,45,33,105,59,177r86,238r232,-270v70,-82,118,-140,144,-173v49,-61,78,-99,85,-113v7,-14,11,-25,11,-32v0,-21,-16,-36,-48,-46v-32,-10,-70,-15,-115,-18r17,-73r540,0","w":1499},"Z":{"d":"1563,-1419r-14,61r-1186,1271r339,0v112,0,189,-6,232,-17v43,-11,77,-27,101,-50v44,-41,91,-93,141,-154v50,-61,95,-118,132,-171r75,0r-159,479r-1322,0r15,-61r1186,-1271r-291,0v-63,0,-109,2,-138,6v-29,4,-57,11,-85,22v-31,11,-71,41,-120,91v-49,50,-114,126,-193,227r-81,0r144,-433r1224,0","w":1412},"[":{"d":"651,310r-662,0r422,-1829r662,0r-22,95r-347,0r-378,1638r347,0","w":915},"\\":{"d":"778,424r-174,0r-349,-1947r176,0","w":966},"]":{"d":"537,310r-662,0r22,-96r347,0r378,-1638r-347,0r22,-95r662,0","w":915},"^":{"d":"1272,-760r-196,0r-317,-513r-317,513r-194,0r442,-696r140,0"},"_":{"d":"1262,301r-1450,0r27,-120r1450,0"},"`":{"d":"857,-1139r-46,38v-87,-59,-163,-107,-227,-144v-64,-37,-109,-65,-136,-84v-23,-17,-41,-34,-52,-50v-11,-16,-17,-36,-17,-60v0,-24,10,-49,31,-73v21,-24,49,-36,83,-36v42,0,75,8,100,24v25,16,49,43,74,80v19,29,45,71,77,126v32,55,70,114,113,179","w":1024},"a":{"d":"760,-125r-8,0v-35,30,-34,30,-66,55v-21,17,-48,33,-80,50v-28,15,-57,26,-88,36v-31,10,-66,15,-103,15v-116,0,-203,-35,-262,-103v-59,-68,-88,-161,-88,-280v0,-91,16,-177,49,-257v33,-80,76,-150,131,-211v55,-60,120,-107,194,-142v74,-35,152,-53,234,-53v60,0,112,7,157,21v45,14,82,33,111,57r307,-63r14,16r-147,615v-5,21,-11,46,-17,77v-6,31,-9,55,-9,71v0,38,9,65,26,79v17,14,47,21,90,21v19,0,41,-4,67,-11v26,-7,45,-13,56,-18r-22,90v-66,26,-118,46,-158,60v-40,14,-86,20,-138,20v-69,0,-123,-13,-164,-40v-41,-27,-70,-62,-86,-105xm879,-759v0,-15,-2,-32,-6,-52v-4,-20,-11,-37,-21,-51v-12,-17,-28,-31,-47,-40v-19,-9,-43,-13,-72,-13v-44,0,-84,15,-121,47v-37,32,-70,74,-99,127v-28,52,-50,112,-66,181v-16,69,-24,140,-24,212v0,33,2,63,7,91v5,28,14,52,25,71v12,21,29,37,49,48v20,11,45,17,76,17v31,0,61,-9,90,-27v29,-18,56,-41,81,-68","w":1352},"b":{"d":"1264,-632v0,91,-15,176,-46,258v-31,82,-75,152,-132,211v-61,62,-133,110,-216,144v-83,34,-176,51,-278,51v-25,0,-61,-3,-109,-8v-48,-5,-91,-15,-129,-28v-48,-17,-94,-40,-136,-71v-42,-31,-79,-71,-111,-120r251,-1078v3,-11,5,-22,6,-32v1,-10,2,-18,2,-25v0,-22,-4,-40,-12,-55v-8,-15,-21,-26,-36,-35v-15,-8,-33,-14,-54,-18v-21,-4,-46,-7,-73,-10r18,-74r527,-26r11,16r-151,648r7,0v15,-13,32,-25,50,-38v18,-13,42,-28,72,-44v23,-12,52,-24,89,-34v37,-10,71,-15,101,-15v116,0,203,35,261,103v58,68,88,161,88,280xm906,-636v0,-33,-2,-62,-7,-90v-5,-28,-13,-52,-25,-72v-12,-21,-28,-37,-48,-48v-20,-11,-46,-17,-77,-17v-34,0,-66,10,-97,29v-31,19,-58,41,-82,66r-126,558v0,16,2,32,7,49v5,17,14,34,27,52v13,19,28,33,44,43v16,10,39,15,69,15v45,0,87,-17,127,-51v40,-34,73,-77,100,-132v29,-59,51,-121,66,-186v15,-65,22,-137,22,-216","w":1329},"c":{"d":"557,33v-153,0,-273,-38,-359,-115v-86,-77,-128,-182,-128,-316v0,-81,14,-158,41,-230v27,-72,69,-138,126,-197v53,-56,120,-102,203,-137v83,-35,175,-53,277,-53v118,0,209,22,271,65v62,43,93,103,93,179v0,21,-3,44,-10,69v-7,25,-17,47,-30,64v-17,21,-35,38,-55,49v-20,11,-49,17,-88,17v-52,0,-93,-12,-122,-38v-29,-26,-43,-53,-43,-81v0,-33,7,-66,21,-99v14,-33,32,-67,53,-103v-6,-7,-19,-16,-37,-27v-18,-11,-42,-16,-71,-16v-78,0,-143,48,-194,142v-51,94,-77,211,-77,350v0,106,19,186,58,241v39,55,95,82,167,82v73,0,134,-15,183,-43v49,-28,100,-76,151,-145r72,61v-55,85,-127,153,-217,204v-90,51,-185,77,-285,77","w":1097},"d":{"d":"766,-125r-8,0r-67,55v-21,17,-49,33,-82,50v-31,16,-61,29,-91,38v-30,9,-64,13,-103,13v-116,0,-203,-35,-262,-103v-59,-68,-88,-161,-88,-280v0,-91,16,-177,48,-257v32,-80,75,-150,130,-211v54,-60,118,-107,192,-142v74,-35,152,-53,233,-53v61,0,113,6,154,19v41,13,76,31,103,52r74,-325v2,-9,3,-20,5,-31v2,-11,3,-19,3,-26v0,-22,-6,-41,-17,-56v-11,-15,-27,-27,-47,-36v-19,-9,-40,-15,-64,-19v-24,-4,-50,-8,-79,-11r18,-74r561,-26r11,16r-269,1163v-5,19,-11,45,-17,77v-6,32,-9,55,-9,71v0,38,8,65,25,79v17,14,47,21,90,21v19,0,42,-4,68,-11v26,-7,44,-13,55,-18r-22,90v-66,26,-119,46,-158,60v-39,14,-85,20,-137,20v-69,0,-123,-13,-164,-40v-41,-27,-70,-62,-86,-105xm884,-765v0,-17,-2,-33,-6,-51v-4,-18,-13,-35,-26,-51v-13,-17,-28,-29,-47,-39v-19,-10,-44,-15,-76,-15v-43,0,-82,15,-119,47v-37,32,-70,75,-99,130v-27,51,-48,110,-64,180v-16,70,-24,142,-24,216v0,33,2,63,7,91v5,28,14,52,25,71v12,21,29,37,49,48v20,11,45,17,76,17v31,0,63,-9,94,-27v31,-18,58,-41,83,-68","w":1357},"e":{"d":"546,33v-80,0,-150,-11,-210,-33v-60,-22,-111,-51,-150,-90v-39,-39,-68,-84,-87,-135v-19,-51,-29,-108,-29,-170v0,-79,15,-155,44,-229v29,-74,73,-141,131,-200v55,-57,124,-103,208,-138v84,-35,177,-53,278,-53v119,0,211,19,273,57v62,38,93,95,93,171v0,73,-27,135,-81,187v-54,52,-127,92,-220,117v-73,22,-136,38,-188,47v-52,9,-114,18,-189,26v1,29,5,62,12,99v7,37,17,68,30,94v16,30,39,53,68,71v29,18,67,27,112,27v79,0,146,-15,201,-45v55,-30,107,-79,157,-145r73,61v-60,85,-136,153,-230,204v-94,51,-193,77,-296,77xm772,-759v0,-57,-10,-101,-31,-131v-21,-30,-49,-45,-86,-45v-51,0,-99,41,-145,125v-46,84,-75,190,-88,318v39,-5,78,-11,117,-18v39,-7,69,-16,92,-26v50,-22,86,-50,108,-85v22,-35,33,-81,33,-138","w":1141},"f":{"d":"620,-868r-86,428v-24,121,-54,248,-88,380v-17,65,-44,128,-82,190v-38,62,-84,117,-136,162v-55,48,-114,85,-178,112v-64,27,-129,40,-196,40v-61,0,-110,-6,-148,-18v-38,-12,-67,-27,-88,-46v-21,-19,-35,-39,-42,-62v-7,-23,-11,-45,-11,-67v0,-39,13,-73,41,-103v28,-30,65,-44,112,-44v36,0,68,9,94,28v26,19,48,42,67,69v19,26,35,55,49,87r34,75v28,-31,54,-77,79,-139v25,-62,48,-143,69,-246r179,-846r-194,0r24,-103r192,0r17,-77v14,-63,39,-124,76,-184v37,-60,82,-115,135,-162v51,-47,109,-85,175,-114v66,-29,133,-44,200,-44v58,0,106,5,144,16v38,11,69,27,91,46v20,18,34,38,41,60v7,22,10,45,10,67v0,15,-2,31,-8,49v-6,18,-15,34,-27,49v-15,17,-31,30,-47,39v-16,9,-40,14,-71,14v-36,0,-67,-9,-93,-28v-26,-19,-48,-42,-66,-68v-19,-27,-36,-57,-49,-88v-13,-31,-24,-56,-33,-75v-27,31,-52,77,-74,137v-22,60,-45,143,-68,248r-25,115r253,0r-24,103r-248,0","w":780},"g":{"d":"750,-105r-8,0v-17,13,-36,28,-58,43v-22,15,-46,29,-71,40v-31,15,-59,26,-86,34v-27,8,-60,11,-101,11v-116,0,-206,-34,-268,-102v-62,-68,-93,-161,-93,-280v0,-90,16,-174,48,-253v32,-79,75,-149,130,-210v54,-59,117,-106,191,-141v74,-35,152,-52,234,-52v60,0,113,6,159,19v46,13,86,32,119,59r305,-63r14,16r-170,813v-27,121,-64,222,-111,301v-47,79,-102,141,-165,188v-64,47,-131,80,-201,98v-70,18,-142,28,-219,28v-82,0,-149,-6,-201,-18v-52,-12,-91,-29,-118,-48v-27,-19,-44,-39,-54,-62v-10,-23,-15,-46,-15,-68v0,-38,14,-72,41,-102v27,-30,64,-46,112,-46v36,0,68,10,96,29v28,19,54,43,75,70v19,25,37,53,54,85v17,32,29,59,38,79v31,-5,61,-14,91,-26v30,-12,60,-35,88,-68v27,-32,52,-76,76,-133v24,-57,47,-137,68,-241xm884,-760v0,-17,-2,-34,-6,-52v-4,-18,-13,-34,-26,-50v-13,-17,-28,-30,-47,-40v-19,-10,-44,-14,-76,-14v-43,0,-83,15,-120,46v-37,31,-69,73,-97,125v-27,51,-49,111,-65,179v-16,68,-24,139,-24,212v0,32,3,61,9,88v6,27,15,52,29,73v14,21,33,37,55,48v22,11,47,16,75,16v33,0,67,-10,101,-30v34,-20,61,-41,82,-64","w":1330},"h":{"d":"1354,-151r-22,88v-66,26,-119,45,-158,59v-39,14,-85,21,-137,21v-79,0,-141,-19,-185,-59v-44,-40,-67,-89,-67,-148v0,-19,1,-39,3,-62v2,-23,7,-54,17,-93r72,-266v7,-29,13,-54,17,-77v4,-23,5,-42,5,-57v0,-32,-8,-57,-23,-75v-15,-18,-41,-27,-78,-27v-23,0,-55,9,-97,27v-42,18,-89,50,-141,98r-165,722r-331,0r294,-1273v3,-11,5,-22,6,-32v1,-10,2,-18,2,-25v0,-24,-4,-43,-12,-57v-8,-14,-20,-25,-36,-34v-16,-9,-34,-15,-55,-18v-21,-3,-45,-6,-72,-9r18,-74r527,-26r11,16r-160,692r7,0v62,-55,126,-97,193,-128v67,-31,138,-47,215,-47v74,0,132,20,174,61v42,41,62,90,62,148v0,15,-2,36,-4,64v-2,28,-7,58,-16,89r-76,281v-7,23,-13,50,-18,80v-5,30,-8,53,-8,68v0,39,9,65,26,80v17,15,46,22,89,22v20,0,43,-3,68,-10v25,-7,44,-14,55,-19","w":1383},"i":{"d":"713,-143r-22,90v-66,26,-119,45,-158,59v-39,14,-85,21,-137,21v-80,0,-142,-20,-186,-59v-44,-39,-67,-88,-67,-148v0,-23,2,-48,5,-72v3,-24,9,-51,16,-82r82,-292v7,-28,13,-55,18,-80v5,-25,8,-47,8,-68v0,-37,-8,-63,-23,-78v-15,-15,-45,-22,-88,-22v-21,0,-43,3,-65,10v-22,7,-42,13,-58,19r22,-90v54,-22,106,-41,155,-57v49,-16,96,-23,140,-23v79,0,140,19,183,57v43,38,65,89,65,150v0,13,-2,35,-5,67v-3,32,-8,61,-16,88r-82,291v-7,23,-13,50,-18,80v-5,30,-8,53,-8,68v0,39,9,65,26,79v17,14,47,21,90,21v20,0,43,-3,68,-10v25,-7,44,-14,55,-19xm734,-1364v0,51,-20,94,-58,130v-38,36,-84,53,-138,53v-54,0,-100,-17,-139,-53v-39,-36,-58,-79,-58,-130v0,-51,19,-94,58,-130v39,-36,85,-54,139,-54v54,0,100,18,138,54v38,36,58,79,58,130","w":749},"j":{"d":"627,-808v0,13,-1,30,-2,52v-1,22,-5,46,-10,73r-62,324v-12,63,-36,162,-71,299v-18,68,-45,132,-81,191v-36,59,-81,113,-134,161v-55,49,-112,87,-169,113v-57,26,-120,39,-191,39v-60,0,-108,-6,-145,-18v-37,-12,-66,-27,-87,-46v-21,-19,-35,-39,-42,-62v-7,-23,-11,-45,-11,-67v0,-39,14,-74,42,-103v28,-29,65,-44,111,-44v36,0,67,9,93,28v26,19,49,42,68,69v19,26,36,55,50,87r33,75v22,-39,44,-89,65,-149v21,-60,42,-139,64,-236v27,-121,51,-233,72,-337r59,-300v4,-23,3,-23,9,-56v4,-22,6,-42,6,-59v0,-33,-8,-58,-25,-75v-17,-17,-46,-25,-89,-25v-22,0,-45,3,-68,10v-35,10,-35,11,-60,19r22,-90v54,-22,108,-41,160,-57v52,-16,100,-23,144,-23v79,0,141,19,184,57v43,38,65,89,65,150xm742,-1364v0,51,-20,94,-58,130v-38,36,-84,53,-138,53v-54,0,-100,-17,-139,-53v-39,-36,-58,-79,-58,-130v0,-51,19,-94,58,-130v39,-36,85,-54,139,-54v54,0,100,18,138,54v38,36,58,79,58,130","w":747},"k":{"d":"1297,-858v0,47,-17,89,-51,126v-34,37,-77,55,-128,55v-42,0,-81,-10,-117,-29v-36,-19,-68,-38,-95,-59r-39,25v-13,8,-39,30,-79,65r101,255v37,93,64,157,83,192v22,42,42,72,62,89v20,17,55,26,104,26v17,0,39,-3,65,-10v26,-7,47,-13,64,-20r-22,90v-66,28,-124,48,-173,61v-49,13,-93,19,-132,19v-19,0,-42,-1,-70,-4v-28,-3,-53,-9,-74,-18v-26,-12,-50,-29,-72,-50v-22,-21,-42,-55,-63,-102v-29,-66,-51,-116,-63,-151r-51,-143r-66,62r-86,379r-331,0r294,-1273v3,-11,5,-22,6,-32v1,-10,2,-18,2,-25v0,-24,-4,-43,-12,-57v-8,-14,-20,-25,-36,-34v-16,-9,-34,-15,-55,-18v-21,-3,-45,-6,-72,-9r18,-74r527,-26r11,16r-240,1040r8,0r189,-206r151,-151v65,-63,118,-107,157,-131v39,-24,82,-35,129,-35v48,0,86,13,114,40v28,27,42,66,42,117","w":1313},"l":{"d":"746,-1532r-269,1170v-5,19,-11,45,-17,77v-6,32,-9,56,-9,71v0,39,10,65,29,79v19,14,51,21,96,21v17,0,39,-3,68,-10v29,-7,49,-14,61,-19r-22,90v-66,26,-120,45,-162,59v-42,14,-90,21,-143,21v-80,0,-143,-20,-189,-59v-46,-39,-69,-88,-69,-148v0,-25,2,-50,6,-77v4,-27,10,-52,15,-77r216,-939v3,-11,5,-22,6,-32v1,-10,2,-18,2,-25v0,-24,-4,-43,-12,-57v-8,-14,-20,-25,-36,-34v-16,-9,-34,-15,-55,-18v-21,-3,-45,-6,-72,-9r18,-74r527,-26","w":726},"m":{"d":"2023,-153r-22,90v-66,26,-119,45,-158,59v-39,14,-85,21,-137,21v-79,0,-141,-19,-185,-59v-44,-40,-66,-89,-66,-148v0,-16,1,-37,3,-62v2,-25,7,-56,16,-93r72,-266v7,-29,12,-54,16,-77v4,-23,6,-42,6,-57v0,-32,-8,-57,-24,-75v-16,-18,-42,-27,-78,-27v-25,0,-57,11,-96,34v-39,23,-79,53,-119,91r-165,722r-331,0r140,-610v7,-33,13,-60,17,-81v4,-21,5,-39,5,-54v0,-32,-8,-57,-24,-75v-16,-18,-42,-27,-79,-27v-21,0,-49,8,-86,25v-37,17,-83,50,-138,100r-165,722r-331,0r142,-615r16,-74v6,-31,9,-55,9,-74v0,-38,-7,-65,-22,-79v-15,-14,-44,-21,-87,-21v-21,0,-44,3,-66,10v-22,7,-41,13,-57,19r22,-90v54,-22,106,-40,155,-56v49,-16,96,-24,140,-24v81,0,140,17,176,50v36,33,61,75,76,127r7,0v67,-61,131,-108,193,-140v62,-32,133,-48,214,-48v69,0,125,18,169,55v44,37,68,82,73,136r7,0v71,-61,138,-109,199,-142v61,-33,131,-49,210,-49v74,0,132,20,174,61v42,41,63,90,63,148v0,15,-1,36,-3,64v-2,28,-8,58,-17,89r-76,281v-7,23,-13,50,-18,80v-5,30,-8,53,-8,68v0,39,8,65,25,79v17,14,47,21,90,21v20,0,43,-3,68,-10v25,-7,44,-14,55,-19","w":2052},"n":{"d":"1384,-153r-22,90v-66,26,-119,45,-158,59v-39,14,-85,21,-137,21v-79,0,-141,-19,-185,-59v-44,-40,-66,-89,-66,-148v0,-16,0,-37,2,-62v2,-25,8,-56,17,-93r72,-266v7,-29,13,-54,17,-77v4,-23,5,-42,5,-57v0,-32,-8,-57,-23,-75v-15,-18,-41,-27,-78,-27v-23,0,-55,9,-97,27v-42,18,-89,50,-141,98r-165,722r-331,0r142,-615r16,-73v6,-30,9,-55,9,-75v0,-38,-7,-65,-23,-79v-16,-14,-45,-21,-86,-21v-21,0,-44,3,-66,10v-22,7,-41,13,-57,19r22,-90v54,-22,106,-40,155,-56v49,-16,96,-24,140,-24v79,0,137,15,176,46v39,31,65,75,78,131r7,0v65,-59,133,-106,203,-139v70,-33,143,-49,222,-49v74,0,132,20,174,61v42,41,62,90,62,148v0,15,-2,36,-4,64v-2,28,-7,58,-16,89r-76,281v-7,23,-13,50,-18,80v-5,30,-8,53,-8,68v0,39,9,65,26,79v17,14,46,21,89,21v20,0,43,-3,68,-10v25,-7,44,-14,55,-19","w":1413},"o":{"d":"1235,-599v0,84,-16,164,-48,241v-32,77,-77,143,-136,200v-63,61,-138,107,-223,140v-85,33,-180,50,-286,50v-142,0,-257,-38,-344,-114v-87,-76,-131,-178,-131,-309v0,-89,16,-171,49,-247v33,-76,80,-142,139,-199v59,-55,131,-99,216,-131v85,-32,178,-49,277,-49v151,0,269,37,356,111v87,74,131,176,131,307xm883,-712v0,-78,-13,-135,-39,-172v-26,-37,-65,-55,-115,-55v-51,0,-98,20,-141,61v-43,41,-77,102,-104,181v-23,66,-40,138,-50,215v-10,77,-15,145,-15,206v0,81,13,140,40,176v27,36,65,54,116,54v55,0,102,-22,142,-67v40,-45,72,-100,95,-165v23,-64,41,-134,53,-212v12,-78,18,-152,18,-222","w":1302},"p":{"d":"1292,-632v0,89,-16,175,-48,256v-32,81,-74,151,-129,210v-57,61,-120,109,-191,142v-71,33,-149,50,-234,50v-64,0,-115,-6,-154,-18v-39,-12,-73,-30,-102,-53r-61,266v-2,8,-4,18,-6,29v-2,11,-3,18,-3,23v0,15,3,29,10,42v7,13,17,22,30,28v15,7,38,13,71,19v33,6,60,11,81,12r-16,70r-722,0r16,-70v17,-1,39,-4,65,-8v26,-4,46,-7,59,-11v23,-7,40,-19,52,-35v12,-16,21,-36,26,-63r198,-872r16,-74v6,-30,9,-55,9,-74v0,-35,-7,-61,-22,-77v-15,-16,-44,-23,-87,-23v-20,0,-42,3,-65,10v-23,7,-43,13,-58,19r22,-90v54,-22,106,-40,155,-56v49,-16,96,-24,140,-24v37,0,69,3,97,10v28,7,53,19,74,34v18,13,33,28,45,46v12,18,21,36,29,55r8,0v61,-53,121,-93,179,-118v58,-25,114,-38,167,-38v116,0,203,35,261,103v58,68,88,161,88,280xm847,-238v29,-58,50,-119,65,-183v15,-64,22,-136,22,-215v0,-33,-2,-62,-7,-90v-5,-28,-13,-52,-25,-72v-12,-21,-28,-37,-48,-48v-20,-11,-46,-17,-77,-17v-35,0,-70,11,-104,33v-34,22,-59,43,-75,62r-124,549v0,46,13,85,40,115v27,30,65,45,115,45v41,0,81,-16,119,-48v38,-32,72,-76,99,-131","w":1357},"q":{"d":"732,-98r-8,0r-55,40v-24,17,-47,30,-69,41v-26,13,-54,25,-85,34v-31,9,-64,14,-100,14v-116,0,-203,-35,-262,-103v-59,-68,-88,-161,-88,-280v0,-91,16,-177,48,-257v32,-80,75,-150,130,-211v54,-60,118,-107,192,-142v74,-35,152,-53,233,-53v63,0,116,7,160,19v44,12,83,32,117,59r306,-63r14,16r-277,1205v-2,9,-4,18,-6,29v-2,11,-3,19,-3,23v0,15,3,29,10,42v7,13,17,22,30,28v15,7,38,13,69,19v31,6,57,11,78,12r-16,70r-722,0r16,-70v17,-1,39,-4,67,-8v28,-4,48,-7,61,-11v23,-8,41,-19,53,-35v12,-16,21,-37,26,-63xm883,-760v0,-17,-3,-34,-7,-52v-4,-18,-12,-34,-25,-50v-13,-17,-28,-30,-47,-40v-19,-10,-44,-14,-76,-14v-44,0,-84,16,-121,47v-37,31,-69,74,-97,127v-27,53,-49,114,-64,184v-15,70,-23,140,-23,210v0,33,2,63,7,91v5,28,14,52,25,71v12,21,29,37,49,48v20,11,45,17,76,17v33,0,67,-10,100,-31v33,-21,59,-42,78,-64","w":1331},"r":{"d":"1106,-807v0,30,-4,59,-13,87v-9,28,-22,52,-39,72v-19,23,-40,39,-61,50v-21,11,-51,17,-90,17v-50,0,-89,-12,-118,-37v-29,-25,-43,-52,-43,-83v0,-29,4,-53,12,-74v12,-31,13,-31,40,-94v-45,19,-83,42,-115,69v-32,27,-63,57,-92,92r-158,708r-331,0r138,-615r16,-73v6,-30,9,-55,9,-75v0,-39,-8,-65,-23,-79v-15,-14,-43,-21,-86,-21v-21,0,-44,3,-66,10v-22,7,-41,13,-57,19r22,-90v54,-22,106,-40,155,-56v49,-16,96,-24,140,-24v79,0,137,15,176,46v39,31,65,75,78,131r7,0v66,-70,122,-119,168,-147v46,-28,95,-41,148,-41v57,0,101,17,134,53v33,36,49,88,49,155","w":1093},"s":{"d":"435,33v-84,0,-154,-7,-209,-21v-55,-14,-98,-31,-130,-52v-33,-21,-55,-44,-67,-68v-12,-24,-18,-48,-18,-69v0,-39,14,-72,43,-101v29,-29,68,-44,116,-44v40,0,73,10,100,31v27,21,50,47,68,78v17,29,31,60,42,95v11,35,19,60,24,77v75,0,132,-17,171,-49v39,-32,58,-76,58,-132v0,-25,-5,-45,-17,-62v-12,-17,-28,-31,-47,-44v-19,-12,-44,-24,-74,-35r-89,-32v-81,-27,-145,-65,-192,-113v-47,-48,-70,-109,-70,-181v0,-43,10,-83,30,-121v20,-38,50,-72,92,-104v41,-31,94,-56,157,-74v63,-18,137,-27,222,-27v51,0,98,3,141,9v43,6,84,17,121,33v35,16,63,37,83,63v20,26,29,56,29,93v0,37,-13,69,-41,95v-28,26,-64,39,-109,39v-39,0,-71,-10,-97,-30v-26,-20,-46,-44,-62,-71v-16,-28,-29,-56,-38,-86r-23,-75v-47,3,-89,20,-127,51v-38,31,-58,69,-58,115v0,28,5,50,14,66v9,16,21,29,36,40v17,12,40,23,66,33v26,10,59,23,98,36v91,32,159,70,205,115v46,45,69,104,69,177v0,48,-12,94,-34,138v-22,44,-54,81,-95,110v-46,32,-99,56,-159,72v-60,16,-136,25,-229,25","w":1059},"t":{"d":"408,26v-80,0,-144,-19,-192,-58v-48,-39,-72,-89,-72,-149v0,-25,2,-48,5,-70v3,-22,9,-50,16,-85r124,-532r-183,0r24,-103r187,0r72,-303r324,0r-70,303r271,0r-24,103r-270,0r-122,532v-5,19,-10,41,-14,68v-4,27,-6,44,-6,52v0,38,11,64,32,79v21,15,53,22,96,22v21,0,50,-4,86,-12v36,-8,61,-15,76,-20r-22,90v-59,26,-117,46,-176,61v-59,15,-113,22,-162,22","w":854},"u":{"d":"803,-159r-7,0v-70,64,-137,111,-200,142v-63,31,-137,46,-220,46v-74,0,-132,-20,-172,-61v-40,-41,-60,-90,-60,-148v0,-21,2,-42,4,-63v2,-21,8,-51,18,-90r75,-281v5,-19,11,-44,17,-76v6,-32,9,-57,9,-72v0,-37,-8,-63,-23,-78v-15,-15,-44,-22,-87,-22v-21,0,-43,3,-65,10v-22,7,-42,13,-58,19r22,-90v54,-22,106,-41,155,-57v49,-16,96,-23,140,-23v79,0,140,19,183,59v43,40,65,89,65,148v0,12,-1,34,-4,66v-3,32,-8,62,-16,89r-73,266v-7,23,-12,48,-16,75v-4,27,-6,47,-6,59v0,31,7,57,22,75v15,18,40,27,76,27v26,0,61,-11,104,-33v43,-22,85,-52,127,-92r165,-722r319,-14r12,14r-142,615v-5,19,-11,45,-17,77v-6,32,-9,56,-9,71v0,39,8,65,25,79v17,14,47,21,90,21v20,0,43,-4,68,-11v25,-7,44,-13,55,-18r-22,90v-66,26,-119,46,-158,60v-39,14,-85,20,-137,20v-73,0,-132,-17,-176,-50v-44,-33,-72,-75,-83,-127","w":1403},"v":{"d":"1209,-766v0,94,-15,189,-47,286v-32,97,-77,182,-134,257v-68,87,-143,152,-226,193v-83,41,-169,62,-258,62v-119,0,-213,-28,-283,-83v-70,-55,-105,-135,-105,-238v0,-32,5,-66,16,-103v11,-37,24,-80,40,-129r38,-125v0,0,17,-79,17,-116v0,-36,-8,-62,-24,-77v-16,-15,-45,-23,-86,-23v-21,0,-43,3,-65,10v-22,7,-42,13,-58,19r22,-90v54,-22,106,-41,155,-57v49,-16,96,-23,140,-23v79,0,140,19,183,59v43,40,65,89,65,148v0,43,-5,89,-17,138v-12,49,-24,92,-37,131v-11,35,-23,74,-35,119v-12,45,-19,81,-19,108v0,57,14,102,41,136v27,34,71,51,132,51v91,0,169,-33,236,-101v67,-68,100,-159,100,-274v0,-11,-1,-24,-2,-37v-1,-13,-4,-28,-8,-45v-7,-15,-22,-32,-43,-49v-21,-17,-39,-33,-54,-48v-19,-19,-36,-43,-51,-69v-15,-26,-22,-60,-22,-102v0,-35,6,-64,20,-86v14,-22,31,-40,50,-54v16,-11,36,-20,58,-27v22,-7,43,-10,62,-10v62,0,111,23,146,67v35,44,53,105,53,182","w":1254},"w":{"d":"1867,-766v0,97,-16,194,-48,290v-32,96,-77,180,-134,253v-59,76,-130,138,-212,185v-82,47,-176,70,-281,70v-97,0,-176,-19,-236,-57v-60,-38,-102,-93,-124,-164v-71,78,-141,133,-210,167v-69,34,-144,51,-226,51v-77,0,-138,-24,-183,-72v-45,-48,-67,-108,-67,-181v0,-27,3,-52,8,-76v5,-24,12,-49,19,-77r68,-237v5,-19,11,-44,17,-76v6,-32,9,-57,9,-72v0,-35,-8,-60,-23,-76v-15,-16,-44,-24,-87,-24v-21,0,-43,3,-65,10v-22,7,-42,13,-58,19r22,-90v54,-22,106,-41,155,-57v49,-16,96,-23,140,-23v79,0,140,19,183,59v43,40,65,90,65,151v0,22,-3,54,-10,95v-7,41,-14,74,-22,99r-58,194v-7,21,-12,46,-17,77v-5,31,-8,54,-8,67v0,38,11,67,32,89v21,22,45,33,73,33v9,0,21,-1,38,-3v17,-2,34,-8,52,-17v19,-9,42,-22,69,-41v27,-19,53,-43,78,-72v0,-12,1,-29,4,-52v3,-23,8,-51,14,-83r132,-579r319,-14r12,14r-132,573v-2,8,-5,25,-9,51v-4,26,-5,52,-5,79v0,57,13,100,41,127v28,27,69,41,123,41v91,0,169,-33,235,-101v66,-68,98,-159,98,-272v0,-11,-1,-24,-2,-37v-1,-13,-4,-28,-8,-45v-7,-15,-21,-31,-41,-47v-20,-16,-39,-32,-56,-49v-19,-19,-36,-42,-51,-70v-15,-28,-22,-62,-22,-102v0,-33,7,-61,20,-84v13,-23,29,-41,50,-56v15,-11,35,-20,58,-27v23,-7,44,-10,62,-10v64,0,114,23,148,68v34,45,51,106,51,181","w":1912},"x":{"d":"1218,-866v0,58,-19,104,-56,138v-37,34,-82,52,-135,52v-32,0,-64,-4,-95,-12v-31,-8,-57,-16,-80,-24v-11,7,-26,23,-47,48v-21,25,-44,55,-70,90v24,102,43,175,58,218v15,43,29,86,42,130v11,35,28,63,50,83v22,20,57,30,104,30v17,0,39,-3,65,-10v26,-7,47,-13,64,-20r-22,90v-66,28,-124,48,-173,61v-49,13,-93,19,-132,19v-28,0,-56,-3,-83,-8v-27,-5,-52,-15,-75,-29v-25,-15,-46,-33,-63,-55v-17,-22,-31,-53,-43,-92v-8,-25,-15,-53,-22,-84v-7,-31,-13,-59,-20,-83r-42,64r-38,59v-53,81,-98,139,-137,173v-39,34,-85,51,-139,51v-41,0,-75,-14,-104,-41v-29,-27,-43,-63,-43,-107v0,-59,19,-107,56,-141v37,-34,82,-51,135,-51v32,0,63,3,92,11v29,8,57,17,83,26v10,-8,25,-24,46,-47v21,-23,44,-52,69,-87v-22,-89,-40,-157,-54,-202r-43,-135v-12,-36,-29,-63,-52,-83v-23,-20,-57,-30,-102,-30v-20,0,-42,3,-67,10v-25,7,-45,14,-62,20r22,-90v60,-27,117,-47,171,-60v54,-13,98,-20,134,-20v33,0,61,2,84,7v23,5,48,15,74,30v24,15,44,33,62,55v18,22,33,53,44,92v8,27,15,54,22,83r17,74r43,-66v0,0,23,-34,39,-60v51,-81,97,-138,138,-173v41,-35,87,-53,138,-53v42,0,77,13,105,41v28,28,42,64,42,108","w":1195},"y":{"d":"803,-160r-7,0v-75,69,-145,116,-208,143v-63,27,-133,40,-210,40v-74,0,-131,-21,-172,-62v-41,-41,-62,-91,-62,-149v0,-21,2,-42,4,-63v2,-21,8,-51,18,-90r75,-273v5,-19,11,-44,17,-76v6,-32,9,-57,9,-72v0,-38,-8,-64,-23,-78v-15,-14,-44,-22,-87,-22v-21,0,-43,3,-65,10v-22,7,-42,13,-58,19r22,-90v54,-22,106,-41,155,-57v49,-16,96,-23,140,-23v79,0,140,19,183,59v43,40,65,89,65,148v0,12,-1,34,-4,66v-3,32,-8,62,-16,89r-73,260v-7,23,-12,48,-16,75v-4,27,-6,46,-6,58v0,33,8,59,24,76v16,17,43,26,78,26v29,0,67,-12,112,-34v45,-22,86,-52,124,-89r152,-717r317,-14r14,16r-175,813v-27,121,-64,222,-112,301v-48,79,-104,141,-167,188v-61,45,-126,76,-197,96v-71,20,-142,30,-215,30v-79,0,-145,-6,-197,-18v-52,-12,-94,-27,-123,-48v-27,-19,-45,-39,-55,-62v-10,-23,-14,-46,-14,-68v0,-39,14,-73,41,-103v27,-30,65,-45,112,-45v36,0,69,10,97,29v28,19,53,43,74,70v21,26,40,55,56,87v16,32,28,57,37,77v12,-2,27,-7,45,-13v18,-6,32,-13,44,-21v17,-11,33,-23,46,-34v13,-11,29,-29,46,-52v33,-45,63,-100,89,-166v26,-66,48,-145,66,-237","w":1371},"z":{"d":"1084,-986r-15,72r-708,830v24,1,49,2,73,2r84,0v24,0,48,0,72,-1v24,-1,57,-3,97,-6v26,-3,49,-12,68,-28v19,-16,35,-35,47,-57v9,-17,26,-45,50,-84v24,-39,42,-74,56,-105r70,0r-71,363r-934,0r18,-83r697,-819r-118,0v-58,0,-99,1,-124,3v-25,2,-54,9,-87,21v-23,9,-49,33,-79,74v-30,41,-56,86,-77,136r-71,0r62,-318r890,0","w":1059},"{":{"d":"777,333v-73,0,-145,-4,-215,-11v-70,-7,-127,-19,-170,-37v-46,-20,-82,-48,-107,-85v-25,-37,-38,-87,-38,-149v0,-15,1,-31,3,-47v2,-16,4,-32,7,-51v5,-33,15,-75,28,-125v13,-50,23,-93,29,-129v3,-17,5,-31,6,-43v1,-12,2,-23,2,-34v0,-51,-16,-88,-49,-112v-33,-24,-100,-40,-201,-47r34,-150v45,-3,91,-9,136,-16v45,-7,83,-19,112,-34v32,-17,60,-40,82,-69v22,-29,37,-68,45,-117v7,-39,12,-78,15,-115v3,-37,8,-76,15,-119v13,-81,38,-147,75,-197v37,-50,84,-88,141,-116v57,-28,124,-46,201,-54v77,-8,157,-13,242,-13r-15,83v-37,3,-69,6,-96,10v-27,4,-55,15,-86,32v-29,16,-53,38,-71,66v-18,28,-32,70,-43,125r-34,190v-13,71,-35,131,-66,177v-31,46,-68,83,-111,112v-43,28,-90,50,-140,66v-50,16,-100,27,-150,36r-18,76v98,21,169,54,213,101v44,47,66,107,66,182v0,15,-1,33,-3,52v-2,19,-4,38,-8,56r-40,190v-2,9,-3,20,-4,31v-1,11,-1,20,-1,29v0,38,7,67,21,89v14,22,31,39,52,51v21,11,47,19,76,24v29,5,56,8,80,9","w":1024},"|":{"d":"505,424r-171,0r0,-1947r171,0r0,1947","w":794},"}":{"d":"976,-666r-34,150v-57,4,-103,9,-138,14v-35,5,-72,17,-110,36v-33,17,-61,40,-82,69v-21,29,-36,68,-45,117v-7,39,-12,77,-15,114v-3,37,-8,77,-15,120v-13,79,-37,145,-73,196v-36,51,-83,90,-142,117v-59,27,-124,45,-196,54v-72,9,-155,13,-248,13r15,-83v32,-2,64,-6,96,-11v32,-5,61,-16,87,-31v26,-15,50,-38,70,-68v20,-30,34,-71,43,-123r34,-190v13,-72,34,-131,65,-176v31,-45,69,-83,112,-113v40,-27,86,-49,139,-64v53,-15,103,-28,151,-38r18,-76v-41,-9,-78,-21,-112,-35v-34,-14,-62,-32,-87,-53v-26,-23,-45,-51,-59,-83v-14,-32,-21,-69,-21,-112v0,-20,1,-39,3,-56v2,-17,5,-35,8,-52r40,-190v2,-10,3,-20,4,-30v1,-10,1,-21,1,-30v0,-37,-7,-67,-20,-89v-13,-22,-31,-39,-53,-51v-20,-11,-45,-18,-74,-23v-29,-5,-56,-8,-82,-10r15,-83v82,0,155,4,219,10v64,6,119,19,166,38v46,20,82,49,107,86v25,37,38,86,38,148v0,13,-1,28,-3,46v-2,18,-4,36,-7,52v-7,37,-16,77,-27,120v-11,43,-21,87,-30,134v-3,15,-5,29,-6,42v-1,13,-2,25,-2,35v0,59,21,99,62,121v41,22,104,34,188,38","w":1024},"~":{"d":"1317,-735v-13,37,-31,74,-53,113v-22,39,-48,73,-75,103v-34,37,-71,67,-111,89v-40,22,-81,34,-126,34v-51,0,-96,-8,-138,-26v-42,-18,-82,-38,-121,-61v-31,-18,-66,-37,-106,-57v-40,-20,-76,-31,-107,-31v-44,0,-82,15,-115,47v-33,32,-64,83,-94,152r-104,-42v10,-29,25,-64,47,-103v22,-39,49,-77,81,-113v30,-34,66,-63,107,-87v41,-24,84,-36,130,-36v55,0,104,10,146,29v42,19,80,38,115,59v35,21,71,41,105,59v34,18,69,28,106,28v47,0,86,-17,119,-52v33,-35,63,-84,90,-147"}}});

Cufon.set('fontFamily', 'Arial')
    .replace('.cufon-arial', {
        textShadow: '0px 2px rgba(0, 0, 0, 0.3), 1px 0px rgba(0, 0, 0, 0.3)'
    });

/*Cufon.set('fontFamily', 'Georgia')
    .replace('.head_block_in h4', {
        textShadow: '0px 2px rgba(0, 0, 0, 0.3), 1px 0px rgba(0, 0, 0, 0.3)'
    });
*/
Cufon.set('fontFamily', 'Georgia')
    .replace('.footer-contant-promo', {
        textShadow: '3px 3px rgba(0, 0, 0, 0.3), 2px 2px rgba(0, 0, 0, 0.3)'
    });
/*
 * jQuery Orbit Plugin 1.2.3


 * www.ZURB.com/playground
 * Copyright 2010, ZURB
 * Free to use under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
*/

jQuery(window).load(function() {
	jQuery('#featured').orbit({animation: 'fade'});
 });


(function(d){d.fn.orbit=function(a){a=d.extend({animation:"horizontal-push",animationSpeed:600,timer:!0,advanceSpeed:4E3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1E3,directionalNav:!0,captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:function(){}},a);return this.each(function(){function q(){if(!a.timer||a.timer=="false")return!1;else r.is(":hidden")?s=setInterval(function(){l("next")},a.advanceSpeed):
(o=!0,x.removeClass("active"),s=setInterval(function(){var a="rotate("+m+"deg)";m+=2;t.css({"-webkit-transform":a,"-moz-transform":a,"-o-transform":a});m>180&&(t.addClass("move"),y.addClass("move"));m>360&&(t.removeClass("move"),y.removeClass("move"),m=0,l("next"))},a.advanceSpeed/180))}function n(){if(!a.timer||a.timer=="false")return!1;else o=!1,clearInterval(s),x.addClass("active")}function z(){if(!a.captions||a.captions=="false")return!1;else{var c=e.eq(b).data("caption");(_captionHTML=d(c).html())?
(j.attr("id",c).html(_captionHTML),a.captionAnimation=="none"&&j.show(),a.captionAnimation=="fade"&&j.fadeIn(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideDown(a.captionAnimationSpeed)):(a.captionAnimation=="none"&&j.hide(),a.captionAnimation=="fade"&&j.fadeOut(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideUp(a.captionAnimationSpeed))}}function A(){if(a.bullets)C.children("li").removeClass("active").eq(b).addClass("active");else return!1}function l(c){function d(){e.eq(f).css({"z-index":1});
u=!1;a.afterSlideChange.call(this)}var f=b,g=c;if(f==g)return!1;if(e.length=="1")return!1;u||(u=!0,c=="next"?(b++,b==p&&(b=0)):c=="prev"?(b--,b<0&&(b=p-1)):(b=c,f<b?g="next":f>b&&(g="prev")),A(),e.eq(f).css({"z-index":2}),a.animation=="fade"&&e.eq(b).css({opacity:0,"z-index":3}).animate({opacity:1},a.animationSpeed,d),a.animation=="horizontal-slide"&&(g=="next"&&e.eq(b).css({left:h,"z-index":3}).animate({left:0},a.animationSpeed,d),g=="prev"&&e.eq(b).css({left:-h,"z-index":3}).animate({left:0},a.animationSpeed,
d)),a.animation=="vertical-slide"&&(g=="prev"&&e.eq(b).css({top:v,"z-index":3}).animate({top:0},a.animationSpeed,d),g=="next"&&e.eq(b).css({top:-v,"z-index":3}).animate({top:0},a.animationSpeed,d)),a.animation=="horizontal-push"&&(g=="next"&&(e.eq(b).css({left:h,"z-index":3}).animate({left:0},a.animationSpeed,d),e.eq(f).animate({left:-h},a.animationSpeed)),g=="prev"&&(e.eq(b).css({left:-h,"z-index":3}).animate({left:0},a.animationSpeed,d),e.eq(f).animate({left:h},a.animationSpeed))),z())}var b=0,
p=0,h,v,u,f=d(this).addClass("orbit"),c=f.wrap('<div class="orbit-wrapper" />').parent();f.add(h).width("1px").height("1px");var e=f.children("img, a, div");e.each(function(){var a=d(this),b=a.width(),a=a.height();b>f.width()&&(f.add(c).width(b),h=f.width());a>f.height()&&(f.add(c).height(a),v=f.height());p++});if(e.length==1)a.directionalNav=!1,a.timer=!1,a.bullets=!1;e.eq(b).css({"z-index":3}).fadeIn(function(){e.css({display:"block"})});if(a.timer){c.append('<div class="timer"><span class="mask"><span class="rotator"></span></span><span class="pause"></span></div>');
var r=c.children("div.timer"),o;if(r.length!=0){var t=d("div.timer span.rotator"),y=d("div.timer span.mask"),x=d("div.timer span.pause"),m=0,s;q();r.click(function(){o?n():q()});if(a.startClockOnMouseOut){var B;c.mouseleave(function(){B=setTimeout(function(){o||q()},a.startClockOnMouseOutAfter)});c.mouseenter(function(){clearTimeout(B)})}}}a.pauseOnHover&&c.mouseenter(function(){n()});if(a.captions){c.append('<div class="orbit-caption"></div>');var j=c.children(".orbit-caption");z()}if(a.directionalNav){if(a.directionalNav==
"false")return!1;c.append('<div class="slider-nav"><span class="right">Right</span><span class="left">Left</span></div>');var k=c.children("div.slider-nav").children("span.left"),w=c.children("div.slider-nav").children("span.right");k.click(function(){n();l("prev")});w.click(function(){n();l("next")})}if(a.bullets){c.append('<ul class="orbit-bullets"></ul>');var C=c.children("ul.orbit-bullets");for(i=0;i<p;i++){k=d("<li>"+(i+1)+"</li>");if(a.bulletThumbs&&(w=e.eq(i).data("thumb")))k=d('<li class="has-thumb">'+
i+"</li>"),k.css({background:"url("+a.bulletThumbLocation+w+") no-repeat"});c.children("ul.orbit-bullets").append(k);k.data("index",i);k.click(function(){n();l(d(this).data("index"))})}A()}})}})(jQuery);

